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
This commit is contained in:
David E. O'Brien 1999-04-07 07:48:23 +00:00
parent d9dc7d5c7e
commit 10b66c2f42
2 changed files with 109 additions and 11 deletions

View File

@ -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 <bsd.lib.mk>

View File

@ -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 <stddef.h>
#endif /* !_G_config_h */