Suzuki, Please see this: http://ltp.cvs.sf.net/viewvc/ltp/ltp/testcases/commands/ade/ld/ld01?view=log,
Regards-- Subrata On Mon, 2010-01-04 at 18:04 -0800, Garrett Cooper wrote: > On Jan 4, 2010, at 6:15 AM, Suzuki Poulose <[email protected]> wrote: > > > 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 > > Signed-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 2006-04-10 23:09:50.000000000 +0530 > > +++ ld01.new 2010-01-05 01:01:03.000000000 +0530 > > @@ -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 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 ------------------------------------------------------------------------------ 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
