Fix ld01 test
PATCH 1/1 Fix ld01 test
Hi,
Please find the patch to fix the "ld" test. I wonder these tests were ever tested before committing to the suite !
On SLES 11 SP1, I get :
plm66:/ltp-full-20091130/testcases/commands/ade/ld # make
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC -I../../../../include -I../../../../include -c -o d1.o d1.c mv d1.o d1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC -I../../../../include -I../../../../include -c -o f1.o f1.c mv f1.o f1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC -I../../../../include -I../../../../include -c -o ldmain.o ldmain.c mv ldmain.o ldmain.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC -I../../../../include -I../../../../include -c -o rd1.o rd1.c mv rd1.o rd1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC -I../../../../include -I../../../../include -c -o rf1.o rf1.c mv rf1.o rf1.obj
plm66:/ltp-full-20091130/testcases/commands/ade/ld # ./ld01
Assertion 1 ..................
-)
Assertion 2 ..................
-)
Assertion 3 ..................
-)
Assertion 4 ..................
-)
Assertion 5 ..................
ld: /ltp-full-20091130/testcases/commands/ade/ld/f1.o: No such file: No such file or directory
FAIL - ld failed to build a shared object
The names used for the object files are not consistent across the Makefile and the script.
Also the method of detecting the ld version is bogus. It will not work for *all* distros.
./ld01: line 184: [: Public: integer expression expected -)
Please find the attached patch which fixes the issue.
Thanks
Suzuki
Issues fixed:
1) Consistency with the names used for object files in Makefile vs. script
2) Better method for finding the version of "ld"
ld01.new renamed from ld01 +22 -16
@@ -140,11 +140,11 @@ fi ## echo "Assertion 5 .................." # Check for ppc64 architecture - file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1 + file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; then - ld -m elf64ppc -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -m elf64ppc -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib else - ld -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib fi file $TCtmp/test.lib | grep -q shared if [ $? -eq 0 ]
@@ -164,23 +164,29 @@ fi echo "Assertion 6 .................." # Check for ppc64 architecture - file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1 + file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; then - ld -m elf64ppc -Bdynamic -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/lola 2>$TCtmp/errmsg.out - ld -m elf64ppc -Bstatic -L. $TCdat/ldmain.o $TCdat/rd1.o $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out + ld -m elf64ppc -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/lola 2>$TCtmp/errmsg.out + ld -m elf64ppc -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out else - ld -Bdynamic -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/lola 2>$TCtmp/errmsg.out - ld -Bstatic -L. $TCdat/ldmain.o $TCdat/rd1.o $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out + ld -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/lola 2>$TCtmp/errmsg.out + + ld -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out fi #nm $TCtmp/a.out | grep -q DYNAMIC rc_code=$? - version_num=`ld --version | grep version | \ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` - - version_num_level2=`ld --version | grep version |\ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` - +# This method doesn't work on all distro. +# version_num=`ld --version | grep version | \ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` +# +# version_num_level2=`ld --version | grep version |\ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` +# +# Better way to get the version of ld +# Search for a pattern that starts with <SPACE><DIGITS><DOT><DIGITS> +version_num=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\1/"` +version_num_level2=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\2/"` if [ "$version_num" -le "2" -a "$version_num_level2" -le "15" ]; then if [ $rc_code -eq 0 ] then
@@ -214,8 +220,8 @@ if [ "$version_num" -le "2" -a "$versio echo "Assertion 7 .................." -ld -Bdynamic -shared $TCdat/ldmain.o $TCdat/f1.o $TCdat/rf1.o -o $TCtmp/lola -L/usr/lib/ -ld -Bstatic -r $TCdat/ldmain.o $TCdat/f1.o $TCdat/rf1.o $TCtmp/lola -L/usr/lib/ 2> $TCtmp/errmsg.out +ld -Bdynamic -shared $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj -o $TCtmp/lola -L/usr/lib/ +ld -Bstatic -r $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj $TCtmp/lola -L/usr/lib/ 2> $TCtmp/errmsg.out cat <<EOF > $TCtmp/errmsg.exp $TCtmp/lola: could not read symbols: Invalid operation EOF
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 139 lines · Suzuki Poulose
Hi,
Please find the patch to fix the "ld" test. I wonder these tests were ever tested before committing to the suite !
On SLES 11 SP1, I get :
plm66:/ltp-full-20091130/testcases/commands/ade/ld # make gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o d1.o
d1.cmv d1.o d1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o f1.of1.cmv f1.o f1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o ldmain.oldmain.cmv ldmain.o ldmain.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o rd1.ord1.cmv rd1.o rd1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o rf1.orf1.cmv rf1.o rf1.obj plm66:/ltp-full-20091130/testcases/commands/ade/ld # ./ld01 Assertion 1 ..................
-)
Assertion 2 ..................
-)
Assertion 3 ..................
-)
Assertion 4 ..................
-)
Assertion 5 ..................
ld: /ltp-full-20091130/testcases/commands/ade/ld/f1.o: No such file:
No such file or directory
FAIL - ld failed to build a shared objectThe names used for the object files are not consistent across the
Makefileand the script.Also the method of detecting the ld version is bogus. It will not work for *all* distros.
./ld01: line 184: [: Public: integer expression expected -)
Please find the attached patch which fixes the issue.
Thanks
SuzukiSigned-off-by Suzuki K P <[email protected]>Issues fixed:
1) Consistency with the names used for object files in
Makefile
vs. script
2) Better method for finding the version of "ld"ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -140,11 +140,11 @@ fi ##echo "Assertion 5 .................."
# Check for ppc64 architecture
- file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1
+ file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; thenld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +1
-1- ld -m elf64ppc -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -m elf64ppc -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib
elseld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +1
-1- ld -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib fifile $TCtmp/test.lib | grep -q shared
if [ $? -eq 0 ]ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -164,23 +164,29 @@ fiecho "Assertion 6 .................."
# Check for ppc64 architecture
- file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1
+ file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; then
- ld -m elf64ppc -Bdynamic -shared$TCdat/f1.o$TCdat/d1.o-o
$TCtmp/lola 2>$TCtmp/errmsg.out
- ld -m elf64ppc -Bstatic -L.$TCdat/ldmain.o$TCdat/rd1.o
$TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
+ ld -m elf64ppc -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o
$TCtmp/lola 2>$TCtmp/errmsg.out
+ ld -m elf64ppc -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj
$TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
else
- ld -Bdynamic -shared$TCdat/f1.o$TCdat/d1.o-o $TCtmp/lola 2>
$TCtmp/errmsg.out
- ld -Bstatic -L.$TCdat/ldmain.o$TCdat/rd1.o$TCtmp/lola -o
$TCtmp/a.out 2> $TCtmp/errmsg.out
+ ld -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/lola
2>$TCtmp/errmsg.outld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +2
-0+ + ld -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
fi
#nm $TCtmp/a.out | grep -q DYNAMIC
rc_code=$?ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +11
-6- version_num=`ld --version | grep version | \ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` - - version_num_level2=`ld --version | grep version |\ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` - +# This method doesn't work on all distro. +# version_num=`ld --version | grep version | \ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` +# +# version_num_level2=`ld --version | grep version |\ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` +# +# Better way to get the version of ld +# Search for a pattern that starts with <SPACE><DIGITS><DOT><DIGITS> +version_num=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\1/"` +version_num_level2=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\2/"`
if [ "$version_num" -le "2" -a "$version_num_level2" -le "15" ]; then
if [ $rc_code -eq 0 ]
thenld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -214,8 +220,8 @@ if [ "$version_num" -le "2" -a "$versioecho "Assertion 7 .................."
-ld -Bdynamic -shared$TCdat/ldmain.o$TCdat/f1.o$TCdat/rf1.o-o $TCtmp/lola -L/usr/lib/
-ld -Bstatic -r$TCdat/ldmain.o$TCdat/f1.o$TCdat/rf1.o$TCtmp/ lola -L/usr/lib/ 2> $TCtmp/errmsg.outld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +2
-1+ld -Bdynamic -shared $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj -o $TCtmp/lola -L/usr/lib/ +ld -Bstatic -r $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj
Quoted 4 lines
$TCtmp/lola -L/usr/lib/ 2> $TCtmp/errmsg.out cat <<EOF > $TCtmp/errmsg.exp
$TCtmp/lola: could not read symbols: Invalid operation EOF
This was actually fixed a few weeks ago.. Please try again with
the version off cvs.
Thanks!
-Garrett
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Suzuki,
Please see this:
http://ltp.cvs.sf.net/viewvc/ltp/ltp/testcases/commands/ade/ld/ld01?view=log,
Regards--
Subrata
Quoted 151 lines · Garrett Cooper
Quoted 139 lines · Suzuki Poulose
Hi,
Please find the patch to fix the "ld" test. I wonder these tests were ever tested before committing to the suite !
On SLES 11 SP1, I get :
plm66:/ltp-full-20091130/testcases/commands/ade/ld # make gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o d1.o
d1.cmv d1.o d1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o f1.of1.cmv f1.o f1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o ldmain.oldmain.cmv ldmain.o ldmain.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o rd1.ord1.cmv rd1.o rd1.obj
gcc -g -O2 -g -O2 -fno-strict-aliasing -pipe -Wall -fPIC - I../../../../include -I../../../../include -c -o rf1.orf1.cmv rf1.o rf1.obj plm66:/ltp-full-20091130/testcases/commands/ade/ld # ./ld01 Assertion 1 ..................
-)
Assertion 2 ..................
-)
Assertion 3 ..................
-)
Assertion 4 ..................
-)
Assertion 5 ..................
ld: /ltp-full-20091130/testcases/commands/ade/ld/f1.o: No such file:
No such file or directory
FAIL - ld failed to build a shared objectThe names used for the object files are not consistent across the
Makefileand the script.Also the method of detecting the ld version is bogus. It will not work for *all* distros.
./ld01: line 184: [: Public: integer expression expected -)
Please find the attached patch which fixes the issue.
Thanks
SuzukiSigned-off-by Suzuki K P <[email protected]>Issues fixed:
1) Consistency with the names used for object files in
Makefile
vs. script
2) Better method for finding the version of "ld"ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -140,11 +140,11 @@ fi ##echo "Assertion 5 .................."
# Check for ppc64 architecture
- file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1
+ file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; thenld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +1
-1- ld -m elf64ppc -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -m elf64ppc -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib
elseld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +1
-1- ld -shared $TCdat/f1.o $TCdat/d1.o -o $TCtmp/test.lib + ld -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/test.lib fifile $TCtmp/test.lib | grep -q shared
if [ $? -eq 0 ]ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -164,23 +164,29 @@ fiecho "Assertion 6 .................."
# Check for ppc64 architecture
- file f1.o | grep PowerPC | grep 64-bit >/dev/null 2>&1
+ file f1.obj | grep PowerPC | grep 64-bit >/dev/null 2>&1 if [ $? -eq 0 ]; then
- ld -m elf64ppc -Bdynamic -shared$TCdat/f1.o$TCdat/d1.o-o
$TCtmp/lola 2>$TCtmp/errmsg.out
- ld -m elf64ppc -Bstatic -L.$TCdat/ldmain.o$TCdat/rd1.o
$TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
+ ld -m elf64ppc -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o
$TCtmp/lola 2>$TCtmp/errmsg.out
+ ld -m elf64ppc -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj
$TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
else
- ld -Bdynamic -shared$TCdat/f1.o$TCdat/d1.o-o $TCtmp/lola 2>
$TCtmp/errmsg.out
- ld -Bstatic -L.$TCdat/ldmain.o$TCdat/rd1.o$TCtmp/lola -o
$TCtmp/a.out 2> $TCtmp/errmsg.out
+ ld -Bdynamic -shared $TCdat/f1.obj $TCdat/d1.obj -o $TCtmp/lola
2>$TCtmp/errmsg.outld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +2
-0+ + ld -Bstatic -L. $TCdat/ldmain.obj $TCdat/rd1.obj $TCtmp/lola -o $TCtmp/a.out 2> $TCtmp/errmsg.out
fi
#nm $TCtmp/a.out | grep -q DYNAMIC
rc_code=$?ld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +11
-6- version_num=`ld --version | grep version | \ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` - - version_num_level2=`ld --version | grep version |\ - awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` - +# This method doesn't work on all distro. +# version_num=`ld --version | grep version | \ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 1` +# +# version_num_level2=`ld --version | grep version |\ +# awk -F ' ' '{ print $4 }' | cut -d '.' -f 2` +# +# Better way to get the version of ld +# Search for a pattern that starts with <SPACE><DIGITS><DOT><DIGITS> +version_num=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\1/"` +version_num_level2=`ld -v | sed "s/.*\ \([0-9]\+\)\.\([0-9]\+\).*/\2/"`
if [ "$version_num" -le "2" -a "$version_num_level2" -le "15" ]; then
if [ $rc_code -eq 0 ]
thenld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +0
-0@@ -214,8 +220,8 @@ if [ "$version_num" -le "2" -a "$versioecho "Assertion 7 .................."
-ld -Bdynamic -shared$TCdat/ldmain.o$TCdat/f1.o$TCdat/rf1.o-o $TCtmp/lola -L/usr/lib/
-ld -Bstatic -r$TCdat/ldmain.o$TCdat/f1.o$TCdat/rf1.o$TCtmp/ lola -L/usr/lib/ 2> $TCtmp/errmsg.outld01.new 2010-01-05 01:01:03.000000000 +0530 renamed from ld01 2006-04-10 23:09:50.000000000 +0530 +2
-1+ld -Bdynamic -shared $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj -o $TCtmp/lola -L/usr/lib/ +ld -Bstatic -r $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.objQuoted 4 lines
$TCtmp/lola -L/usr/lib/ 2> $TCtmp/errmsg.out cat <<EOF > $TCtmp/errmsg.exp
$TCtmp/lola: could not read symbols: Invalid operation EOFThis was actually fixed a few weeks ago.. Please try again with
the version off cvs.
Thanks!
-Garrett
Quoted 10 lines
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list