[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AIX 5.1 objcopy copy problem in 64 bit mode.

From: Henrik Goldman
Subject: AIX 5.1 objcopy copy problem in 64 bit mode.
Date: Mon, 19 Jun 2006 11:10:57 +0200


I'm having a situation where gnu objcopy fails badly when using it with 64
bit compiles under AIX 5.1:

What I'm doing is to hide some symbols on g++ compiled code:

g++ -maix64 -c -pthread -o temp/AIX/test.o test.cpp
mv temp/AIX/test.o temp/AIX/to_be_fixed.o
ld -b64 -r temp/AIX/to_be_fixed.o
`g++ -maix64 --print-file-name=libstdc++.a` -o temp/AIX/test.o
rm temp/AIX/to_be_fixed.o
mv temp/AIX/test.o temp/AIX/to_be_fixed.o;
objcopy -G main temp/AIX/to_be_fixed.o temp/AIX/test.o;
rm temp/AIX/to_be_fixed.o

When I link with test.o using native AIX linker (with gcc as frontend) I

gcc -maix64 -lpthread -o test test.o
ld: 0711-590 SEVERE ERROR: Object test.o cannot be processed.
       The length field at the beginning of the string table is invalid.
collect2: ld returned 12 exit status
make: *** [all] Error 1

I have tried to temporarily make some modications and exclude objcopy from
the build and suddenly everything starts to work perfectly. objcopy
therefore must generate bad code in 64 bit mode since it also works
correctly as 32 bit code.

I have downloaded binutils 2.16.1 and have configured it with
"./configure --enable-64-bit-bfd"

Are there anything else I could try? What I'm trying is to make global symbols in the object file into local symbols.

Thanks in advance.

-- Henrik

reply via email to

[Prev in Thread] Current Thread [Next in Thread]