Using the following settings, pseudo fails to build MACHINE="intel-corei7-64" DEFAULTTUNE = "corei7-64-x32" t.o: In function `pseudo_client_op': | /usr/src/debug/pseudo/1.8.1-r0/pseudo-1.8.1/pseudo_client.c:1695: undefined reference to `memcpy@GLIBC_2.2.5' | /usr/src/debug/pseudo/1.8.1-r0/pseudo-1.8.1/pseudo_client.c:1697: undefined reference to `memcpy@GLIBC_2.2.5' | /usr/src/debug/pseudo/1.8.1-r0/pseudo-1.8.1/pseudo_client.c:1700: undefined reference to `memcpy@GLIBC_2.2.5' | pseudo_client.o:/usr/src/debug/pseudo/1.8.1-r0/pseudo-1.8.1/pseudo_client.c:1719: more undefined references to `memcpy@GLIBC_2.2.5' follow | /srv/sdc/builds/poky/build/tmp/work/corei7-64-x32-poky-linux-gnux32/pseudo/1.8.1-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux-gnux32/../../libexec/x86_64-poky-linux-gnux32/gcc/x86_64-poky-linux-gnux32/6.3.0/ld: bin/pseudo: No symbol version section for versioned symbol `memcpy@GLIBC_2.2.5' | /srv/sdc/builds/poky/build/tmp/work/corei7-64-x32-poky-linux-gnux32/pseudo/1.8.1-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux-gnux32/../../libexec/x86_64-poky-linux-gnux32/gcc/x86_64-poky-linux-gnux32/6.3.0/ld: final link failed: Nonrepresentable section on output | collect2: error: ld returned 1 exit status | Makefile:110: recipe for target 'bin/pseudo' failed
So this is weird because this is exactly the failure we previously coded around, and the #if condition on the 2.2.5 versioning is explicitly checking for what I thought was the define used for x32. See ports/linux/portdefs.h, it's the test for __amd64__ and __ILP32__. If x32 isn't ILP32, I am very confused.
The x32 fix wasn't in pseudo 1.8.1, it *is* in pseudo 1.8.2 but that only landed in OE-Core/poky master in the last 24hrs. I just verified that I can build pseudo 1.8.2 with Saul's settings.