This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Make libgcc.a symbols .hidden


At Tue, 26 Feb 2002 21:30:57 +0000 (UTC), "Richard Henderson" wrote:
> On Tue, Feb 26, 2002 at 01:41:39PM -0500, Jakub Jelinek wrote:
> > That's what the } " above is there for.
> 
> Ah, missed that.
> 
> The patch is ok then, mainline and branch.

This patch appears to have broken at least mips64-elf builds using a
combined (as described on the gcc web pages) source tree.
(--target=mips-elf, host is x86-linux.)

The problem manifests itself when building the little-endian mips16(!)
multilibs:

./xgcc -B./ -B/home/cgd/proj/gcc-testing/install64/mips64-elf/bin/ -isystem /home/cgd/proj/gcc-testing/install64/mips64-elf/include -isystem /home/cgd/proj/gcc-testing/install64/mips64-elf/sys-include -O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -G 0 -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I/home/cgd/proj/gcc-testing/combined/gcc -I/home/cgd/proj/gcc-testing/combined/gcc/. -I/home/cgd/proj/gcc-testing/combined/gcc/config -I/home/cgd/proj/gcc-testing/combined/gcc/../include -EL -DL_m16addsf3 -xassembler-with-cpp -c /home/cgd/proj/gcc-testing/combined/gcc/config/mips/mips16.S -o libgcc/el/_m16addsf3.o
./nm -pg libgcc/el/_m16addsf3.o | gawk 'NF == 3 { print ".hidden", $3 }' | ./xgcc -B./ -B/home/cgd/proj/gcc-testing/install64/mips64-elf/bin/ -isystem /home/cgd/proj/gcc-testing/install64/mips64-elf/include -isystem /home/cgd/proj/gcc-testing/install64/mips64-elf/sys-include -O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -G 0 -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -r -nostdinc -nostdlib -o libgcc/el/_m16addsf3.oS libgcc/el/_m16addsf3.o -xassembler -
./collect-ld: libgcc/el/_m16addsf3.o: compiled for a little endian system and target is big endian
File in wrong format: failed to merge target specific data of file libgcc/el/_m16addsf3.o


note that the line starting with ./nm, added by this patch, is
normally _not_ printed by the make process, but i tweaked my makefile
to print it after having puzzled for a few minutes about what was
going wrong.  (perhaps these rules shouldn't be output into libgcc.mk
with @?  is there any reason to use @ in this case?)


Anyway, I think in a nutshell, the .oS files being built here have to
be built with the same (multilib-based) compiler flags as are used for
the original .o files.

I don't currently have a patch; busy frying other fish at the moment.


chris


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