This is the mail archive of the
libstdc++@sources.redhat.com
mailing list for the libstdc++ project.
volunteer needed to complete shadow header work
- To: libstdc++ at sourceware dot cygnus dot com
- Subject: volunteer needed to complete shadow header work
- From: Benjamin Kosnik <bkoz at cygnus dot com>
- Date: Mon, 14 Aug 2000 13:27:54 -0700
Enabling shadow headers, at the src/Makefile level, has not been
working for about a month now. (Of course, it was never working
fully.)
For the curious, the patch below, followed by a
aclocal; autoconf; autoheader; automake
in the toplevel source directory, and then a configure build leads to:
/mnt/hd/soma/bld-x86-gcc-3/gcc/g++ -B/mnt/hd/soma/bld-x86-gcc-3/gcc/ -nostdinc++ -L/mnt/hd/soma/bld-x86-gcc-3/i686-pc-linux/libstd++-v3/src -L/mnt/hd/soma/bld-x86-gcc-3/i686-pc-linux/libstd++-v3/src/.libs -B/mnt/hd/soma/H-x86-gcc-3/i686-pc-linux/bin/ -B/mnt/hd/soma/H-x86-gcc-3/i686-pc-linux/lib/ -isystem /mnt/hd/soma/H-x86-gcc-3/i686-pc-linux/include -DHAVE_CONFIG_H -I. -I../../../../src.gcc/libstdc++-v3/src -I.. -D_GNU_SOURCE -nostdinc++ -I../../../../src.gcc/libstdc++-v3 -I../../../../src.gcc/libstdc++-v3/shadow -I../cshadow -I../libio -I../../../../src.gcc/libstdc++-v3/libio -I../../../../src.gcc/libstdc++-v3/config/cpu/i486 -I../../../../src.gcc/libstdc++-v3/config/gnu-linux -I/mnt/hd/soma/H-x86-gcc-3/include -g -O2 -fvtable-thunks -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -Werror -Wno-unknown-pragmas -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c limitsMEMBERS.cc -fPIC -DPIC -o .libs/limitsMEMBERS.o
In file included from ../../../../src.gcc/libstdc++-v3/shadow/float.h:36,
from ../../../../src.gcc/libstdc++-v3/bits/std_cfloat.h:39,
from ../bits/std_limits.h:46,
from limitsMEMBERS.cc:37:
../../../../src.gcc/libstdc++-v3/bits/generic_shadow.h:49:23: cfloat: No such file or directory
make[3]: *** [limitsMEMBERS.lo] Error 1
make[3]: Leaving directory `/mnt/hd/soma/bld-x86-gcc-3/i686-pc-linux/libstdc++-v3/src'
Here's the patch:
Index: src/Makefile.am
===================================================================
RCS file: /cvs/gcc/egcs/libstdc++-v3/src/Makefile.am,v
retrieving revision 1.25
diff -c -p -r1.25 Makefile.am
*** Makefile.am 2000/07/26 21:30:45 1.25
--- Makefile.am 2000/08/14 20:17:42
*************** LIBIO_INCLUDES = -I$(top_srcdir)/libio
*** 70,78 ****
endif
if GLIBCPP_USE_CSHADOW
! CSHADOW_INCLUDES =
! #CSHADOW_INCLUDES = \
! # @CSHADOWFLAGS@ -I$(top_srcdir)/shadow -I$(top_builddir)/cshadow
else
CSHADOW_INCLUDES =
endif
--- 70,78 ----
endif
if GLIBCPP_USE_CSHADOW
! #CSHADOW_INCLUDES =
! CSHADOW_INCLUDES = \
! @CSHADOWFLAGS@ -I$(top_srcdir)/shadow -I$(top_builddir)/cshadow
else
CSHADOW_INCLUDES =
endif
If somebody would step in and finish this, I would be most grateful
(I'd like to have this solid for the next snapshot, for instance.)
Besides the obvious bit of getting the library to compile itself with
--enable-cshadow-headers enabled, the remaining (not completed bits)
are detailed here:
http://sources.redhat.com/ml/libstdc++/2000-q2/msg00374.html
- additions to configure.in to discover
- bogus header names to tell inclosure to ignore, based on
the target build environment identified (e.g. machine/ansi.h
on Linux/x86/glibc), and
- the directories searched by the compiler, in addition to ours,
to pass to the inclosure script. This must identify header
directories looked at by the _target_ compiler.
- additions to Makefile.am to build the cshadow/ directory, if
that flag is set, and additions to install the shadow/ and cshadow/
trees under the --prefix tree.
- cleaning up use of pathnames and temp files in the scripts
inclosure and mkcshadow.
- adding shadow declarations for non-ISO extensions to standard
headers under shadow/ and shadow/bits/, such as the POSIX and
XOPEN extensions (girded about with "#ifdef __USE_*" directives as
appropriate).
http://sources.redhat.com/ml/libstdc++/2000-q2/msg00379.html
- make the target g++ search the shadow/ and cshadow/ directories
before the other C header directories, if configured with
--enable-shadow-headers.
Any takers?
benjamin