This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug regression/20399] New: No fixinclude for sys/stream.h
- From: "dkavedku at yahoo dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Mar 2005 02:49:25 -0000
- Subject: [Bug regression/20399] New: No fixinclude for sys/stream.h
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
In the old gcc-2.95.2 days we could create a solaris cross compiler which
worked well with our use of STL's "class queue" defined as <queue>. In the much
newer gcc-3.4.2, release our solaris cross compiler has a problem
differentiating between the system header's definition of "struct queue", and
our need to reference the STL queue object.
When we compared the log file output from compiling each of the cross
compilers, we found that the old fixinc.sh script created the sys/stream.h
wrapper fine, but the new version did not. When we looked into the new version
of fixinc.sh and src/gcc/fixinc/README, we realized could customize our compile
environment to force processing of stream.h to occur. However before getting
around to this we decided to try inserting the old version of the file from the
old compiler, where it should be located in the new compiler. Guess what it
worked! I am pretty sure I should create an official patch etc. but I have
never done this before. Actually I am really happy to have a solution at all.
But I am making this bug to document a shortcut does exist for other Solaris
users. If I have time I will look into creating a patch for the gcc-3.4.x
distribution. The following is the output from the 3.4.2 version of fixinc.sh
during the creation of the cross compiler:
/bin/sh ../../src/gcc/mkinstalldirs /usr/tools/upgrade/gnu/gcc/3.4.2/lib/gcc/spa
rc-sun-solaris2.8/3.4.2/../../../../sparc-sun-solaris2.8
mkdir -p -- /usr/tools/upgrade/gnu/gcc/3.4.2/lib/gcc/sparc-sun-
solaris2.8/3.4.2/../../../../sparc-sun-solaris2.8
gmake[2]: Leaving directory `/net/machine/maketools/sparc-sun-
solaris2.7/tools/cross-3.4.2/gcc/b-sparc-sun-solaris2.8/gcc'
rm -rf include; mkdir include
chmod a+rx include
(TARGET_MACHINE='sparc-sun-solaris2.8'; srcdir=`cd ../../src/gcc; ${PWDCMD-pwd}
`; \
SHELL='/bin/sh' ;\
export TARGET_MACHINE srcdir SHELL ; \
/bin/sh ./fixinc.sh `${PWDCMD-pwd}
`/include /usr/tools/upgrade/gnu/gcc/3.4.2/lib/gcc/sparc-sun-
solaris2.8/3.4.2/../../../../sparc-sun-solaris2.8/sys-include ; \
rm -f include/syslimits.h; \
if [ -f include/limits.h ]; then \
mv include/limits.h include/syslimits.h; \
else \
cp ../../src/gcc/gsyslimits.h include/syslimits.h; \
fi; \
chmod a+r include/syslimits.h)
Fixing headers into /net/machine/maketools/sparc-sun-solaris2.7/tools/cross-
3.4.2/gcc/b-sparc-sun-solaris2.8/gcc/include for sparc-sun-solaris2.8 target
Finding directories and links to directories
Searching /disk2/releng/tools/upgrade/gnu/gcc/3.4.2/sparc-sun-solaris2.8/sys-
include/.
Making symbolic directory links
Fixing directory /disk2/releng/tools/upgrade/gnu/gcc/3.4.2/sparc-sun-
solaris2.8/sys-include into /net/machine/maketools/sparc-sun-
solaris2.7/tools/cross-3.4.2/gcc/b-sparc-sun-solaris2.8/gcc/include
Applying io_quotes_def to net/ppp-comp.h
Applying io_quotes_def to net/pppio.h
Applying io_quotes_use to net/pppio.h
Applying io_quotes_def to inet/optcom.h
Applying ip_missing_semi to netinet/ip.h
Applying sun_auth_proto to rpc/auth.h
Fixed: rpc/auth.h
Applying sun_auth_proto to rpc/clnt.h
Fixed: rpc/clnt.h
Applying sun_auth_proto to rpc/svc.h
Fixed: rpc/svc.h
Applying sun_auth_proto to rpc/xdr.h
Fixed: rpc/xdr.h
Applying io_quotes_def to sys/pcmcia/pcelx.h
Applying io_quotes_def to sys/scsi/adapters/glmvar.h
Applying io_quotes_def to sys/acctctl.h
Applying io_quotes_def to sys/audio_4231.h
Applying io_quotes_def to sys/audiovar.h
Applying io_quotes_use to sys/cs.h
Applying io_quotes_use to sys/cs_priv.h
Applying io_quotes_def to sys/fdvar.h
Applying io_quotes_def to sys/ioccom.h
Applying io_quotes_use to sys/msreg.h
Fixed: sys/msreg.h
Applying io_quotes_def to sys/pcmcia.h
Applying io_quotes_use to sys/pcmcia.h
Applying io_quotes_def to sys/pem.h
Applying io_quotes_use to sys/pem.h
Applying io_quotes_def to sys/rce.h
Applying io_quotes_use to sys/rce.h
Applying svr4_sighandler_type to sys/signal.h
Fixed: sys/signal.h
Applying io_quotes_def to sys/thread.h
Applying gnu_types to sys/types.h
Fixed: sys/types.h
Applying AAB_solaris_sys_varargs_h to sys/varargs.h
Fixed: sys/varargs.h
Applying svr4__p to floatingpoint.h
Fixed: floatingpoint.h
Applying limits_ifndefs to limits.h
Fixed: limits.h
Applying sun_malloc to malloc.h
Applying math_exception to math.h
Applying svr4__p to math.h
Fixed: math.h
Applying solaris_mutex_init_2 to pthread.h
Fixed: pthread.h
Applying gnu_types to stddef.h
Fixed: stddef.h
Applying stdio_stdarg_h to stdio.h
Applying stdio_va_list to stdio.h
Fixed: stdio.h
Applying solaris_stdio_tag to stdio_tag.h
Fixed: stdio_tag.h
Applying sysv68_string to string.h
Cleaning up unneeded directories:
fixincludes is done
echo timestamp > stmp-fixinc
Notice that stream.h is not listed as a file that is Fixed: Now lets take a
look at the output from the 2.95.2 version of fixinc.sh during the creation of
the cross compiler:
cd ./fixinc; /bin/sh ${srcdir}/mkfixinc.sh sparc-sun-solaris2.8
constructing ../fixinc.sh for sparc-sun-solaris2.8
copying /net/netapp/vol/releng1/releng/maketools/sparc-sun-
solaris2.7/tools/cross/gcc-2.95.2/gcc/fixinc/fixinc.wrap to ../fixinc.sh
rm -rf include; mkdir include
TARGET_MACHINE=sparc-sun-solaris2.8; srcdir=`cd ../../src/gcc; pwd`; \
INSTALL_ASSERT_H=install-assert-h; SHELL=/bin/sh ;\
export TARGET_MACHINE srcdir INSTALL_ASSERT_H SHELL ; \
/bin/sh ./fixinc.sh `pwd`/include /usr/tools/sparc-sun-solaris2.8/sys-include
Building fixed headers in /net/netapp/vol/releng1/releng/maketools/sparc-sun-
solaris2.7/tools/cross/b-sparc-sun-solaris2.8/gcc/include
Checking /usr/tools/sparc-sun-solaris2.8/sys-include/math.h
Fixed math.h
Checking /usr/tools/sparc-sun-solaris2.8/sys-include/sys/stream.h
Fixed sys/stream.h
Checking /usr/tools/sparc-sun-solaris2.8/sys-include/curses.h
Fixed curses.h
rm -f include/syslimits.h
if [ -f include/limits.h ]; then \
mv include/limits.h include/syslimits.h; \
else \
cp ../../src/gcc/gsyslimits.h include/syslimits.h; \
fi
chmod a+r include/syslimits.h
if [ "/usr/tools/sparc-sun-solaris2.8/sys-include" = "/usr/tools/sparc-sun-
solaris2.8/sys-include" ] \
&& [ -d /usr/tools/sparc-sun-solaris2.8/sys-include ]; then \
if [ -d /usr/tools/lib ] ; then true ; else mkdir /usr/tools/lib ; fi; \
if [ -d /usr/tools/lib/gcc-lib ] ; then true ; else mkdir /usr/tools/lib/gcc-
lib; fi; \
if [ -d /usr/tools/lib/gcc-lib/sparc-sun-solaris2.8 ] ; then true ; else
mkdir /usr/tools/lib/gcc-lib/sparc-sun-solaris2.8 ; fi; \
if [ -d /usr/tools/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2 ] ; then true ;
else mkdir /usr/tools/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2 ; fi; \
else true; fi
touch stmp-fixinc
It seems that what used to be a standard wrapper for Solaris in 2.95.2 is no
longer handled well in 3.4.2. I kind of expect another user trying to create a
cross compiler for Solaris, who wants to use the std::queue class will have an
issue with this.
--
Summary: No fixinclude for sys/stream.h
Product: gcc
Version: 3.4.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dkavedku at yahoo dot com
CC: dkavedku at yahoo dot com,gcc-bugs at gcc dot gnu dot
org
GCC build triplet: sparc-sun-solaris2.7
GCC host triplet: sparc-sun-solaris2.7
GCC target triplet: sparc-sun-solaris2.8
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20399