gcc: 0041-handle-target-sysroot-multilib.patch maybe doesn't work for n32?
So, we have this shiny new patch which appears to correct paths for MIPS, but when I try it with an n32 multilib, I get Very Strange failures.
The actual failing line, from gcc -v:
/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/collect2
-plugin /msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/liblto_plugin.so -plugin-opt=/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSLbHqX.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux --build-id --eh-frame-hdr --hash-style=sysv -EB -mips64 -dynamic-linker /lib64/ld.so.1 -melf32btsmipn32 -o h /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crt1.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crti.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.o -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/lib64/../lib32 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/mips64-oe-linux/5.2.0/32 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32 -L/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/lib/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/lib64 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/mips64-oe-linux/5.2.0 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64 /tmp/ccIHCMJV.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtend.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crtn.o /msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/real-ld: /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.o: ABI is incompatible with that of the selected emulation
[... and many more errors related to this
So, looking around, I see three crtbegin.o in the sysroot:/usr/lib/mips-oe-linux/5.2.0/crtbegin.o /usr/lib64/mips64-oemllib64-linux/5.2.0/crtbegin.o /usr/lib32/mips64-oemllibn32-linux-gnun32/5.2.0/crtbegin.o
And presumably, I want the gnun32 library. But what it actually picked was:/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.o
And that's the 32-bit (base library) crtbegin.o.
I am pretty sure that the gcc patch 0041 affects this but I honestly don't entirely understand it.
-s
Signature · 1 line
Listen, get this. Nobody with a good compiler needs to be justified.
Quoted 16 lines · Peter Seebach
So, we have this shiny new patch which appears to correct paths for MIPS, but when I try it with an n32 multilib, I get Very Strange failures.
The actual failing line, from gcc -v:
/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/collect2
-plugin /msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/liblto_plugin.so -plugin-opt=/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSLbHqX.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux --build-id --eh-frame-hdr --hash-style=sysv -EB -mips64 -dynamic-linker/lib64/ld.so.1-melf32btsmipn32 -o h /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crt1.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crti.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.o -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/lib64/../lib32 -L/msp-lpggp
22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/mips64-oe-linux/5.2.0/32 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32 -L/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/lib/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/lib64 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/mips64-oe-linux/5.2.0 -L/msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/tmp/ccIHCMJV.o-lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtend.o /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/crtn.o
/msp-lpggp22/seebs/oemips/sysroots/x86_64-oesdk-linux/usr/libexec/mips64-oe-linux/gcc/mips64-oe-linux/5.2.0/real-ld: /msp-lpggp22/seebs/oemips/sysroots/mips32r2-oe-linux/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.o: ABI is incompatible with that of the selected emulation
[... and many more errors related to thisSo, looking around, I see three crtbegin.o in the sysroot:
/usr/lib/mips-oe-linux/5.2.0/crtbegin.o/usr/lib64/mips64-oemllib64-linux/5.2.0/crtbegin.o/usr/lib32/mips64-oemllibn32-linux-gnun32/5.2.0/crtbegin.o
Quoted 7 lines
And presumably, I want the gnun32 library. But what it actually picked was:
/usr/lib64/../lib32/mips64-oe-linux/5.2.0/32/crtbegin.oAnd that's the 32-bit (base library) crtbegin.o.
I am pretty sure that the gcc patch 0041 affects this but I honestly don't entirely understand it.
also look at 0013-64-bit-multilib-hack.patch
this should not even look at bitness directories. I wonder why thats happening.
Quoted 9 lines
-s
--
Listen, get this. Nobody with a good compiler needs to be justified. --
_______________________________________________
Openembedded-core mailing list [email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 2 lines · On Tue, 13 Oct 2015 14:16:53 -0700 Khem Raj <[email protected]> wrote:
also look at 0013-64-bit-multilib-hack.patch
this should not even look at bitness directories. I wonder why thats happening.
I don't know. I know that we didn't have this problem in the 4.9 era, but I think that our toolchain had 64-bit-multilib.patch back then, but didn't have the newer handle-target-sysroot-multilib. I haven't tried building without them yet to see how different it is (or isn't). It may also be a 5.2 change. Wheeeeeee.
-s
Signature · 1 line
Listen, get this. Nobody with a good compiler needs to be justified.