This is the mail archive of the libstdc++@sources.redhat.com mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

volunteer needed to complete shadow header work



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








Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]