Sender: rich AT phekda DOT freeserve DOT co DOT uk Message-ID: <3ED11B0E.D046CB25@phekda.freeserve.co.uk> Date: Sun, 25 May 2003 20:35:42 +0100 From: Richard Dawe X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.23 i586) X-Accept-Language: de,fr MIME-Version: 1.0 To: Andrew Cottrell CC: djgpp-workers AT delorie DOT com, Andris Pavenis Subject: Re: GCC 3.3 & LIBC patch #2 - build process change References: <002301c31cfb$6ebfabd0$0100a8c0 AT acp42g> <001901c31dfe$cb7cfa90$0100a8c0 AT acp42g> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Hello. Andrew Cottrell wrote: [snip] > The major problem encounted:- > d:/dj204/bin/make.exe -C src > gcc -MD -O2 -mcpu=pentium -march=i386 -Wall -Wbad-function-cast -Wcast-qual > -Werror -Wmissing-declarations -Wmissing-prototypes -Wpointer-arit > h -Wshadow -Wstrict-prototypes -Wwrite-strings -Wundef -Wcast-align -Wsign-c > ompare -nostdinc -fno-strict-aliasing -I. -I- -isystem > ../../../include -DGAS_MAJOR=2 -DGAS_MINOR=13 -DGAS_MINORMINOR=Copyright -c > -fno-exceptions emu387.cc > cc1plus.exe: warning: "-Wbad-function-cast" is valid for C/ObjC but not for > C++ > cc1plus.exe: warning: "-Wmissing-declarations" is valid for C/ObjC but not > for C++ > make.exe[3]: *** [emu387.o] Error 1 > make.exe[2]: *** [all_subs] Error 2 > make.exe[1]: *** [all] Error 2 > make.exe: *** [subs] Error 2 > > Analaysis:- > The problem is caused by GCC 3.3 changing its checking. The current LIBC > make process does not include a specific gcc option file for C++ files and > instead uses the gcc.opt file. > > Proposal:- > Add a GPP.OPT file and modifiy the relevant files to use this. [snip] Perhaps we could generate gpp.opt from gcc.opt using a script that filters out invalid options for C++. For an example see noprof.sed, which we use to filter out the profiling options, when building the profiling code. noprof.sed is only used with one source file, so we apply that on the fly with sed to gcc.opt. gpp.opt should be generated once, I think, to avoid the overhead of starting sed for each C++ file. The fix to emu387 looks fine. I was thinking that we could make the 'tag' member of 'struct reg' an int, to avoid the typecast, but that's probably not worth it. Do you want me to commit that part of the patch? Bye, Rich =] -- Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]