Bug 11052 - pseudo x32 target build fails
Summary: pseudo x32 target build fails
Status: RESOLVED WORKSFORME
Alias: None
Product: Pseudo
Classification: Yocto Project Subprojects
Component: pseudo (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 2.3 M3
Assignee: Joshua Lock
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-02-14 17:19 UTC by Saul Wold
Modified: 2017-02-16 16:29 UTC (History)
4 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: New (Never tested)
Verified:
Documentation change: Yes (doc changes required)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Saul Wold 2017-02-14 17:19:40 UTC
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
Comment 1 Seebs 2017-02-16 16:18:14 UTC
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.
Comment 2 Joshua Lock 2017-02-16 16:29:16 UTC
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.