From 08ed5edfecf524101e8401c9b522617b56114ae4 Mon Sep 17 00:00:00 2001 From: obrien Date: Wed, 7 Apr 1999 07:48:23 +0000 Subject: [PATCH] Don't generate _G_config.h, use fixed version. I knew better... too dependant on the environment we generate in, but... This fixes the /usr/lib/libstdc++.so: undefined reference to `filebuf virtual table' /usr/lib/libstdc++.so: undefined reference to `stdiobuf virtual table' errors seen after the initial bootstrap from gcc 2.7.2 to EGCS. Agreed with by: bde & jdp --- gnu/lib/libstdc++/Makefile | 24 +++++---- gnu/lib/libstdc++/_G_config.h | 96 +++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 gnu/lib/libstdc++/_G_config.h diff --git a/gnu/lib/libstdc++/Makefile b/gnu/lib/libstdc++/Makefile index dea05d68e31..31044ee5c73 100644 --- a/gnu/lib/libstdc++/Makefile +++ b/gnu/lib/libstdc++/Makefile @@ -1,5 +1,5 @@ # -# $Id: Makefile,v 1.14 1999/04/05 08:07:40 obrien Exp $ +# $Id: Makefile,v 1.15 1999/04/05 09:01:45 obrien Exp $ # EGCSDIR= ${.CURDIR}/../../../contrib/egcs @@ -12,7 +12,7 @@ LIB= stdc++ SHLIB_MAJOR= 3 SHLIB_MINOR= 0 -CFLAGS+= -I${EGCSDIR}/include -I${EGCSDIR}/libio -I. +CFLAGS+= -I${.CURDIR} -I${EGCSDIR}/include -I${EGCSDIR}/libio -I. CXXFLAGS+= -I${EGCSDIR}/libstdc++/stl -I${EGCSDIR}/libstdc++ \ -I${EGCSDIR}/gcc/cp/inc -I. CXXFLAGS+= -nostdinc++ -fno-implicit-templates @@ -72,9 +72,9 @@ SRCS+= cleanup.c filedoalloc.c fileops.c floatconv.c genops.c iofclose.c \ iovfprintf.c iovfscanf.c iovsprintf.c iovsscanf.c outfloat.c \ peekc.c strops.c -beforeinstall: _G_config.h +beforeinstall: ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ - _G_config.h \ + ${.CURDIR}/_G_config.h \ ${DESTDIR}/usr/include/g++ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ ${HDRS:S;^;${EGCSDIR}/libstdc++/;} \ @@ -85,13 +85,7 @@ beforeinstall: _G_config.h ${SHDRS:S;^;${EGCSDIR}/libstdc++/std/;} \ ${DESTDIR}/usr/include/g++/std -SRCS+= _G_config.h -CLEANFILES+= _G_config.h dummy.h dummy.c dummy.C -_G_config.h: Makefile ${EGCSDIR}/libio/gen-params - CC="${CC}" CXX="${CXX}" CONFIG_NM="nm" \ - CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \ - sh ${EGCSDIR}/libio/gen-params \ - LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET} +CLEANFILES+= dummy.h dummy.c dummy.C # Lots of special cases @@ -228,4 +222,12 @@ ldcomio.cc: cinst.cc .endfor cat ${.ALLSRC} >> ${.TARGET} +# ======== _G_config.h generation ======= +# In case you want or need to generate a _G_config.h file. +make_G_config_h: + CC="${CC}" CXX="${CXX}" CONFIG_NM="nm" \ + CPP="${CC} -E -nostdinc -idirafter ${DESTDIR}/usr/include" \ + sh ${EGCSDIR}/libio/gen-params \ + LIB_VERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.0 >${.TARGET} + .include diff --git a/gnu/lib/libstdc++/_G_config.h b/gnu/lib/libstdc++/_G_config.h new file mode 100644 index 00000000000..447c9ccc4a0 --- /dev/null +++ b/gnu/lib/libstdc++/_G_config.h @@ -0,0 +1,96 @@ +/* XXX _G_VTABLE_LABEL_PREFIX is different between ELF and a.out */ + +/* AUTOMATICALLY GENERATED; DO NOT EDIT! */ +#ifndef _G_config_h +#define _G_config_h +#define _G_LIB_VERSION "3.0.0" +#define _G_VTABLE_LABEL_HAS_LENGTH 1 +#ifdef __ELF__ +#define _G_NAMES_HAVE_UNDERSCORE 0 +#define _G_VTABLE_LABEL_PREFIX "__vt_" +#define _G_USING_THUNKS +#define _G_VTABLE_LABEL_PREFIX_ID __vt_ +#else +#define _G_NAMES_HAVE_UNDERSCORE 1 +#define _G_VTABLE_LABEL_PREFIX "__vt$" +#endif +#define _G_HAVE_ST_BLKSIZE 1 + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) +typedef int _G_int8_t __attribute__((__mode__(__QI__))); +typedef unsigned int _G_uint8_t __attribute__((__mode__(__QI__))); +typedef int _G_int16_t __attribute__((__mode__(__HI__))); +typedef unsigned int _G_uint16_t __attribute__((__mode__(__HI__))); +typedef int _G_int32_t __attribute__((__mode__(__SI__))); +typedef unsigned int _G_uint32_t __attribute__((__mode__(__SI__))); +typedef int _G_int64_t __attribute__((__mode__(__DI__))); +typedef unsigned int _G_uint64_t __attribute__((__mode__(__DI__))); +#if __GNUC__ > 2 || __GNUC_MINOR__ >= 8 +__extension__ typedef long long _G_llong; +__extension__ typedef unsigned long long _G_ullong; +#endif +#else +typedef short _G_int16_t; +typedef unsigned short _G_uint16_t; +typedef int _G_int32_t; +typedef unsigned int _G_uint32_t; +#endif + +typedef unsigned long _G_clock_t; +typedef unsigned int _G_dev_t; +typedef int __attribute__((__mode__(__DI__))) _G_fpos_t; +typedef unsigned int _G_gid_t; +typedef unsigned int _G_ino_t; +typedef unsigned short _G_mode_t; +typedef unsigned short _G_nlink_t; +typedef int __attribute__((__mode__(__DI__))) _G_off_t; +typedef int _G_pid_t; +#ifndef __PTRDIFF_TYPE__ +#define __PTRDIFF_TYPE__ int +#endif +typedef __PTRDIFF_TYPE__ _G_ptrdiff_t; +typedef unsigned int _G_sigset_t; +#ifndef __SIZE_TYPE__ +#define __SIZE_TYPE__ unsigned int +#endif +typedef __SIZE_TYPE__ _G_size_t; +typedef long _G_time_t; +typedef unsigned int _G_uid_t; +typedef int _G_wchar_t; + +#define _G_BUFSIZ 1024 +#define _G_FOPEN_MAX 20 +#define _G_FILENAME_MAX 1024 +#if defined (__cplusplus) || defined (__STDC__) +#define _G_ARGS(ARGLIST) ARGLIST +#else +#define _G_ARGS(ARGLIST) () +#endif +#if !defined (__GNUG__) || defined (__STRICT_ANSI__) +#define _G_NO_NRV +#endif +#if !defined (__GNUG__) +#define _G_NO_EXTERN_TEMPLATES +#endif +typedef int _G_ssize_t; +typedef int /* default */ _G_wint_t; +typedef char * _G_va_list; +#define _G_signal_return_type void +#define _G_sprintf_return_type int +#define _G_HAVE_ATEXIT 1 +#define _G_HAVE_SYS_RESOURCE 1 +#define _G_HAVE_SYS_TIMES 1 +#define _G_HAVE_SYS_SOCKET 1 +#define _G_HAVE_SYS_CDEFS 1 +#define _G_HAVE_SYS_WAIT 1 +#define _G_HAVE_UNISTD 1 +#define _G_HAVE_DIRENT 1 +#define _G_HAVE_CURSES 1 +#define _G_MATH_H_INLINES 0 +#define _G_HAVE_BOOL 1 +#define _G_HAVE_PRINTF_FP 0 +#define _G_HAVE_LONG_DOUBLE_IO 0 +/* #undef NULL */ /* FreeBSD 4.0-CURRENT has a proper 'NULL' definition. */ +#define __need_NULL +#include +#endif /* !_G_config_h */ -- 2.45.2