From: Peng H. <pe...@cn...> - 2011-09-29 02:32:24
|
When making with -m32 in x86_64 kernel, the following error messages may be outputted: /usr/bin/ld: i386 architecture of input file `/root/ltp-dev/testcases/commands/ade/ldd/lddfile1.obj' is incompatible with i386:x86-64 output collect2: ld returned 1 exit status The following patch can fix this. Signed-off-by: Peng Haitao <pe...@cn...> --- testcases/commands/ade/ldd/ldd01 | 33 +++++++++++++++++---------------- 1 files changed, 17 insertions(+), 16 deletions(-) diff --git a/testcases/commands/ade/ldd/ldd01 b/testcases/commands/ade/ldd/ldd01 index 3fa446e..fc26ecd 100755 --- a/testcases/commands/ade/ldd/ldd01 +++ b/testcases/commands/ade/ldd/ldd01 @@ -46,23 +46,24 @@ do_setup() { mkdir $TCtmp - # Check for ppc64 architecture - file lddfile1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 - if [ $? -eq 0 ]; then - $CC -m64 -shared -o $TCtmp/lddfile1.obj.so $TCdat/lddfile1.obj - $CC -m64 -shared -o $TCtmp/lddfile2.obj.so $TCdat/lddfile2.obj - $CC -m64 -shared -o $TCtmp/lddfile3.obj.so $TCdat/lddfile3.obj - $CC -m64 -shared -o $TCtmp/lddfile4.obj.so $TCdat/lddfile4.obj - $CC -m64 -shared -o $TCtmp/lddfile5.obj.so $TCdat/lddfile5.obj - $CC -m64 -O -o $TCtmp/a.out $TCtmp/lddfile*.obj.so $TCdat/main.obj - else - $CC -shared -o $TCtmp/lddfile1.obj.so $TCdat/lddfile1.obj - $CC -shared -o $TCtmp/lddfile2.obj.so $TCdat/lddfile2.obj - $CC -shared -o $TCtmp/lddfile3.obj.so $TCdat/lddfile3.obj - $CC -shared -o $TCtmp/lddfile4.obj.so $TCdat/lddfile4.obj - $CC -shared -o $TCtmp/lddfile5.obj.so $TCdat/lddfile5.obj - $CC -O -o $TCtmp/a.out $TCtmp/lddfile*.obj.so $TCdat/main.obj + # Check for ppc64 architecture or x86_64 architecture + if uname -a | grep -iq powerpc; then + file lddfile1.obj | grep 64-bit >/dev/null 2>&1 + if [ $? -eq 0 ]; then + CFLAGS="-m64" + fi + elif uname -a | grep -iq x86_64; then + file lddfile1.obj | grep 32-bit >/dev/null 2>&1 + if [ $? -eq 0 ]; then + CFLAGS="-m32" + fi fi + $CC $CFLAGS -shared -o $TCtmp/lddfile1.obj.so $TCdat/lddfile1.obj + $CC $CFLAGS -shared -o $TCtmp/lddfile2.obj.so $TCdat/lddfile2.obj + $CC $CFLAGS -shared -o $TCtmp/lddfile3.obj.so $TCdat/lddfile3.obj + $CC $CFLAGS -shared -o $TCtmp/lddfile4.obj.so $TCdat/lddfile4.obj + $CC $CFLAGS -shared -o $TCtmp/lddfile5.obj.so $TCdat/lddfile5.obj + $CC $CFLAGS -O -o $TCtmp/a.out $TCtmp/lddfile*.obj.so $TCdat/main.obj } do_test() -- 1.7.1 -- Best Regards, Peng Haitao |
From: Cyril H. <ch...@su...> - 2011-10-13 09:52:14
|
Hi! > When making with -m32 in x86_64 kernel, the following error messages may be outputted: > /usr/bin/ld: i386 architecture of input file `/root/ltp-dev/testcases/commands/ade/ldd/lddfile1.obj' is incompatible with i386:x86-64 output > collect2: ld returned 1 exit status > > The following patch can fix this. Commited, thanks. -- Cyril Hrubis ch...@su... |