shared library being built for amd64. The problem is that libstdc++.so
is produced with 'cc -shared'. This has an internal -lgcc, which is
not PIC. libstdc++.so uses exceptions and the dwarf2 unwinder, which
are in libgcc.a. As a result, non-PIC code gets pulled into libstdc++.so.
This is fatal on amd64 when certain relocation types cannot be used in
PIC mode. The official FSF solution to this is to have libgcc.so with
internal ELF symbol versioning to solve the ABI problem, but I dont want
to fight that battle yet. I tried making libgcc_pic.a (which worked
fine), but thats not something for the 11th hour before a release.
Approved by: re (amd64 "safe" stuff)
not to blindly undef isnan() and other functions that became macros in C99.
Enable use of newly grown C99 functions: strtof(), strtold(), wcstof()
Submitted by: das
to work at least for the non-hairy stuff. The main wrinkle here is that
a whole mess of include files get installed and under different names.
An earlier version of this built a shadow include tree first in the obj
directory, but this depends on the 'make includes' functionality.
More tweaking is certainly going to be needed.
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.
Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):
kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile
Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.
Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.
Consistently use INCLUDEDIR instead of /usr/include.
gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.
These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".
aren't needed as those files aren't part of libstdc++ any longer. Another
isn't needed as Cygnus doesn't compile with -frtti.
Noticed by: bde & my initial mispelling of ".So".
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