-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Differences between architectures #13
Comments
@willox I was trying to do the same, and also run into duplicated symbols exception:
@wheybags any advice? |
@SSE4 did you manage to get cross-compilations working? I'm willing to put in some more effort if I don't need to jump on an i386 machine to try it out. |
@willox unfortunately, no, running into various issues. will try tomorrow again and let you know. |
@SSE4 is that from modifying the build script to build glibc in 32 bit? |
some update:
|
for version 2.5 - 2.10.2 I am getting:
for 2.11.3 I've got:
for 2.25:
for 2.26 and upper I am getting:
(for 2.26 I'll try to use newer versions of programs later) |
okay, I think I've solved a problem with cfi_endproc (found patch that fixes an issue), and got the same list of duplicated symbols |
Hello, Have you successfully built and compiled ".so" libs cross different systems ( .,i,e: different gcc version) ? I investigated hard on this but failed at all. Which a lot of errors like: |
I'm not quite 100% on this, but it seems that the generated files are only valid for the architecture glibc is built for by the Python script. This seems like a reasonable limitation, but there's seemingly no way to generate headers that will work for i386 or i686 builds.
I tried changing the Python script to cross-build glibc, but failed. I then tried executing the script on an i686 system, but also failed (a successful build, but hitting the duplicate symbols exception this time.)
Any ideas on this? I'll attach an example of a program that fails to link with a header that has been generated from a x86-64 build of glibc.
Example Download
The example assumes you've got an install of gcc that'll default to 64-bit compilation, but allows for the -m32 flag.
If you execute compile_x64, it should succeed and build the binary. If you execute compile_x32, it should fail with
undefined reference to 'puts@GLIBC_2.2.5'
. I believe it should actually be usingputs@GLIBC_2.0
here.The text was updated successfully, but these errors were encountered: