diff options
Diffstat (limited to 'testsuite')
120 files changed, 0 insertions, 3573 deletions
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am deleted file mode 100644 index 3af929b..0000000 --- a/testsuite/Makefile.am +++ /dev/null @@ -1,56 +0,0 @@ -## Process this file with automake to create Makefile.in - -AUTOMAKE_OPTIONS = 1.4 gnu - -DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -Wall -AM_CFLAGS = -Wall - -TESTS = movelibs.sh \ - reloc1.sh reloc2.sh reloc3.sh reloc4.sh reloc5.sh reloc6.sh \ - reloc7.sh reloc8.sh reloc9.sh reloc10.sh reloc11.sh \ - shuffle1.sh shuffle2.sh shuffle3.sh shuffle4.sh shuffle5.sh \ - shuffle6.sh shuffle7.sh shuffle8.sh undo1.sh \ - layout1.sh layout2.sh \ - tls1.sh tls2.sh tls3.sh tls4.sh tls5.sh tls6.sh tls7.sh \ - cxx1.sh quick1.sh quick2.sh quick3.sh cycle1.sh cycle2.sh \ - deps1.sh deps2.sh \ - undosyslibs.sh -TESTS_ENVIRONMENT = \ - PRELINK="../src/prelink -c ./prelink.conf -C ./prelink.cache --ld-library-path=. --dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - CC="$(CC) $(LINKOPTS)" CCLINK="$(CC) -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - CXX="$(CXX) $(LINKOPTS)" CXXLINK="$(CXX) -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - $(SHELL) - -extra_DIST = $(TESTS) functions.sh - -CLEANFILES = *.so *.so.* *.nop syslib.list syslnk.list prelink.cache prelink.conf \ - $(TESTS:%.sh=%) $(TESTS:%.sh=%.log) $(TESTS:%.sh=%.lds) \ - *.orig *.new core* *.\#prelink\#* tlstest *.first *.second - -clean-am: clean-dirs - -clean-dirs: - rm -rf *.tree - -.NOTPARALLEL: - -check-cycle: - @optlist=.; \ - if [ "`uname -m | sed s/i.86/i.86/`" = i.86 ]; then \ - optlist="--no-exec-shield --exec-shield"; \ - fi; \ - for opts2 in $$optlist; do \ - for opts in -v -vm -vR -vmR; do \ - PRELINK_OPTS="$$opts"; \ - [ $$opts2 != . ] && PRELINK_OPTS="$$opts $$opts2"; \ - echo "Checking with $$PRELINK_OPTS"; \ - PRELINK_OPTS="$$PRELINK_OPTS" $(MAKE) $(AM_MAKEFLAGS) check || exit; \ - $(MAKE) $(AM_MAKEFLAGS) clean || exit; \ - done; \ - done; \ - echo "Checking with -Wl,-z,nocombreloc"; \ - LINKOPTS=-Wl,-z,nocombreloc $(MAKE) $(AM_MAKEFLAGS) check || exit; \ - $(MAKE) $(AM_MAKEFLAGS) clean || exit - -check-harder: - @CHECK_ME_HARDER=1 $(MAKE) $(AM_MAKEFLAGS) check || exit diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in deleted file mode 100644 index 205f6e3..0000000 --- a/testsuite/Makefile.in +++ /dev/null @@ -1,344 +0,0 @@ -# Makefile.in generated by automake 1.6.3 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AR = @AR@ -AS = @AS@ -AWK = @AWK@ -CC = @CC@ -CPP = @CPP@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -DEPDIR = @DEPDIR@ -DLLTOOL = @DLLTOOL@ -ECHO = @ECHO@ -EGREP = @EGREP@ -F77 = @F77@ -GCJ = @GCJ@ -GCJFLAGS = @GCJFLAGS@ -GELFINCLUDE = @GELFINCLUDE@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LIBGELF = @LIBGELF@ -LIBTOOL = @LIBTOOL@ -LN_S = @LN_S@ -OBJDUMP = @OBJDUMP@ -PACKAGE = @PACKAGE@ -RANLIB = @RANLIB@ -RC = @RC@ -STRIP = @STRIP@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -AUTOMAKE_OPTIONS = 1.4 gnu - -DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -Wall -AM_CFLAGS = -Wall - -TESTS = movelibs.sh \ - reloc1.sh reloc2.sh reloc3.sh reloc4.sh reloc5.sh reloc6.sh \ - reloc7.sh reloc8.sh reloc9.sh reloc10.sh reloc11.sh \ - shuffle1.sh shuffle2.sh shuffle3.sh shuffle4.sh shuffle5.sh \ - shuffle6.sh shuffle7.sh shuffle8.sh undo1.sh \ - layout1.sh layout2.sh \ - tls1.sh tls2.sh tls3.sh tls4.sh tls5.sh tls6.sh tls7.sh \ - cxx1.sh quick1.sh quick2.sh quick3.sh cycle1.sh cycle2.sh \ - deps1.sh deps2.sh \ - undosyslibs.sh - -TESTS_ENVIRONMENT = \ - PRELINK="../src/prelink -c ./prelink.conf -C ./prelink.cache --ld-library-path=. --dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - CC="$(CC) $(LINKOPTS)" CCLINK="$(CC) -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - CXX="$(CXX) $(LINKOPTS)" CXXLINK="$(CXX) -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`" \ - $(SHELL) - - -extra_DIST = $(TESTS) functions.sh - -CLEANFILES = *.so *.so.* *.nop syslib.list syslnk.list prelink.cache prelink.conf \ - $(TESTS:%.sh=%) $(TESTS:%.sh=%.log) $(TESTS:%.sh=%.lds) \ - *.orig *.new core* *.\#prelink\#* tlstest *.first *.second - -subdir = testsuite -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu testsuite/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: -tags: TAGS -TAGS: - - -check-TESTS: $(TESTS) - @failed=0; all=0; xfail=0; xpass=0; \ - srcdir=$(srcdir); export srcdir; \ - list='$(TESTS)'; \ - if test -n "$$list"; then \ - for tst in $$list; do \ - if test -f ./$$tst; then dir=./; \ - elif test -f $$tst; then dir=; \ - else dir="$(srcdir)/"; fi; \ - $(TESTS_ENVIRONMENT) $${dir}$$tst; \ - ret=$$?; \ - if test $$ret -eq 0; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ - xpass=`expr $$xpass + 1`; \ - failed=`expr $$failed + 1`; \ - echo "XPASS: $$tst"; \ - ;; \ - *) \ - echo "PASS: $$tst"; \ - ;; \ - esac; \ - elif test $$ret -ne 77; then \ - all=`expr $$all + 1`; \ - case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ - xfail=`expr $$xfail + 1`; \ - echo "XFAIL: $$tst ($$ret)"; \ - ;; \ - *) \ - failed=`expr $$failed + 1`; \ - echo "FAIL: $$tst ($$ret)"; \ - ;; \ - esac; \ - fi; \ - done; \ - if test "$$failed" -eq 0; then \ - if test "$$xfail" -eq 0; then \ - banner="All $$all tests passed"; \ - else \ - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ - fi; \ - else \ - if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all tests failed"; \ - else \ - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ - fi; \ - fi; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes"; \ - test "$$failed" -eq 0; \ - else :; fi -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @list='$(DISTFILES)'; for file in $$list; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -clean: clean-am - -clean-am: clean-generic clean-libtool mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic distclean-libtool - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic mostlyclean-libtool - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-TESTS check-am clean clean-generic \ - clean-libtool distclean distclean-generic distclean-libtool \ - distdir dvi dvi-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool uninstall uninstall-am uninstall-info-am - - -clean-am: clean-dirs - -clean-dirs: - rm -rf *.tree - -.NOTPARALLEL: - -check-cycle: - @optlist=.; \ - if [ "`uname -m | sed s/i.86/i.86/`" = i.86 ]; then \ - optlist="--no-exec-shield --exec-shield"; \ - fi; \ - for opts2 in $$optlist; do \ - for opts in -v -vm -vR -vmR; do \ - PRELINK_OPTS="$$opts"; \ - [ $$opts2 != . ] && PRELINK_OPTS="$$opts $$opts2"; \ - echo "Checking with $$PRELINK_OPTS"; \ - PRELINK_OPTS="$$PRELINK_OPTS" $(MAKE) $(AM_MAKEFLAGS) check || exit; \ - $(MAKE) $(AM_MAKEFLAGS) clean || exit; \ - done; \ - done; \ - echo "Checking with -Wl,-z,nocombreloc"; \ - LINKOPTS=-Wl,-z,nocombreloc $(MAKE) $(AM_MAKEFLAGS) check || exit; \ - $(MAKE) $(AM_MAKEFLAGS) clean || exit - -check-harder: - @CHECK_ME_HARDER=1 $(MAKE) $(AM_MAKEFLAGS) check || exit -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/testsuite/cxx1.C b/testsuite/cxx1.C deleted file mode 100644 index 9c11a6d..0000000 --- a/testsuite/cxx1.C +++ /dev/null @@ -1,26 +0,0 @@ -#include "cxx1.h" -extern "C" void abort (void); - -void -check (A *x, B *y) -{ - C d; - if (x->b () != 21) - abort (); - if (y->B::a () != 22) - abort (); - if (d.a () != 23) - abort (); - if (d.C::b () != 24) - abort (); -} - -int -main () -{ - A x; - if (x.a () != 20) - abort (); - do_check (check, &x); - return 0; -} diff --git a/testsuite/cxx1.h b/testsuite/cxx1.h deleted file mode 100644 index d6efe9b..0000000 --- a/testsuite/cxx1.h +++ /dev/null @@ -1,19 +0,0 @@ -struct A - { - virtual int a (); - virtual int b (); - int c; - }; -struct B - { - virtual int a (); - int b; - }; -struct C - { - virtual int a (); - virtual int b (); - int c; - }; - -void do_check (void (*check) (A *x, B *y), A *x); diff --git a/testsuite/cxx1.sh b/testsuite/cxx1.sh deleted file mode 100755 index 81428c2..0000000 --- a/testsuite/cxx1.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f cxx1 cxx1lib*.so cxx1.log -rm -f prelink.cache -$CXX -shared -O2 -fpic -o cxx1lib1.so $srcdir/cxx1lib1.C -$CXX -shared -O2 -fpic -o cxx1lib2.so $srcdir/cxx1lib2.C cxx1lib1.so -BINS="cxx1" -LIBS="cxx1lib1.so cxx1lib2.so" -$CXXLINK -o cxx1 $srcdir/cxx1.C -Wl,--rpath-link,. cxx1lib2.so -savelibs -echo $PRELINK -vvvv ${PRELINK_OPTS--vm} ./cxx1 > cxx1.log -$PRELINK -vvvv ${PRELINK_OPTS--vm} ./cxx1 >> cxx1.log 2>&1 || exit 1 -grep ^`echo $PRELINK | sed 's/ .*$/: /'` cxx1.log | grep -q -v 'C++ conflict' && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./cxx1 || exit 3 -fi -readelf -a ./cxx1 >> cxx1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./cxx1 -comparelibs >> cxx1.log 2>&1 || exit 5 diff --git a/testsuite/cxx1lib1.C b/testsuite/cxx1lib1.C deleted file mode 100644 index 1eb192a..0000000 --- a/testsuite/cxx1lib1.C +++ /dev/null @@ -1,34 +0,0 @@ -#include "cxx1.h" - -int A::a () -{ - return 10; -} - -int A::b () -{ - return 11; -} - -int B::a () -{ - return 12; -} - -int C::a () -{ - return 13; -} - -int C::b () -{ - return 14; -} - -void -do_check (void (*check) (A *x, B *y), A *x) -{ - B y; - - check (x, &y); -} diff --git a/testsuite/cxx1lib2.C b/testsuite/cxx1lib2.C deleted file mode 100644 index 77055da..0000000 --- a/testsuite/cxx1lib2.C +++ /dev/null @@ -1,28 +0,0 @@ -#include "cxx1.h" - -int A::a () -{ - return 20; -} - -int A::b () -{ - return 21; -} - -int B::a () -{ - return 22; -} - -int C::a () -{ - return 23; -} - -int C::b () -{ - return 24; -} - -C c; diff --git a/testsuite/cycle1.sh b/testsuite/cycle1.sh deleted file mode 100755 index caf7864..0000000 --- a/testsuite/cycle1.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f cycle1 cycle1lib*.so cycle1.log -rm -f prelink.cache -# Test whether prelink doesn't segfault or loop endlessly on -# bogus library dependency chains -echo 'int foo;' | $CC -shared -O2 -fpic -o cycle1lib1.so -xc - -echo 'int bar;' | $CC -shared -O2 -fpic -o cycle1lib2.so -xc - -xnone cycle1lib1.so -echo 'int foo;' | $CC -shared -O2 -fpic -o cycle1lib1.so -xc - -xnone cycle1lib2.so -BINS="cycle1" -LIBS="cycle1lib1.so cycle1lib2.so" -echo 'int main (void) { return 0; } ' \ - | $CCLINK -o cycle1 -xc - -xnone -Wl,--rpath-link,. cycle1lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./cycle1 > cycle1.log -$PRELINK ${PRELINK_OPTS--vm} ./cycle1 >> cycle1.log 2>&1 || exit 1 -grep -v 'has a dependency cycle' cycle1.log \ - | grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` && exit 2 -grep -q "^`echo $PRELINK | sed 's/ .*$/: .*has a dependency cycle/'`" \ - cycle1.log || exit 3 -if [ "x$CROSS" = "x" ] ; then - LD_LIBRARY_PATH=. ./cycle1 || exit 4 -fi -# So that it is not prelinked again -chmod -x ./cycle1 diff --git a/testsuite/cycle2.sh b/testsuite/cycle2.sh deleted file mode 100755 index a160a3a..0000000 --- a/testsuite/cycle2.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f cycle2 cycle2lib*.so cycle2.log -rm -f prelink.cache -# Test whether prelink doesn't segfault or loop endlessly on -# bogus library dependency chains -echo 'int i1;' | $CC -shared -O2 -fpic -o cycle2lib1.so -xc - -echo 'int i2;' | $CC -shared -O2 -fpic -o cycle2lib2.so -xc - -xnone cycle2lib1.so -echo 'int i3;' | $CC -shared -O2 -fpic -o cycle2lib3.so -xc - -xnone cycle2lib2.so -echo 'int i4;' | $CC -shared -O2 -fpic -o cycle2lib4.so -xc - -xnone cycle2lib3.so -echo 'int i5;' | $CC -shared -O2 -fpic -o cycle2lib5.so -xc - -xnone cycle2lib4.so -echo 'int i1;' | $CC -shared -O2 -fpic -o cycle2lib1.so -xc - -xnone cycle2lib5.so -BINS="cycle2" -LIBS="cycle2lib1.so cycle2lib2.so cycle2lib3.so cycle2lib4.so cycle2lib5.so" -echo 'int main (void) { return 0; } ' \ - | $CCLINK -o cycle2 -xc - -xnone -Wl,--rpath-link,. cycle2lib5.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./cycle2 > cycle2.log -$PRELINK ${PRELINK_OPTS--vm} ./cycle2 >> cycle2.log 2>&1 || exit 1 -grep -v 'has a dependency cycle' cycle2.log \ - | grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` && exit 2 -grep -q "^`echo $PRELINK | sed 's/ .*$/: .*has a dependency cycle/'`" \ - cycle2.log || exit 3 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./cycle2 || exit 4 -fi -# So that it is not prelinked again -chmod -x ./cycle2 diff --git a/testsuite/deps1.c b/testsuite/deps1.c deleted file mode 100644 index 331546c..0000000 --- a/testsuite/deps1.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -static struct A local = { 77, &local, &bar + 4 }; - -int main() -{ - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 1 || f2 () != 2) - abort (); - local.c -= 4; - if (local.a != 77 || local.b != &local || local.c != &bar) - abort (); - if (f8 () != 17) - abort (); - exit (0); -} diff --git a/testsuite/deps1.h b/testsuite/deps1.h deleted file mode 100644 index d5868f7..0000000 --- a/testsuite/deps1.h +++ /dev/null @@ -1,4 +0,0 @@ -#include "reloc1.h" - -extern int f8 (void); -extern int f9 (void); diff --git a/testsuite/deps1.sh b/testsuite/deps1.sh deleted file mode 100755 index 96395fa..0000000 --- a/testsuite/deps1.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh - -PRELINK=`echo $PRELINK \ - | sed -e 's, \./\(prelink\.\(cache\|conf\)\), deps1.tree/etc/\1,g' \ - -e 's,path=\.,path=deps1.tree/lib:deps1.tree/usr/lib:deps1.tree/opt/lib,' \ - -e 's,linker=\./,linker=deps1.tree/lib/,'` -CCLINK=`echo $CCLINK \ - | sed -e 's,linker=\./,linker=deps1.tree/lib/,'` -rm -rf deps1.tree -rm -f deps1.log -mkdir -p deps1.tree/{lib,etc,usr/lib,opt/lib,usr/bin} -$CC -shared -O2 -fpic -o deps1.tree/usr/lib/lib1.so $srcdir/deps1lib1.c -$CC -shared -O2 -fpic -o deps1.tree/opt/lib/lib1.so $srcdir/deps1lib1.c -$CC -shared -O2 -fpic -o deps1.tree/usr/lib/lib2.so $srcdir/deps1lib2.c \ - -L deps1.tree/opt/lib -Wl,-rpath,deps1.tree/opt/lib -l1 -echo '' | $CC -shared -O2 -fpic -o deps1.tree/usr/lib/lib3.so -xc - -xnone \ - -L deps1.tree/usr/lib -L deps1.tree/opt/lib -Wl,-rpath,deps1.tree/usr/lib \ - -l1 -l2 -for lib in `cat syslib.list`; do - cp -p $lib.orig deps1.tree/lib/$lib - cp -p $lib.orig deps1.tree/lib/$lib.orig -done -for lib in `cat syslnk.list`; do - cp -dp $lib deps1.tree/lib -done -$CCLINK -o deps1.tree/usr/bin/bin1 $srcdir/deps1.c \ - -Wl,-rpath,deps1.tree/usr/lib -L deps1.tree/usr/lib -l3 -cat > deps1.tree/etc/prelink.conf <<EOF -deps1.tree/usr/bin -deps1.tree/lib -deps1.tree/usr/lib -deps1.tree/opt/lib -EOF -LIBS="deps1.tree/usr/lib/lib1.so deps1.tree/usr/lib/lib2.so" -LIBS="$LIBS deps1.tree/usr/lib/lib3.so deps1.tree/opt/lib/lib1.so" -LIBS="$LIBS `sed 's|^|deps1.tree/lib/|' syslib.list`" -BINS="deps1.tree/usr/bin/bin1" -savelibs -chmod 644 `ls $BINS | sed 's|$|.orig|'` -echo $PRELINK ${PRELINK_OPTS--v} -avvvvv > deps1.log -$PRELINK ${PRELINK_OPTS--v} -avvvvv > deps1.tree/etc/log1 2>&1 || exit 1 -cat deps1.tree/etc/log1 >> deps1.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=deps1.tree/lib deps1.tree/usr/bin/bin1 || exit 2 -fi -readelf -d deps1.tree/{usr,opt}/lib/lib1.so 2>&1 | grep CHECKSUM >> deps1.log || exit 3 -readelf -A deps1.tree/usr/lib/lib1.so >> deps1.log 2>&1 || exit 4 -readelf -A deps1.tree/opt/lib/lib1.so >> deps1.log 2>&1 || exit 5 -readelf -A deps1.tree/usr/lib/lib2.so >> deps1.log 2>&1 || exit 6 -readelf -A deps1.tree/usr/lib/lib3.so >> deps1.log 2>&1 || exit 7 -readelf -A deps1.tree/usr/bin/bin1 >> deps1.log 2>&1 || exit 8 -LIBS="deps1.tree/usr/lib/lib1.so deps1.tree/usr/lib/lib2.so" -LIBS="$LIBS deps1.tree/opt/lib/lib1.so" -readelf -S deps1.tree/usr/lib/lib3.so | grep -q .gnu.prelink_undo \ - && LIBS="$LIBS deps1.tree/usr/lib/lib3.so" -readelf -S deps1.tree/usr/bin/bin1 | grep -q .gnu.prelink_undo \ - || BINS= -comparelibs >> deps1.log 2>&1 || exit 8 -exit 0 diff --git a/testsuite/deps1lib1.c b/testsuite/deps1lib1.c deleted file mode 100644 index d4ab28b..0000000 --- a/testsuite/deps1lib1.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "deps1.h" - -int bar = 26; -int baz = 28; - -struct A foo = { 1, &foo, &bar }; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} - -int f9 (void) -{ - return 18; -} diff --git a/testsuite/deps1lib2.c b/testsuite/deps1lib2.c deleted file mode 100644 index f73b456..0000000 --- a/testsuite/deps1lib2.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "reloc1.h" - -int f1 (void) -{ - return 11; -} - -int f8 (void) -{ - return f9 () - 1; -} diff --git a/testsuite/deps2.sh b/testsuite/deps2.sh deleted file mode 100755 index 4838f9b..0000000 --- a/testsuite/deps2.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh - -PRELINK=`echo $PRELINK \ - | sed -e 's, \./\(prelink\.\(cache\|conf\)\), deps2.tree/etc/\1,g' \ - -e 's,path=\.,path=deps2.tree/lib:deps2.tree/usr/lib:deps2.tree/opt/lib,' \ - -e 's,linker=\./,linker=deps2.tree/lib/,'` -CCLINK=`echo $CCLINK \ - | sed -e 's,linker=\./,linker=deps2.tree/lib/,'` -rm -rf deps2.tree -rm -f deps2.log -mkdir -p deps2.tree/{lib,etc,usr/lib,opt/lib,usr/bin} -$CC -shared -O2 -fpic -o deps2.tree/usr/lib/lib1.so $srcdir/deps1lib1.c -$CC -shared -O2 -fpic -o deps2.tree/opt/lib/lib1.so $srcdir/deps2lib1.c -$CC -shared -O2 -fpic -o deps2.tree/usr/lib/lib2.so $srcdir/deps1lib2.c \ - -L deps2.tree/opt/lib -Wl,-rpath,deps2.tree/opt/lib -l1 -echo '' | $CC -shared -O2 -fpic -o deps2.tree/usr/lib/lib3.so -xc - -xnone \ - -L deps2.tree/usr/lib -L deps2.tree/opt/lib -Wl,-rpath,deps2.tree/usr/lib \ - -l1 -l2 -for lib in `cat syslib.list`; do - cp -p $lib.orig deps2.tree/lib/$lib - cp -p $lib.orig deps2.tree/lib/$lib.orig -done -for lib in `cat syslnk.list`; do - cp -dp $lib deps2.tree/lib -done -$CCLINK -o deps2.tree/usr/bin/bin1 $srcdir/deps1.c \ - -Wl,-rpath,deps2.tree/usr/lib -L deps2.tree/usr/lib -l3 -cat > deps2.tree/etc/prelink.conf <<EOF -deps2.tree/usr/bin -deps2.tree/lib -deps2.tree/usr/lib -deps2.tree/opt/lib -EOF -LIBS="deps2.tree/usr/lib/lib1.so deps2.tree/usr/lib/lib2.so" -LIBS="$LIBS deps2.tree/usr/lib/lib3.so deps2.tree/opt/lib/lib1.so" -LIBS="$LIBS `sed 's|^|deps2.tree/lib/|' syslib.list`" -BINS="deps2.tree/usr/bin/bin1" -savelibs -chmod 644 `ls $BINS | sed 's|$|.orig|'` -echo $PRELINK ${PRELINK_OPTS--v} -avvvvv > deps2.log -$PRELINK ${PRELINK_OPTS--v} -avvvvv > deps2.tree/etc/log1 2>&1 || exit 1 -cat deps2.tree/etc/log1 >> deps2.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=deps2.tree/lib deps2.tree/usr/bin/bin1 || exit 2 -fi -readelf -d deps2.tree/{usr,opt}/lib/lib1.so 2>&1 | grep CHECKSUM >> deps2.log || exit 3 -readelf -A deps2.tree/usr/lib/lib1.so >> deps2.log 2>&1 || exit 4 -readelf -A deps2.tree/opt/lib/lib1.so >> deps2.log 2>&1 || exit 5 -readelf -A deps2.tree/usr/lib/lib2.so >> deps2.log 2>&1 || exit 6 -readelf -A deps2.tree/usr/lib/lib3.so >> deps2.log 2>&1 || exit 7 -readelf -A deps2.tree/usr/bin/bin1 >> deps2.log 2>&1 || exit 8 -LIBS="deps2.tree/usr/lib/lib1.so deps2.tree/usr/lib/lib2.so" -LIBS="$LIBS deps2.tree/opt/lib/lib1.so" -BINS= -comparelibs >> deps2.log 2>&1 || exit 9 -exit 0 diff --git a/testsuite/deps2lib1.c b/testsuite/deps2lib1.c deleted file mode 100644 index 9d4b2de..0000000 --- a/testsuite/deps2lib1.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "deps1.h" - -int bar = 26; -int baz = 28; - -struct A foo = { 1, &foo, &bar }; - -int f0 (void) -{ - return f1 () + f2 () + f9 () + bar + baz; -} - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} - -int f9 (void) -{ - return 18; -} diff --git a/testsuite/filter1.c b/testsuite/filter1.c deleted file mode 100644 index e6b186c..0000000 --- a/testsuite/filter1.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "filter1.h" -#include <stdlib.h> - -int main() -{ - if (f1 () != 54 || f2 () != 54 || f3 () != 54) - abort (); - if (foo1.a != 1 || *foo1.b != 24 || *foo1.c != 30) - abort (); - if (foo2.a != 2 || *foo2.b != 24 || *foo2.c != 30) - abort (); - if (pfoo1p->a != 1 || *pfoo1p->b != 24 || *pfoo1p->c != 30) - abort (); - if (pfoo2p->a != 2 || *pfoo2p->b != 24 || *pfoo2p->c != 30) - abort (); - exit (0); -} diff --git a/testsuite/filter1.h b/testsuite/filter1.h deleted file mode 100644 index 8d41041..0000000 --- a/testsuite/filter1.h +++ /dev/null @@ -1,12 +0,0 @@ -struct A - { - char a; - int *b; - int *c; - }; - -extern struct A foo1, foo2; -extern struct A *pfoo1p, *pfoo2p; -extern int bar, baz; - -extern int f1 (void), f2 (void), f3 (void); diff --git a/testsuite/filter1.sh b/testsuite/filter1.sh deleted file mode 100755 index f70cd77..0000000 --- a/testsuite/filter1.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# This test relies on current GNU libc DT_FILTER/DT_AUXILIARY handling -# -rm -f filter1 filter1lib*.so filter1.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o filter1filter.so $srcdir/filter1filter.c -$CC -shared -O2 -fpic -o filter1lib1.so $srcdir/filter1lib1.c -Wl,-F,filter1filter.so filter1filter.so -$CC -shared -O2 -fpic -o filter1lib2.so $srcdir/filter1lib2.c filter1lib1.so -$CCLINK -o filter1 $srcdir/filter1.c -Wl,--rpath-link,. filter1lib2.so -echo $PRELINK -vm ./filter1 > filter1.log -$PRELINK -vm ./filter1 >> filter1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` filter1.log && exit 2 -LD_LIBRARY_PATH=. ./filter1 || exit 3 -readelf -a ./filter1 >> filter1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./filter1 diff --git a/testsuite/filter1filter.c b/testsuite/filter1filter.c deleted file mode 100644 index f612517..0000000 --- a/testsuite/filter1filter.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "filter1.h" - -int bar = 24; -int baz = 22; - -struct A foo2 = { 2, &bar, &baz }; -static struct A pfoo2 = { 2, &bar, &baz }; -struct A *pfoo2p = &pfoo2; - -int f2 (void) -{ - return bar + baz; -} diff --git a/testsuite/filter1lib1.c b/testsuite/filter1lib1.c deleted file mode 100644 index 9cee3d1..0000000 --- a/testsuite/filter1lib1.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "filter1.h" - -int bar = 26; -int baz = 28; - -struct A foo1 = { 1, &bar, &baz }; -static struct A pfoo1 = { 1, &bar, &baz }; -struct A *pfoo1p = &pfoo1; - -int f1 (void) -{ - return bar + baz; -} diff --git a/testsuite/filter1lib2.c b/testsuite/filter1lib2.c deleted file mode 100644 index e8b520f..0000000 --- a/testsuite/filter1lib2.c +++ /dev/null @@ -1,8 +0,0 @@ -#include "filter1.h" - -int baz = 30; - -int f3 (void) -{ - return bar + baz; -} diff --git a/testsuite/filter2.sh b/testsuite/filter2.sh deleted file mode 100755 index c5611b5..0000000 --- a/testsuite/filter2.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# This test relies on current GNU libc DT_FILTER/DT_AUXILIARY handling -# -rm -f filter2 filter2lib*.so filter2.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o filter2filter.so $srcdir/filter1filter.c -$CC -shared -O2 -fpic -o filter2lib1.so $srcdir/filter1lib1.c -Wl,-F,filter2filter.so -Wl,-f,filter2missingfilter.so filter2filter.so -$CC -shared -O2 -fpic -o filter2lib2.so $srcdir/filter1lib2.c filter2lib1.so -$CCLINK -o filter2 $srcdir/filter1.c -Wl,--rpath-link,. filter2lib2.so -echo $PRELINK -vm ./filter2 > filter2.log -$PRELINK -vm ./filter2 >> filter2.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` filter2.log && exit 2 -LD_LIBRARY_PATH=. ./filter2 || exit 3 -readelf -a ./filter2 >> filter2.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./filter2 diff --git a/testsuite/functions.sh b/testsuite/functions.sh deleted file mode 100755 index c351fd1..0000000 --- a/testsuite/functions.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -CC="${CC:-gcc} ${LINKOPTS}" -CCLINK=${CCLINK:-${CC} -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`} -CXX="${CXX:-g++} ${LINKOPTS}" -CXXLINK=${CXXLINK:-${CXX} -Wl,--dynamic-linker=`echo ./ld*.so.*[0-9]`} -PRELINK=${PRELINK:-../src/prelink -c ./prelink.conf -C ./prelink.cache --ld-library-path=. --dynamic-linker=`echo ./ld*.so.*[0-9]`} -LDD=${LDD:-../src/prelink-rtld} -STRIP=${STRIP:-strip} -HOST_CC=${HOST_CC:-$CC} -srcdir=${srcdir:-`dirname $0`} -savelibs() { - for i in $LIBS $BINS; do cp -p $i $i.orig; done -} -comparelibs() { - for i in $LIBS $BINS; do - cp -p $i $i.new - echo $PRELINK -u $i.new - $PRELINK -u $i.new || exit - cmp -s $i.orig $i.new || exit - rm -f $i.new - echo $PRELINK -y $i \> $i.new - $PRELINK -y $i > $i.new || exit - cmp -s $i.orig $i.new || exit - rm -f $i.new - done -} diff --git a/testsuite/layout.C b/testsuite/layout.C deleted file mode 100644 index 5047a34..0000000 --- a/testsuite/layout.C +++ /dev/null @@ -1,3 +0,0 @@ -int main() -{ -} diff --git a/testsuite/layout1.sh b/testsuite/layout1.sh deleted file mode 100755 index e217dea..0000000 --- a/testsuite/layout1.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f prelink.cache -rm -f layout1 layoutlib*.so layout1.log -i=10 -BINS="layout1" -LIBS= -while [ $i -lt 74 ]; do - $CXX -shared -fpic -o layout1lib$i.so $srcdir/layoutlib.C - LIBS="$LIBS layout1lib$i.so" - i=`expr $i + 1` -done -$CXXLINK -o layout1 $srcdir/layout.C layout1lib*.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vR} ./layout1 > layout1.log -$PRELINK ${PRELINK_OPTS--vR} ./layout1 >> layout1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` layout1.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./layout1 || exit 3 -fi -readelf -a ./layout1 >> layout1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./layout1 -comparelibs >> layout1.log 2>&1 || exit 5 diff --git a/testsuite/layout2.sh b/testsuite/layout2.sh deleted file mode 100755 index 2307a42..0000000 --- a/testsuite/layout2.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f layout2 layout2lib*.so layout2.log -i=1 -BINS="layout2" -LIBS= -while [ $i -lt 6 ]; do - $CXX -shared -fpic -o layout2lib$i.so $srcdir/layoutlib.C - LIBS="$LIBS layout2lib$i.so" - i=`expr $i + 1` -done -$CXXLINK -o layout2 $srcdir/layout.C layout2lib*.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vR} ./layout2 > layout2.log -$PRELINK ${PRELINK_OPTS--vR} ./layout2 >> layout2.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` layout2.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./layout2 || exit 3 -fi -readelf -a ./layout2 >> layout2.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./layout2 -comparelibs >> layout2.log 2>&1 || exit 5 diff --git a/testsuite/layoutlib.C b/testsuite/layoutlib.C deleted file mode 100644 index 8162515..0000000 --- a/testsuite/layoutlib.C +++ /dev/null @@ -1,10 +0,0 @@ -struct A - { - virtual int a(); - int b; - }; - -int A::a() -{ - return 10; -} diff --git a/testsuite/lib00.C b/testsuite/lib00.C deleted file mode 100644 index 8162515..0000000 --- a/testsuite/lib00.C +++ /dev/null @@ -1,10 +0,0 @@ -struct A - { - virtual int a(); - int b; - }; - -int A::a() -{ - return 10; -} diff --git a/testsuite/lib02.h b/testsuite/lib02.h deleted file mode 100644 index 1712ea5..0000000 --- a/testsuite/lib02.h +++ /dev/null @@ -1,11 +0,0 @@ -struct A - { - char a; - struct A *b; - int *c; - }; - -extern struct A foo; -extern int bar; -extern int f1 (void); -extern int f2 (void); diff --git a/testsuite/lib021.c b/testsuite/lib021.c deleted file mode 100644 index 23ea896..0000000 --- a/testsuite/lib021.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "lib02.h" - -int bar = 26; -int baz = 28; - -struct A foo = { 1, &foo, &bar }; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} diff --git a/testsuite/lib022.c b/testsuite/lib022.c deleted file mode 100644 index 33dada0..0000000 --- a/testsuite/lib022.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "lib02.h" - -int f1 (void) -{ - return 11; -} diff --git a/testsuite/lib031.c b/testsuite/lib031.c deleted file mode 100644 index 3551704..0000000 --- a/testsuite/lib031.c +++ /dev/null @@ -1,4 +0,0 @@ -int f1 (int dummy) -{ - return 1; -} diff --git a/testsuite/lib032.c b/testsuite/lib032.c deleted file mode 100644 index 68b3dbc..0000000 --- a/testsuite/lib032.c +++ /dev/null @@ -1,8 +0,0 @@ -extern int f1 (int dummy); - -int f2 (int add) -{ - if (add) - return f1 (0) + 26; - return f1 (0); -} diff --git a/testsuite/movelibs.sh b/testsuite/movelibs.sh deleted file mode 100755 index 010e0e7..0000000 --- a/testsuite/movelibs.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# This script copies needed C and C++ libraries into the test directory -echo 'int main() { }' > movelibs.C -$CXX -o movelibs movelibs.C -> syslib.list -> syslnk.list -for i in `RTLD_TRACE_PRELINKING=1 LD_WARN= $LDD ./movelibs \ - | awk '$1 !~ /^\.\/movelibs/ { print $3 } '`; do - k=`basename $i` - if [ -L $i ]; then - j=`ls -l $i | sed 's/^.* -> //'` - if echo $j | grep / >/dev/null 2>&1; then - cp -p $i . - echo $k >> syslib.list - else - cp -dp $i . - cp -p `dirname $i`/$j . - echo $j >> syslib.list - echo $k >> syslnk.list - fi - else - cp -p $i . - echo $k >> syslib.list - fi -done -rm -f movelibs.C movelibs -pwd > prelink.conf -for i in `cat syslib.list`; do - if readelf -WS $i 2>/dev/null | grep -q .gnu.prelink_undo; then - $PRELINK -u $i > /dev/null 2>&1 || exit 1 - fi - cp -p $i $i.orig -done -exit 77 diff --git a/testsuite/prelink.conf b/testsuite/prelink.conf deleted file mode 100644 index 544a3f5..0000000 --- a/testsuite/prelink.conf +++ /dev/null @@ -1 +0,0 @@ -/usr/src/prelink/testsuite diff --git a/testsuite/quick1.c b/testsuite/quick1.c deleted file mode 100644 index dc98441..0000000 --- a/testsuite/quick1.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -static struct A local = { 77, &local, &bar + 4 }; -extern int baz; -static char *bazp0 = (char *) &baz; -static char *bazp1 = ((char *) &baz) + 1; - -int main() -{ - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - local.c -= 4; - if (local.a != 77 || local.b != &local || local.c != &bar) - abort (); - if (bazp1 - bazp0 != 1) - abort (); - exit (0); -} diff --git a/testsuite/quick1.sh b/testsuite/quick1.sh deleted file mode 100755 index f3f80a8..0000000 --- a/testsuite/quick1.sh +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -check_one() { - cnt=0 - log=$1 - echo -n . >> quick1.log - text="$2" - shift 2 - while [ $# -gt 0 ]; do - grep -q "^$text .*$1" $log || exit 40 - cnt=$((++cnt)) - shift - done - [ `grep "^$text " $log | wc -l` = $cnt ] || exit 41 -} -check_log() { - log=$1 - echo -n "Checking $1 " >> quick1.log - check_one $log 'Checking executable' $CHECKE - check_one $log 'Checking shared library' $CHECKL - check_one $log 'Assuming prelinked' $ASSUME - check_one $log 'Prelinking' $PREL - echo >> quick1.log -} - -PRELINK=`echo $PRELINK \ - | sed -e 's, \./\(prelink\.\(cache\|conf\)\), quick1.tree/etc/\1,g' \ - -e 's,path=\.,path=quick1.tree/lib:quick1.tree/usr/lib,' \ - -e 's,linker=\./,linker=quick1.tree/lib/,'` -CCLINK=`echo $CCLINK \ - | sed -e 's,linker=\./,linker=quick1.tree/lib/,'` -rm -rf quick1.tree -rm -f quick1.log -mkdir -p quick1.tree/{lib,etc,usr/lib,usr/bin} -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib2.so $srcdir/reloc1lib2.c \ - -L quick1.tree/usr/lib -l1 -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib3.so $srcdir/quick1lib1.c -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib2.later.so \ - $srcdir/quick1lib2.c -L quick1.tree/usr/lib -l1 -l3 -echo 'int foo;' | $CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib4.so -xc - -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib5.so $srcdir/quick1lib3.c \ - -L quick1.tree/usr/lib -Wl,--rpath-link,quick1.tree/usr/lib -l2 -$CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib6.so $srcdir/quick1lib4.c \ - -L quick1.tree/usr/lib -Wl,--rpath-link,quick1.tree/usr/lib -l5 -echo 'int baz;' | $CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib7.so -xc - \ - -L quick1.tree/usr/lib -Wl,--rpath-link,quick1.tree/usr/lib -l6 -echo 'int baz;' | $CC -shared -O2 -fpic -o quick1.tree/usr/lib/lib7.later.so \ - -xc - -L quick1.tree/usr/lib -Wl,--rpath-link,quick1.tree/usr/lib -l2 -for lib in `cat syslib.list`; do - cp -p $lib.orig quick1.tree/lib/$lib - cp -p $lib.orig quick1.tree/lib/$lib.orig -done -for lib in `cat syslnk.list`; do - cp -dp $lib quick1.tree/lib -done -$CCLINK -o quick1.tree/usr/bin/bin1 $srcdir/reloc1.c \ - -Wl,--rpath-link,quick1.tree/usr/lib -L quick1.tree/usr/lib -l2 -echo 'int main () { extern int foo; return foo; }' \ - | $CCLINK -o quick1.tree/usr/bin/bin2 -xc - -xnone \ - -L quick1.tree/usr/lib -l4 -$CCLINK -o quick1.tree/usr/bin/bin3 $srcdir/reloc1.c \ - -Wl,--rpath-link,quick1.tree/usr/lib -L quick1.tree/usr/lib -l7 -$CCLINK -o quick1.tree/usr/bin/bin4 $srcdir/quick1.c \ - -Wl,--rpath-link,quick1.tree/usr/lib -L quick1.tree/usr/lib -l2 -$CCLINK -o quick1.tree/usr/bin/bin5 $srcdir/quick1.c \ - -Wl,--rpath-link,quick1.tree/usr/lib -L quick1.tree/usr/lib -l7 -echo 'int main () { return 0; }' \ - | $CCLINK -o quick1.tree/usr/bin/bin6 -xc - -xnone \ - -Wl,--rpath-link,quick1.tree/usr/lib -L quick1.tree/usr/lib -l6 -cat > quick1.tree/etc/prelink.conf <<EOF -quick1.tree/usr/bin -quick1.tree/lib -quick1.tree/usr/lib -EOF -LIBS="quick1.tree/usr/lib/lib1.so quick1.tree/usr/lib/lib2.so" -LIBS="$LIBS quick1.tree/usr/lib/lib3.so quick1.tree/usr/lib/lib4.so" -LIBS="$LIBS quick1.tree/usr/lib/lib5.so quick1.tree/usr/lib/lib6.so" -LIBS="$LIBS quick1.tree/usr/lib/lib7.so" -LIBS="$LIBS `sed 's|^|quick1.tree/lib/|' syslib.list`" -BINS="quick1.tree/usr/bin/bin1 quick1.tree/usr/bin/bin2" -BINS="$BINS quick1.tree/usr/bin/bin3 quick1.tree/usr/bin/bin4" -BINS="$BINS quick1.tree/usr/bin/bin5 quick1.tree/usr/bin/bin6" -savelibs -chmod 644 `ls $BINS | sed 's|$|.orig|'` -# Make sure prelinked binaries and libraries will have different ctimes -# than mtimes -sleep 3s -# lib2.later.so needs different timestamps than lib2.so for the tests below -touch quick1.tree/usr/lib/lib2.later.so -cp -p quick1.tree/usr/lib/lib2.later.so{,.orig} -# lib7.later.so needs different timestamps than lib7.so for the tests below -touch quick1.tree/usr/lib/lib7.later.so -cp -p quick1.tree/usr/lib/lib7.later.so{,.orig} -echo $PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick1.log -$PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick1.tree/etc/log1 2>&1 || exit 1 -cat quick1.tree/etc/log1 >> quick1.log -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick1.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick1.tree/etc/log2 2>&1 || exit 2 -cat quick1.tree/etc/log2 >> quick1.log -stat quick1.tree/usr/lib/lib2.so >> quick1.log -echo chmod 644 quick1.tree/usr/lib/lib2.so >> quick1.log -chmod 644 quick1.tree/usr/lib/lib2.so -sleep 3s -echo chmod 755 quick1.tree/usr/lib/lib2.so >> quick1.log -chmod 755 quick1.tree/usr/lib/lib2.so -stat quick1.tree/usr/lib/lib2.so >> quick1.log -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick1.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick1.tree/etc/log3 2>&1 || exit 3 -cat quick1.tree/etc/log3 >> quick1.log -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick1.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick1.tree/etc/log4 2>&1 || exit 4 -cat quick1.tree/etc/log4 >> quick1.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin1 || exit 5 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin2 || exit 6 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin3 || exit 7 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin4 || exit 8 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin5 || exit 9 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin6 || exit 10 -fi -readelf -a quick1.tree/usr/bin/bin1 >> quick1.log 2>&1 || exit 11 -readelf -a quick1.tree/usr/bin/bin3 >> quick1.log 2>&1 || exit 12 -readelf -a quick1.tree/usr/bin/bin4 >> quick1.log 2>&1 || exit 13 -readelf -a quick1.tree/usr/bin/bin5 >> quick1.log 2>&1 || exit 14 -readelf -a quick1.tree/usr/bin/bin6 >> quick1.log 2>&1 || exit 15 -BINS="quick1.tree/usr/bin/bin1 quick1.tree/usr/bin/bin3" -BINS="$BINS quick1.tree/usr/bin/bin4 quick1.tree/usr/bin/bin5" -BINS="$BINS quick1.tree/usr/bin/bin6" -LIBS="quick1.tree/usr/lib/lib2.so quick1.tree/usr/lib/lib7.so" -comparelibs >> quick1.log 2>&1 || exit 16 -for l in 2 7; do - mv -f quick1.tree/usr/lib/lib$l.so{,.old} - mv -f quick1.tree/usr/lib/lib$l.so{,.old}.orig - cp -p quick1.tree/usr/lib/lib$l{.later,}.so - cp -p quick1.tree/usr/lib/lib$l{.later,}.so.orig -done -for b in 1 3 4 5 6; do - cp -p quick1.tree/usr/bin/bin$b{,.old} - chmod 644 quick1.tree/usr/bin/bin$b.old -done -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick1.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick1.tree/etc/log5 2>&1 || exit 17 -cat quick1.tree/etc/log5 >> quick1.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin1 || exit 18 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin2 || exit 19 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin3 || exit 20 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin4 || exit 21 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin5 || exit 22 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick1.tree/lib:quick1.tree/usr/lib quick1.tree/usr/bin/bin6 || exit 23 -fi -readelf -a quick1.tree/usr/bin/bin1 >> quick1.log 2>&1 || exit 24 -readelf -a quick1.tree/usr/bin/bin3 >> quick1.log 2>&1 || exit 25 -readelf -a quick1.tree/usr/bin/bin4 >> quick1.log 2>&1 || exit 26 -readelf -a quick1.tree/usr/bin/bin5 >> quick1.log 2>&1 || exit 27 -readelf -a quick1.tree/usr/bin/bin6 >> quick1.log 2>&1 || exit 28 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` quick1.log && exit 29 -L=quick1.tree/usr/lib/lib -L1=${L}1.so; L2=${L}2.so; L3=${L}3.so; L4=${L}4.so -L5=${L}5.so; L6=${L}6.so; L7=${L}7.so -B=quick1.tree/usr/bin/bin -B1=${B}1; B2=${B}2; B3=${B}3; B4=${B}4; B5=${B}5; B6=${B}6 -SL=`grep -f syslib.list quick1.tree/etc/log1 \ - | sed -n '/^Prelinking/s|^.*\(quick1.tree/lib/\)|\1|p'` -CHECKE="$B1 $B2 $B3 $B4 $B5 $B6"; CHECKL="$SL $L1 $L2 $L4 $L5 $L6 $L7" PREL="$CHECKE $CHECKL"; ASSUME="" -check_log quick1.tree/etc/log1 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $B2 $B3 $B4 $B5 $B6 $SL $L1 $L2 $L4 $L5 $L6 $L7" -check_log quick1.tree/etc/log2 -CHECKE="$B1 $B3 $B4 $B5 $B6"; CHECKL="$SL $L1 $L2 $L5 $L6 $L7"; PREL=""; ASSUME="$B2 $L4" -check_log quick1.tree/etc/log3 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $B2 $B3 $B4 $B5 $B6 $SL $L1 $L2 $L4 $L5 $L6 $L7" -check_log quick1.tree/etc/log4 -CHECKE="$B1 $B3 $B4 $B5 $B6"; CHECKL="$SL $L1 $L2 $L3 $L5 $L7 $L7"; PREL="$B1 $B3 $B4 $B5 $B6 $L2 $L3 $L5 $L6 $L7"; ASSUME="$B2 $L4" -check_log quick1.tree/etc/log5 -BINS="$B1 $B2 $B3 $B4 $B5 $B6" -LIBS="$SL $L1 $L2 $L3 $L4 $L5 $L6 $L7 $L2.old" -comparelibs >> quick1.log 2>&1 || exit 30 -for i in $BINS $SL $L1 $L2 $L3 $L4 $L5 $L6 $L7; do - cp -p $i $i.prelinked -done -for i in $BINS; do - chmod 644 $i.prelinked -done -echo $PRELINK -uavvvvvv >> quick1.log -$PRELINK -uavvvvvv >> quick1.log 2>&1 || exit 31 -for i in $BINS $SL $L1 $L2 $L3 $L4 $L5 $L6 $L7; do - cmp -s $i.orig $i || exit 32 - mv -f $i.prelinked $i -done -chmod 755 $BINS -exit 0 diff --git a/testsuite/quick1lib1.c b/testsuite/quick1lib1.c deleted file mode 100644 index 41767ce..0000000 --- a/testsuite/quick1lib1.c +++ /dev/null @@ -1,9 +0,0 @@ -int q1 (void) -{ - return q2 () + 1; -} - -int q2 (void) -{ - return 77; -} diff --git a/testsuite/quick1lib2.c b/testsuite/quick1lib2.c deleted file mode 100644 index b545086..0000000 --- a/testsuite/quick1lib2.c +++ /dev/null @@ -1,11 +0,0 @@ -extern int q1 (void); - -int f1 (void) -{ - return q1 () + 1; -} - -int q2 (void) -{ - return 9; -} diff --git a/testsuite/quick1lib3.c b/testsuite/quick1lib3.c deleted file mode 100644 index 06760a3..0000000 --- a/testsuite/quick1lib3.c +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef D1 -#define D1(n) int qvar##n; int *qpvar##n = &qvar##n; -#endif -#define D2(n) D1(n##0) D1(n##1) D1(n##2) D1(n##3) D1(n##4) -#define D3(n) D2(n##0) D2(n##1) D2(n##2) D2(n##3) D2(n##4) -#define D4(n) D3(n##0) D3(n##1) D3(n##2) D3(n##3) D3(n##4) -D4(0) D4(1) diff --git a/testsuite/quick1lib4.c b/testsuite/quick1lib4.c deleted file mode 100644 index 53e23d7..0000000 --- a/testsuite/quick1lib4.c +++ /dev/null @@ -1,2 +0,0 @@ -#define D1(n) int qvar##n; -#include "quick1lib3.c" diff --git a/testsuite/quick2.sh b/testsuite/quick2.sh deleted file mode 100755 index 87138ae..0000000 --- a/testsuite/quick2.sh +++ /dev/null @@ -1,288 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -check_one() { - cnt=0 - log=$1 - echo -n . >> quick2.log - text="$2" - shift 2 - while [ $# -gt 0 ]; do - grep -q "^$text .*$1" $log || exit 40 - cnt=$((++cnt)) - shift - done - [ `grep "^$text " $log | wc -l` = $cnt ] || exit 41 -} -check_log() { - log=$1 - echo -n "Checking $1 " >> quick2.log - check_one $log 'Checking executable' $CHECKE - check_one $log 'Checking shared library' $CHECKL - check_one $log 'Assuming prelinked' $ASSUME - check_one $log 'Prelinking' $PREL - check_one $log 'Assuming non-prelinkable' $UNPREL - echo >> quick2.log -} - -PRELINK=`echo $PRELINK \ - | sed -e 's, \./\(prelink\.\(cache\|conf\)\), quick2.tree/etc/\1,g' \ - -e 's,path=\.,path=quick2.tree/lib:quick2.tree/usr/lib,' \ - -e 's,linker=\./,linker=quick2.tree/lib/,'` -CCLINK=`echo $CCLINK \ - | sed -e 's,linker=\./,linker=quick2.tree/lib/,'` -rm -rf quick2.tree -rm -f quick2.log -mkdir -p quick2.tree/{lib,etc,usr/lib,usr/bin} -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib2.so $srcdir/reloc1lib2.c \ - -L quick2.tree/usr/lib -l1 -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib3.so $srcdir/quick1lib1.c -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib2.later.so \ - $srcdir/quick1lib2.c -L quick2.tree/usr/lib -l1 -l3 -echo 'int foo;' | $CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib4.so -xc - -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib5.so $srcdir/quick1lib3.c \ - -L quick2.tree/usr/lib -Wl,--rpath-link,quick2.tree/usr/lib -l2 -$CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib6.so $srcdir/quick1lib4.c \ - -L quick2.tree/usr/lib -Wl,--rpath-link,quick2.tree/usr/lib -l5 -echo 'int baz;' | $CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib7.so -xc - \ - -L quick2.tree/usr/lib -Wl,--rpath-link,quick2.tree/usr/lib -l6 \ - -Wl,--spare-dynamic-tags=0 -echo 'int baz;' | $CC -shared -O2 -fpic -o quick2.tree/usr/lib/lib7.later.so \ - -xc - -L quick2.tree/usr/lib -Wl,--rpath-link,quick2.tree/usr/lib -l2 -for lib in `cat syslib.list`; do - cp -p $lib.orig quick2.tree/lib/$lib - cp -p $lib.orig quick2.tree/lib/$lib.orig -done -for lib in `cat syslnk.list`; do - cp -dp $lib quick2.tree/lib -done -$CCLINK -o quick2.tree/usr/bin/bin1 $srcdir/reloc1.c \ - -Wl,--rpath-link,quick2.tree/usr/lib -L quick2.tree/usr/lib -l2 -echo 'int main () { extern int foo; return foo; }' \ - | $CCLINK -o quick2.tree/usr/bin/bin2 -xc - -xnone \ - -L quick2.tree/usr/lib -l4 -$CCLINK -o quick2.tree/usr/bin/bin3 $srcdir/reloc1.c \ - -Wl,--rpath-link,quick2.tree/usr/lib -L quick2.tree/usr/lib -l7 -$CCLINK -o quick2.tree/usr/bin/bin4 $srcdir/quick1.c \ - -Wl,--rpath-link,quick2.tree/usr/lib -L quick2.tree/usr/lib -l2 -$CCLINK -o quick2.tree/usr/bin/bin5 $srcdir/quick1.c \ - -Wl,--rpath-link,quick2.tree/usr/lib -L quick2.tree/usr/lib -l7 -echo 'int main () { return 0; }' \ - | $CCLINK -o quick2.tree/usr/bin/bin6 -xc - -xnone \ - -Wl,--rpath-link,quick2.tree/usr/lib -L quick2.tree/usr/lib -l6 -echo 'int main () { return 0; }' \ - | $CCLINK -o quick2.tree/usr/bin/bin7 -static -xc - -xnone -cat > quick2.tree/usr/bin/bin8 <<EOF -#!/bin/sh -echo This is a sample shell script -echo used to test whether even shell scripts -echo and other executable non-ELF files -echo are cached as non-prelinkable -echo in /etc/prelink.cache and thus do not -echo need to be reread every time prelink -aq -echo is run. -exit 0 -EOF -chmod 755 quick2.tree/usr/bin/bin8 -cat > quick2.tree/usr/bin/bin9.sh <<EOF -#!/bin/sh -echo This is another sample shell script, -echo this time with a .sh extension. -echo This does not need to be even cached -echo as non-prelinkable, provided -b *.sh -echo is present in prelink.conf. -exit 0 -EOF -chmod 755 quick2.tree/usr/bin/bin9.sh -cat > quick2.tree/usr/bin/bin10.py <<EOF -#! /usr/bin/env python -print "This is a sample python script." -print "This does not need to be even cached" -print "as non-prelinkable, provided -b *.py" -print "is present in prelink.conf." -EOF -chmod 755 quick2.tree/usr/bin/bin10.py -cat > quick2.tree/usr/bin/bin11.script <<EOF -#!/bin/sh -echo This is another sample shell script, -echo this time matching b*11*r[hijk]*t shell pattern. -echo This does not need to be even cached -echo as non-prelinkable, provided -b b*11*r[hijk]*t -echo is present in prelink.conf. -exit 0 -EOF -chmod 755 quick2.tree/usr/bin/bin11.script -if [ `$CC -dumpmachine | sed "s/-.*-.*-.*//"` = "arm" ]; then - cat > quick2.tree/usr/bin/bin12 << EOF -#!/bin/sh -echo -pie -fPIE is not supported on our ARM architectures -echo this script will serve to disable that part of the test. -exit 0 -EOF -chmod 0755 quick2.tree/usr/bin/bin12 -else - echo 'int main () { return 0; }' \ - | $CCLINK -o quick2.tree/usr/bin/bin12 -pie -fPIE -xc - -xnone -fi -cat > quick2.tree/etc/prelink.conf <<EOF --b *.sh --b *.py --b b*11*r[hijk]*t -quick2.tree/usr/bin -quick2.tree/lib -quick2.tree/usr/lib -EOF -LIBS="quick2.tree/usr/lib/lib1.so quick2.tree/usr/lib/lib2.so" -LIBS="$LIBS quick2.tree/usr/lib/lib3.so quick2.tree/usr/lib/lib4.so" -LIBS="$LIBS quick2.tree/usr/lib/lib5.so quick2.tree/usr/lib/lib6.so" -LIBS="$LIBS quick2.tree/usr/lib/lib7.so" -LIBS="$LIBS `sed 's|^|quick2.tree/lib/|' syslib.list`" -BINS="quick2.tree/usr/bin/bin1 quick2.tree/usr/bin/bin2" -BINS="$BINS quick2.tree/usr/bin/bin3 quick2.tree/usr/bin/bin4" -BINS="$BINS quick2.tree/usr/bin/bin5 quick2.tree/usr/bin/bin6" -BINS="$BINS quick2.tree/usr/bin/bin7 quick2.tree/usr/bin/bin8" -savelibs -chmod 644 `ls $BINS | sed 's|$|.orig|'` -# Make sure prelinked binaries and libraries will have different ctimes -# than mtimes -sleep 3s -# lib2.later.so needs different timestamps than lib2.so for the tests below -touch quick2.tree/usr/lib/lib2.later.so -cp -p quick2.tree/usr/lib/lib2.later.so{,.orig} -# lib7.later.so needs different timestamps than lib7.so for the tests below -touch quick2.tree/usr/lib/lib7.later.so -cp -p quick2.tree/usr/lib/lib7.later.so{,.orig} -echo $PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick2.log -$PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick2.tree/etc/log1 2>&1 || exit 1 -cat quick2.tree/etc/log1 >> quick2.log -grep -q 'lib7.so: Not enough room to add .dynamic entry' \ - quick2.tree/etc/log1 || exit 60 -grep -q 'Could not prelink .*bin3 because its dependency .*lib7.so could not be prelinked' \ - quick2.tree/etc/log1 || exit 61 -grep -q 'Could not prelink .*bin5 because its dependency .*lib7.so could not be prelinked' \ - quick2.tree/etc/log1 || exit 62 -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick2.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick2.tree/etc/log2 2>&1 || exit 2 -cat quick2.tree/etc/log2 >> quick2.log -stat quick2.tree/usr/lib/lib2.so >> quick2.log -echo chmod 644 quick2.tree/usr/lib/lib2.so >> quick2.log -chmod 644 quick2.tree/usr/lib/lib2.so -sleep 3s -echo chmod 755 quick2.tree/usr/lib/lib2.so >> quick2.log -chmod 755 quick2.tree/usr/lib/lib2.so -stat quick2.tree/usr/lib/lib2.so >> quick2.log -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick2.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick2.tree/etc/log3 2>&1 || exit 3 -cat quick2.tree/etc/log3 >> quick2.log -grep -q 'lib7.so: Not enough room to add .dynamic entry' \ - quick2.tree/etc/log3 || exit 63 -grep -q 'Could not prelink .*bin3 because its dependency .*lib7.so could not be prelinked' \ - quick2.tree/etc/log3 || exit 64 -grep -q 'Could not prelink .*bin5 because its dependency .*lib7.so could not be prelinked' \ - quick2.tree/etc/log3 || exit 65 -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick2.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick2.tree/etc/log4 2>&1 || exit 4 -cat quick2.tree/etc/log4 >> quick2.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin1 || exit 5 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin2 || exit 6 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin3 || exit 7 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin4 || exit 8 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin5 || exit 9 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin6 || exit 10 -fi -readelf -a quick2.tree/usr/bin/bin1 >> quick2.log 2>&1 || exit 11 -readelf -a quick2.tree/usr/bin/bin3 >> quick2.log 2>&1 || exit 12 -readelf -a quick2.tree/usr/bin/bin4 >> quick2.log 2>&1 || exit 13 -readelf -a quick2.tree/usr/bin/bin5 >> quick2.log 2>&1 || exit 14 -readelf -a quick2.tree/usr/bin/bin6 >> quick2.log 2>&1 || exit 15 -BINS="quick2.tree/usr/bin/bin1 quick2.tree/usr/bin/bin4" -BINS="$BINS quick2.tree/usr/bin/bin6" -LIBS="quick2.tree/usr/lib/lib2.so" -comparelibs >> quick2.log 2>&1 || exit 16 -for l in 2 7; do - mv -f quick2.tree/usr/lib/lib$l.so{,.old} - mv -f quick2.tree/usr/lib/lib$l.so{,.old}.orig - cp -p quick2.tree/usr/lib/lib$l{.later,}.so - cp -p quick2.tree/usr/lib/lib$l{.later,}.so.orig -done -for b in 1 3 4 5 6; do - cp -p quick2.tree/usr/bin/bin$b{,.old} - chmod 644 quick2.tree/usr/bin/bin$b.old -done -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick2.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick2.tree/etc/log5 2>&1 || exit 17 -cat quick2.tree/etc/log5 >> quick2.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin1 || exit 18 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin2 || exit 19 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin3 || exit 20 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin4 || exit 21 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin5 || exit 22 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick2.tree/lib:quick2.tree/usr/lib quick2.tree/usr/bin/bin6 || exit 23 -fi -readelf -a quick2.tree/usr/bin/bin1 >> quick2.log 2>&1 || exit 24 -readelf -a quick2.tree/usr/bin/bin3 >> quick2.log 2>&1 || exit 25 -readelf -a quick2.tree/usr/bin/bin4 >> quick2.log 2>&1 || exit 26 -readelf -a quick2.tree/usr/bin/bin5 >> quick2.log 2>&1 || exit 27 -readelf -a quick2.tree/usr/bin/bin6 >> quick2.log 2>&1 || exit 28 -# In both etc/log1 and etc/log3 there should be one -# "Not enough room" and two "Could not prelink" warnings. -[ $(grep ^`echo $PRELINK | sed 's/ .*$/: /'` quick2.log | wc -l) -eq 6 ] || exit 29 -L=quick2.tree/usr/lib/lib -L1=${L}1.so; L2=${L}2.so; L3=${L}3.so; L4=${L}4.so -L5=${L}5.so; L6=${L}6.so; L7=${L}7.so -B=quick2.tree/usr/bin/bin -B1=${B}1; B2=${B}2; B3=${B}3; B4=${B}4; B5=${B}5 -B6=${B}6; B7=${B}7; B8=${B}8; B12=${B}12 -SL=`grep -f syslib.list quick2.tree/etc/log1 \ - | sed -n '/^Prelinking/s|^.*\(quick2.tree/lib/\)|\1|p'` -CHECK_E="$B1 $B2 $B4 $B6"; CHECKE="$CHECK_E $B3 $B5 $B7" -CHECKL="$SL $L1 $L2 $L4 $L5 $L6 $L7"; PREL="$CHECK_E $CHECKL"; ASSUME=""; UNPREL="" -check_log quick2.tree/etc/log1 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $B2 $B4 $B6 $SL $L1 $L2 $L4 $L5 $L6" -UNPREL="$B3 $B5 $B7 $B8 $B12 $L7" -check_log quick2.tree/etc/log2 -CHECKE="$B1 $B3 $B4 $B5 $B6"; CHECKL="$SL $L1 $L2 $L5 $L6 $L7"; PREL="$L7"; ASSUME="$B2 $L4"; UNPREL="$B7 $B8 $B12" -check_log quick2.tree/etc/log3 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $B2 $B4 $B6 $SL $L1 $L2 $L4 $L5 $L6"; UNPREL="$B3 $B5 $B7 $B8 $B12 $L7" -check_log quick2.tree/etc/log4 -CHECKE="$B1 $B3 $B4 $B5 $B6"; CHECKL="$SL $L1 $L2 $L3 $L5 $L7 $L7"; PREL="$B1 $B3 $B4 $B5 $B6 $L2 $L3 $L5 $L6 $L7"; ASSUME="$B2 $L4"; UNPREL="$B7 $B8 $B12" -check_log quick2.tree/etc/log5 -BINS="$B1 $B2 $B3 $B4 $B5 $B6" -LIBS="$SL $L1 $L2 $L3 $L4 $L5 $L6 $L7 $L2.old" -comparelibs >> quick2.log 2>&1 || exit 30 -for i in $BINS $SL $L1 $L2 $L3 $L4 $L5 $L6 $L7; do - cp -p $i $i.prelinked -done -for i in $BINS; do - chmod 644 $i.prelinked -done -echo $PRELINK -uavvvvvv >> quick2.log -$PRELINK -uavvvvvv >> quick2.log 2>&1 || exit 31 -for i in $BINS $SL $L1 $L2 $L3 $L4 $L5 $L6 $L7; do - cmp -s $i.orig $i || exit 32 - mv -f $i.prelinked $i -done -chmod 755 $BINS -exit 0 diff --git a/testsuite/quick3.sh b/testsuite/quick3.sh deleted file mode 100755 index 0562e52..0000000 --- a/testsuite/quick3.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -check_one() { - cnt=0 - log=$1 - echo -n . >> quick3.log - text="$2" - shift 2 - while [ $# -gt 0 ]; do - grep -q "^$text .*$1" $log || exit 40 - cnt=$((++cnt)) - shift - done - [ `grep "^$text " $log | wc -l` = $cnt ] || exit 41 -} -check_log() { - log=$1 - echo -n "Checking $1 " >> quick3.log - check_one $log 'Checking executable' $CHECKE - check_one $log 'Checking shared library' $CHECKL - check_one $log 'Assuming prelinked' $ASSUME - check_one $log 'Prelinking' $PREL - echo >> quick3.log -} - -PRELINK=`echo $PRELINK \ - | sed -e 's, \./\(prelink\.\(cache\|conf\)\), quick3.tree/etc/\1,g' \ - -e 's,path=\.,path=quick3.tree/lib:quick3.tree/usr/lib,' \ - -e 's,linker=\./,linker=quick3.tree/lib/,'` -CCLINK=`echo $CCLINK \ - | sed -e 's,linker=\./,linker=quick3.tree/lib/,'` -rm -rf quick3.tree -rm -f quick3.log -mkdir -p quick3.tree/{lib,etc,usr/lib,usr/bin} -$CC -shared -O2 -fpic -o quick3.tree/usr/lib/lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o quick3.tree/usr/lib/lib2.so $srcdir/reloc1lib2.c \ - -L quick3.tree/usr/lib -l1 -Wl,-soname,lib2.so -for lib in `cat syslib.list`; do - cp -p $lib.orig quick3.tree/lib/$lib - cp -p $lib.orig quick3.tree/lib/$lib.orig -done -for lib in `cat syslnk.list`; do - cp -dp $lib quick3.tree/lib -done -$CCLINK -o quick3.tree/usr/bin/bin1 $srcdir/reloc1.c \ - -Wl,--rpath-link,quick3.tree/usr/lib -L quick3.tree/usr/lib -l2 -cat > quick3.tree/etc/prelink.conf <<EOF -quick3.tree/usr/bin -quick3.tree/lib -quick3.tree/usr/lib -EOF -LIBS="quick3.tree/usr/lib/lib1.so quick3.tree/usr/lib/lib2.so" -LIBS="$LIBS `sed 's|^|quick3.tree/lib/|' syslib.list`" -BINS="quick3.tree/usr/bin/bin1" -savelibs -chmod 644 `ls $BINS | sed 's|$|.orig|'` -# Make sure prelinked binaries and libraries will have different ctimes -# than mtimes -sleep 3s -echo $PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick3.log -$PRELINK ${PRELINK_OPTS--vm} -avvvvv > quick3.tree/etc/log1 2>&1 || exit 1 -cat quick3.tree/etc/log1 >> quick3.log -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick3.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick3.tree/etc/log2 2>&1 || exit 2 -cat quick3.tree/etc/log2 >> quick3.log -$CC -shared -O2 -fpic -o quick3.tree/usr/lib/lib2.so.0 $srcdir/reloc1lib2.c \ - -L quick3.tree/usr/lib -l1 -Wl,-soname,lib2.so -rm -f quick3.tree/usr/lib/lib2.so{,.orig} -cp -p quick3.tree/usr/lib/lib2.so.0{,.orig} -ln -sf lib2.so.0 quick3.tree/usr/lib/lib2.so -sleep 3s -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick3.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick3.tree/etc/log3 2>&1 || exit 3 -cat quick3.tree/etc/log3 >> quick3.log -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=quick3.tree/lib:quick3.tree/usr/lib quick3.tree/usr/bin/bin1 || exit 4 -fi -LIBS="quick3.tree/usr/lib/lib1.so quick3.tree/usr/lib/lib2.so.0" -echo $PRELINK ${PRELINK_OPTS--vm} -aqvvvvv >> quick3.log -$PRELINK ${PRELINK_OPTS--vm} -aqvvvvv > quick3.tree/etc/log4 2>&1 || exit 5 -cat quick3.tree/etc/log4 >> quick3.log -comparelibs >> quick3.log 2>&1 || exit 6 -[ -L quick3.tree/usr/lib/lib2.so ] || exit 7 -L=quick3.tree/usr/lib/lib -L1=${L}1.so; L2=${L}2.so; L3=${L}2.so.0 -B1=quick3.tree/usr/bin/bin1 -SL=`grep -f syslib.list quick3.tree/etc/log1 \ - | sed -n '/^Prelinking/s|^.*\(quick3.tree/lib/\)|\1|p'` -CHECKE="$B1"; CHECKL="$SL $L1 $L2" PREL="$CHECKE $CHECKL"; ASSUME="" -check_log quick3.tree/etc/log1 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $L1 $L2 $SL" -check_log quick3.tree/etc/log2 -CHECKE="$B1"; CHECKL="$SL $L1 $L3"; PREL="$B1 $L3"; ASSUME="" -check_log quick3.tree/etc/log3 -CHECKE=""; CHECKL=""; PREL=""; ASSUME="$B1 $L1 $L3 $SL" -check_log quick3.tree/etc/log4 -for i in $B1 $SL $L1 $L3; do - cp -p $i $i.prelinked -done -for i in $B1; do - chmod 644 $i.prelinked -done -echo $PRELINK -uavvvvvv >> quick3.log -$PRELINK -uavvvvvv >> quick3.log 2>&1 || exit 31 -for i in $B1 $SL $L1 $L3; do - cmp -s $i.orig $i || exit 32 - mv -f $i.prelinked $i -done -chmod 755 $BINS -exit 0 diff --git a/testsuite/reloc1.c b/testsuite/reloc1.c deleted file mode 100644 index e679bed..0000000 --- a/testsuite/reloc1.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -static struct A local = { 77, &local, &bar + 4 }; - -int main() -{ - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - local.c -= 4; - if (local.a != 77 || local.b != &local || local.c != &bar) - abort (); - exit (0); -} diff --git a/testsuite/reloc1.h b/testsuite/reloc1.h deleted file mode 100644 index 093dd3a..0000000 --- a/testsuite/reloc1.h +++ /dev/null @@ -1,12 +0,0 @@ -struct A - { - char a; - struct A *b; - int *c; - }; - -extern struct A foo; -extern int bar; -extern int f1 (void); -extern int f2 (void); -extern struct A *f3 (void); diff --git a/testsuite/reloc1.sh b/testsuite/reloc1.sh deleted file mode 100755 index ade05c9..0000000 --- a/testsuite/reloc1.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc1 reloc1lib*.so reloc1.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o reloc1lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o reloc1lib2.so $srcdir/reloc1lib2.c reloc1lib1.so -BINS="reloc1" -LIBS="reloc1lib1.so reloc1lib2.so" -$CCLINK -o reloc1 $srcdir/reloc1.c -Wl,--rpath-link,. reloc1lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc1 > reloc1.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc1 >> reloc1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc1.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc1 || exit 3 -fi -readelf -a ./reloc1 >> reloc1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc1 -comparelibs >> reloc1.log 2>&1 || exit 5 diff --git a/testsuite/reloc10.c b/testsuite/reloc10.c deleted file mode 100644 index 5720d33..0000000 --- a/testsuite/reloc10.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <stdlib.h> - -extern int bar, baz, *barp, *bazp, dummy; -extern int f1 (void), f2 (void), f3 (void), f4 (void); -/* Try to use COPY reloc for bar and get away without COPY - reloc for baz. Similarly for barp and bazp. */ -int *bazp2 = &baz; -int **bazp3 = &bazp; - -int main (void) -{ - if (f1 () != 11 || f2 () != 12 || bar != 36 || *bazp2 != 38) - abort (); - if (f3 () != 14 || f4 () != 16 || *barp != 36 || **bazp3 != 38) - abort (); - if (dummy != 24) - abort (); - exit (0); -} diff --git a/testsuite/reloc10.sh b/testsuite/reloc10.sh deleted file mode 100755 index 66dd438..0000000 --- a/testsuite/reloc10.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc10 reloc10lib*.so reloc10.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o reloc10lib1.so $srcdir/reloc10lib1.c -$CC -shared -O2 -nostdlib -fpic -o reloc10lib2.so $srcdir/reloc10lib2.c reloc10lib1.so -$CC -shared -O2 -nostdlib -fpic -o reloc10lib3.so $srcdir/reloc10lib3.c reloc10lib1.so -$CC -shared -O2 -nostdlib -fpic -o reloc10lib4.so $srcdir/reloc10lib4.c reloc10lib1.so -$CC -shared -O2 -fpic -o reloc10lib5.so $srcdir/reloc10lib5.c reloc10lib2.so reloc10lib3.so reloc10lib4.so -BINS="reloc10" -LIBS="reloc10lib1.so reloc10lib2.so reloc10lib3.so reloc10lib4.so reloc10lib5.so" -$CCLINK -o reloc10 $srcdir/reloc10.c -Wl,--rpath-link,. reloc10lib5.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc10 > reloc10.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc10 >> reloc10.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc10.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc10 || exit 3 -fi -readelf -a ./reloc10 >> reloc10.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc10 -comparelibs >> reloc10.log 2>&1 || exit 5 diff --git a/testsuite/reloc10lib1.c b/testsuite/reloc10lib1.c deleted file mode 100644 index 2ee06d2..0000000 --- a/testsuite/reloc10lib1.c +++ /dev/null @@ -1,12 +0,0 @@ -int bar = 26; -int baz = 28; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return 2; -} diff --git a/testsuite/reloc10lib2.c b/testsuite/reloc10lib2.c deleted file mode 100644 index fc327fc..0000000 --- a/testsuite/reloc10lib2.c +++ /dev/null @@ -1,11 +0,0 @@ -extern int bar, baz, f1 (void), f2 (void); - -int f3 (void) -{ - return f1 () + 3; -} - -int f4 (void) -{ - return f2 () + 4; -} diff --git a/testsuite/reloc10lib3.c b/testsuite/reloc10lib3.c deleted file mode 100644 index 2ec80ab..0000000 --- a/testsuite/reloc10lib3.c +++ /dev/null @@ -1,3 +0,0 @@ -extern int bar, baz, f1 (void), f2 (void); - -int *barp = &bar, *bazp = &baz; diff --git a/testsuite/reloc10lib4.c b/testsuite/reloc10lib4.c deleted file mode 100644 index 4376249..0000000 --- a/testsuite/reloc10lib4.c +++ /dev/null @@ -1 +0,0 @@ -int dummy = 24; diff --git a/testsuite/reloc10lib5.c b/testsuite/reloc10lib5.c deleted file mode 100644 index 19fd925..0000000 --- a/testsuite/reloc10lib5.c +++ /dev/null @@ -1,12 +0,0 @@ -int bar = 36; -int baz = 38; - -int f1 (void) -{ - return 11; -} - -int f2 (void) -{ - return 12; -} diff --git a/testsuite/reloc11.c b/testsuite/reloc11.c deleted file mode 100644 index 923aff4..0000000 --- a/testsuite/reloc11.c +++ /dev/null @@ -1,16 +0,0 @@ -#include <stdlib.h> - -extern int dummy; -extern int var, var2, varp1 (), var2m1 (), bar (); -int *pvar = &var, *pvar2 = &var2; - -int main (void) -{ - if (dummy != 24) - abort (); - if (*pvar != 32 || *pvar2 != 16) - abort (); - if (varp1 () != 33 || var2m1 () != 6 || bar () != 40) - abort (); - exit (0); -} diff --git a/testsuite/reloc11.sh b/testsuite/reloc11.sh deleted file mode 100755 index ab0cbee..0000000 --- a/testsuite/reloc11.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc11 reloc11lib*.so reloc11.log -rm -f prelink.cache -$CC -shared -O2 -nostdlib -fpic -o reloc11lib1.so $srcdir/reloc10lib4.c -$CC -shared -O2 -nostdlib -fpic -o reloc11lib2.so $srcdir/reloc11lib2.c -$CC -shared -O2 -nostdlib -fpic -o reloc11lib3.so $srcdir/reloc11lib3.c reloc11lib2.so -BINS="reloc11" -LIBS="reloc11lib1.so reloc11lib2.so reloc11lib3.so" -$CCLINK -o reloc11 $srcdir/reloc11.c -Wl,--rpath-link,. reloc11lib1.so reloc11lib3.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc11 > reloc11.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc11 >> reloc11.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc11.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc11 || exit 3 -fi -readelf -a ./reloc11 >> reloc11.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc11 -comparelibs >> reloc11.log 2>&1 || exit 5 diff --git a/testsuite/reloc11lib2.c b/testsuite/reloc11lib2.c deleted file mode 100644 index 6a2191c..0000000 --- a/testsuite/reloc11lib2.c +++ /dev/null @@ -1,16 +0,0 @@ -int var = 24, var2 = 16; - -int varp1 (void) -{ - return var + 1; -} - -int var2m1 (void) -{ - return var2 - 1; -} - -int bar (void) -{ - return varp1 () + var2m1 () + 1; -} diff --git a/testsuite/reloc11lib3.c b/testsuite/reloc11lib3.c deleted file mode 100644 index 0cea7f3..0000000 --- a/testsuite/reloc11lib3.c +++ /dev/null @@ -1,7 +0,0 @@ -int var = 32; -extern int var2; - -int var2m1 (void) -{ - return var2 - 10; -} diff --git a/testsuite/reloc1lib1.c b/testsuite/reloc1lib1.c deleted file mode 100644 index 8aa0628..0000000 --- a/testsuite/reloc1lib1.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "reloc1.h" - -int bar = 26; -int baz = 28; - -struct A foo = { 1, &foo, &bar }; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} diff --git a/testsuite/reloc1lib2.c b/testsuite/reloc1lib2.c deleted file mode 100644 index a338c1d..0000000 --- a/testsuite/reloc1lib2.c +++ /dev/null @@ -1,6 +0,0 @@ -#include "reloc1.h" - -int f1 (void) -{ - return 11; -} diff --git a/testsuite/reloc2.c b/testsuite/reloc2.c deleted file mode 100644 index 6c7fed5..0000000 --- a/testsuite/reloc2.c +++ /dev/null @@ -1,13 +0,0 @@ -#include <stdlib.h> - -extern int f2 (int add); -extern void * f3 (void); - -int main() -{ - if (f2 (1) != 27 || f2 (0) != 1) - abort (); - if (f3 () != (void *) f3) - abort (); - exit (0); -} diff --git a/testsuite/reloc2.sh b/testsuite/reloc2.sh deleted file mode 100755 index 6560879..0000000 --- a/testsuite/reloc2.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -SHFLAGS= -case "`uname -m`" in - ia64|ppc*|x86_64) SHFLAGS=-fpic;; # Does not support non-pic shared libs - s390*) if file reloc1lib1.so | grep -q 64-bit; then SHFLAGS=-fpic; fi;; -esac -rm -f reloc2 reloc2lib*.so reloc2.log -$CC -shared $SHFLAGS -O2 -o reloc2lib1.so $srcdir/reloc2lib1.c -$CC -shared $SHFLAGS -O2 -o reloc2lib2.so $srcdir/reloc2lib2.c \ - reloc2lib1.so 2>/dev/null -BINS="reloc2" -LIBS="reloc2lib1.so reloc2lib2.so" -$CCLINK -o reloc2 $srcdir/reloc2.c -Wl,--rpath-link,. reloc2lib2.so -$STRIP -R .comment $BINS $LIBS -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc2 > reloc2.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc2 >> reloc2.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc2.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc2 || exit 3 -fi -readelf -a ./reloc2 >> reloc2.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc2 -comparelibs >> reloc2.log 2>&1 || exit 5 diff --git a/testsuite/reloc2lib1.c b/testsuite/reloc2lib1.c deleted file mode 100644 index 3551704..0000000 --- a/testsuite/reloc2lib1.c +++ /dev/null @@ -1,4 +0,0 @@ -int f1 (int dummy) -{ - return 1; -} diff --git a/testsuite/reloc2lib2.c b/testsuite/reloc2lib2.c deleted file mode 100644 index 094daad..0000000 --- a/testsuite/reloc2lib2.c +++ /dev/null @@ -1,15 +0,0 @@ -extern int f1 (int dummy); - -int f2 (int add) -{ - if (add) - return f1 (0) + 26; - return f1 (0); -} - -/* Make sure conflict in f3 is not against read-only segment. */ -asm (".section trampoline, \"awx\"; .previous"); -void * __attribute__((section ("trampoline"))) f3 (void) -{ - return (void *) f3; -} diff --git a/testsuite/reloc3.c b/testsuite/reloc3.c deleted file mode 100644 index 2f455d7..0000000 --- a/testsuite/reloc3.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> -#include <stdio.h> - -int i; -int j __attribute__((aligned (32))); -int k[2048]; -int l = 26; - -void f5 (FILE *f) -{ - fprintf (stdout, "OK"); -} - -int main() -{ - struct A *x; - foo.c -= 2; - if (foo.a != 1 || foo.b != &foo || foo.c[0] != 28 || foo.c[1] != 29 - || foo.c[2] != 30) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - x = f3 (); - if (x->a != 2 || x->b != x || x->c != foo.c + 1) - abort (); - f5 (stdout); - exit (0); -} diff --git a/testsuite/reloc3.sh b/testsuite/reloc3.sh deleted file mode 100755 index acf0497..0000000 --- a/testsuite/reloc3.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc3 reloc3lib*.so reloc3.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o reloc3lib1.so $srcdir/reloc3lib1.c -$CC -shared -O2 -fpic -o reloc3lib2.so $srcdir/reloc1lib2.c reloc3lib1.so -BINS="reloc3" -LIBS="reloc3lib1.so reloc3lib2.so" -$CCLINK -o reloc3 $srcdir/reloc3.c -Wl,--rpath-link,. reloc3lib2.so -$STRIP -g $BINS $LIBS -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc3 > reloc3.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc3 >> reloc3.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc3.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc3 >> reloc3.log || exit 3 -fi -readelf -a ./reloc3 >> reloc3.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc3 -comparelibs >> reloc3.log 2>&1 || exit 5 diff --git a/testsuite/reloc3lib1.c b/testsuite/reloc3lib1.c deleted file mode 100644 index fd649c6..0000000 --- a/testsuite/reloc3lib1.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "reloc1.h" - -int baz[3] = { 28, 29, 30 }; - -struct A foo = { 1, &foo, &baz[2] }; -static struct A xfoo = { 2, &xfoo, &baz[1] }; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} - -struct A *f3 (void) -{ - return &xfoo; -} diff --git a/testsuite/reloc4.c b/testsuite/reloc4.c deleted file mode 100644 index cb3b17a..0000000 --- a/testsuite/reloc4.c +++ /dev/null @@ -1,14 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - int i; - - printf ("#include <stdlib.h>\nextern int"); - for (i = 0; i < 255; ++i) - printf (" bar%02x (int),", i); - printf (" barff (int);\nint main (void)\n{\n int x = 0;\n"); - for (i = 0; i < 256; ++i) - printf (" x = bar%02x (x);\n", i); - printf (" if (x != 0x7fff8000) abort ();\n exit (0);\n}\n"); -} diff --git a/testsuite/reloc4.sh b/testsuite/reloc4.sh deleted file mode 100755 index 6163d31..0000000 --- a/testsuite/reloc4.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# This test takes a lot of time, so skip it normally -[ -z "$CHECK_ME_HARDER" ] && exit 77 -rm -f reloc4 reloc4lib*.so reloc4.log -rm -f prelink.cache -$HOST_CC -O2 -o reloc4lib1.tmp $srcdir/reloc4lib1.c -$HOST_CC -O2 -o reloc4lib2.tmp $srcdir/reloc4lib2.c -$HOST_CC -O2 -o reloc4lib3.tmp $srcdir/reloc4lib3.c -$HOST_CC -O2 -o reloc4.tmp $srcdir/reloc4.c -./reloc4lib1.tmp > reloc4lib1.tmp.c -./reloc4lib2.tmp > reloc4lib2.tmp.c -./reloc4lib3.tmp > reloc4lib3.tmp.c -./reloc4.tmp > reloc4.tmp.c -$CC -shared -fpic -o reloc4lib1.so reloc4lib1.tmp.c -$CC -shared -fpic -o reloc4lib2.so reloc4lib2.tmp.c reloc4lib1.so -$CC -shared -fpic -o reloc4lib3.so reloc4lib3.tmp.c reloc4lib2.so -BINS="reloc4" -LIBS="reloc4lib1.so reloc4lib2.so reloc4lib3.so" -$CCLINK -o reloc4 reloc4.tmp.c -Wl,--rpath-link,. reloc4lib3.so -savelibs -rm -f reloc4*.tmp reloc4*.tmp.c -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc4 > reloc4.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc4 >> reloc4.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc4.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc4 || exit 3 -fi -readelf -a ./reloc4 >> reloc4.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc4 -comparelibs >> reloc4.log 2>&1 || exit 5 diff --git a/testsuite/reloc4lib1.c b/testsuite/reloc4lib1.c deleted file mode 100644 index f1297d8..0000000 --- a/testsuite/reloc4lib1.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - int i; - - for (i = 0; i < 65536; ++i) - printf ("int foo%04x (void) { return %d; }\n", i, (i & 31) == 0 ? 0 : i); -} diff --git a/testsuite/reloc4lib2.c b/testsuite/reloc4lib2.c deleted file mode 100644 index 07aa721..0000000 --- a/testsuite/reloc4lib2.c +++ /dev/null @@ -1,17 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - int i, j; - - for (i = 0; i < 256; ++i) - { - printf ("extern int "); - for (j = 0; j < 255; ++j) - printf ("foo%02x%02x (void), ", i, j); - printf ("foo%02xff (void);\nint bar%02x (int x) { return x", i, i); - for (j = 0; j < 256; ++j) - printf (" + foo%02x%02x ()", i, j); - printf ("; }\n"); - } -} diff --git a/testsuite/reloc4lib3.c b/testsuite/reloc4lib3.c deleted file mode 100644 index 1f30817..0000000 --- a/testsuite/reloc4lib3.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - int i; - - for (i = 0; i < 65536; i += 32) - printf ("int foo%04x (void) { return %d; }\n", i, i); -} diff --git a/testsuite/reloc5.c b/testsuite/reloc5.c deleted file mode 100644 index 6c1b3c9..0000000 --- a/testsuite/reloc5.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - int i; - - printf ("#include <stdlib.h>\nextern char testzero[16384];\nextern int"); - for (i = 0; i < 255; ++i) - printf (" bar%02x (int),", i); - printf (" barff (int);\nint main (void)\n{\n int x = 0;\n"); - for (i = 0; i < 256; ++i) - printf (" x = bar%02x (x);\n", i); - printf (" if (x != 0x7fff8000) abort ();\n"); - printf (" for (x = 0; x < 16384; ++x)\n"); - printf (" if (testzero[x]) abort ();\n"); - printf (" exit (0);\n}\n\n"); - printf ("#ifdef __arm__\n"); - printf ("asm (\".section nonalloced,\\\"aw\\\",%%nobits; testzero: .skip 16384\");\n"); - printf ("#else\n"); - printf ("asm (\".section nonalloced,\\\"aw\\\",@nobits; testzero: .skip 16384\");\n"); - printf ("#endif\n"); -} diff --git a/testsuite/reloc5.sh b/testsuite/reloc5.sh deleted file mode 100755 index f543f69..0000000 --- a/testsuite/reloc5.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# This test takes a lot of time, so skip it normally -[ -z "$CHECK_ME_HARDER" ] && exit 77 -rm -f reloc5 reloc5.log -rm -f prelink.cache -$HOST_CC -O2 -o reloc5.tmp $srcdir/reloc5.c -./reloc5.tmp > reloc5.tmp.c -BINS="reloc5" -$CCLINK -o reloc5 reloc5.tmp.c -Wl,--rpath-link,. reloc4lib3.so -savelibs -rm -f reloc5*.tmp reloc5*.tmp.c -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc5 > reloc5.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc5 >> reloc5.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc5.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc5 || exit 3 -fi -readelf -a ./reloc5 >> reloc5.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc5 -comparelibs >> reloc5.log 2>&1 || exit 5 diff --git a/testsuite/reloc6.sh b/testsuite/reloc6.sh deleted file mode 100755 index 7f72936..0000000 --- a/testsuite/reloc6.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc6 reloc6lib*.so reloc6.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o reloc6lib1.so $srcdir/reloc3lib1.c -$CC -shared -O2 -fpic -o reloc6lib2.so $srcdir/reloc1lib2.c reloc6lib1.so -$CCLINK -o reloc6 $srcdir/reloc3.c -Wl,--rpath-link,. reloc6lib2.so -$CCLINK -o reloc6.nop $srcdir/reloc3.c -Wl,--rpath-link,. reloc6lib2.so -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc6 > reloc6.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc6 >> reloc6.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc6.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc6 >> reloc6.log || exit 3 -fi -readelf -a ./reloc6 >> reloc6.log 2>&1 || exit 4 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc6.nop >> reloc6.log || exit 5 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. LD_BIND_NOW=1 ./reloc6.nop >> reloc6.log || exit 6 -fi -mv -f reloc6lib2.so reloc6lib2.so.p -$CC -shared -O2 -fpic -o reloc6lib2.so $srcdir/reloc1lib2.c reloc6lib1.so -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc6 >> reloc6.log || exit 7 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc6.nop >> reloc6.log || exit 8 -fi -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. LD_BIND_NOW=1 ./reloc6.nop >> reloc6.log || exit 9 -fi -mv -f reloc6lib2.so reloc6lib2.so.nop -mv -f reloc6lib2.so.p reloc6lib2.so -# So that it is not prelinked again -chmod -x ./reloc6 ./reloc6.nop diff --git a/testsuite/reloc7.c b/testsuite/reloc7.c deleted file mode 100644 index c1f6dc8..0000000 --- a/testsuite/reloc7.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> -#include <stdio.h> - -int i; -int j __attribute__((aligned (32))); -int k[2048]; -int l = 26; -int m[3] = { 28, 29, 30 }; -extern int baz[3]; - -struct A n __attribute__((section("nsec"))) = { 1, &n, &m[2] }; -static struct A o __attribute__((section("osec"))) = { 2, &o, &baz[1] }; - -void f5 (FILE *f) -{ - fprintf (stdout, "OK"); -} - -int main() -{ - struct A *x; - foo.c -= 2; - if (foo.a != 1 || foo.b != &foo || foo.c[0] != 28 || foo.c[1] != 29 - || foo.c[2] != 30) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - x = f3 (); - if (x->a != 2 || x->b != x || x->c != foo.c + 1) - abort (); - if (n.a != 1 || n.b != &n || n.c != m + 2) - abort (); - if (o.a != 2 || o.b != &o || o.c != baz + 1) - abort (); - f5 (stdout); - exit (0); -} diff --git a/testsuite/reloc7.sh b/testsuite/reloc7.sh deleted file mode 100755 index edbbcbf..0000000 --- a/testsuite/reloc7.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f reloc7 reloc7lib*.so reloc7.log -rm -f prelink.cache -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc7lib1.so $srcdir/reloc3lib1.c -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc7lib2.so $srcdir/reloc1lib2.c reloc7lib1.so -BINS="reloc7" -LIBS="reloc7lib1.so reloc7lib2.so" -$CCLINK -o reloc7 -Wl,-z,nocombreloc $srcdir/reloc7.c -Wl,--rpath-link,. reloc7lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc7 > reloc7.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc7 >> reloc7.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc7.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc7 >> reloc7.log || exit 3 -fi -readelf -a ./reloc7 >> reloc7.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc7 -comparelibs >> reloc7.log 2>&1 || exit 5 diff --git a/testsuite/reloc8.sh b/testsuite/reloc8.sh deleted file mode 100755 index 9f5e1fb..0000000 --- a/testsuite/reloc8.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# Disable this test under SELinux -if [ "x$CROSS" = "x" ]; then - test -x /usr/sbin/getenforce -a "`/usr/sbin/getenforce`" = Enforcing && exit 77 -fi -rm -f reloc8 reloc8lib*.so reloc8.log -rm -f prelink.cache -NOCOPYRELOC=-Wl,-z,nocopyreloc -case "`uname -m`" in - x86_64|s390*) if file reloc1lib1.so | grep -q 64-bit; then NOCOPYRELOC=; fi;; -esac -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc8lib1.so $srcdir/reloc3lib1.c -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc8lib2.so $srcdir/reloc1lib2.c reloc8lib1.so -BINS="reloc8" -LIBS="reloc8lib1.so reloc8lib2.so" -$CCLINK -o reloc8 $NOCOPYRELOC $srcdir/reloc7.c -Wl,--rpath-link,. reloc8lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc8 > reloc8.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc8 >> reloc8.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc8.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc8 >> reloc8.log || exit 3 -fi -readelf -a ./reloc8 >> reloc8.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc8 -comparelibs >> reloc8.log 2>&1 || exit 5 diff --git a/testsuite/reloc9.sh b/testsuite/reloc9.sh deleted file mode 100755 index d3a449c..0000000 --- a/testsuite/reloc9.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# Disable this test under SELinux -if [ "x$CROSS" = "x" ]; then - test -x /usr/sbin/getenforce -a "`/usr/sbin/getenforce`" = Enforcing && exit 77 -fi -rm -f reloc9 reloc9lib*.so reloc9.log -rm -f prelink.cache -NOCOPYRELOC=-Wl,-z,nocopyreloc -case "`uname -m`" in - x86_64|s390*) if file reloc1lib1.so | grep -q 64-bit; then NOCOPYRELOC=; fi;; -esac -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc9lib1.so $srcdir/reloc3lib1.c -$CC -shared -O2 -Wl,-z,nocombreloc -fpic -o reloc9lib2.so $srcdir/reloc1lib2.c reloc9lib1.so -BINS="reloc9" -LIBS="reloc9lib1.so reloc9lib2.so" -$CCLINK -o reloc9 -Wl,-z,nocombreloc $NOCOPYRELOC $srcdir/reloc7.c -Wl,--rpath-link,. reloc9lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./reloc9 > reloc9.log -$PRELINK ${PRELINK_OPTS--vm} ./reloc9 >> reloc9.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` reloc9.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./reloc9 >> reloc9.log || exit 3 -fi -readelf -a ./reloc9 >> reloc9.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./reloc9 -comparelibs >> reloc9.log 2>&1 || exit 5 diff --git a/testsuite/shuffle1.sh b/testsuite/shuffle1.sh deleted file mode 100755 index 4553d2e..0000000 --- a/testsuite/shuffle1.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f shuffle1 shuffle1lib*.so shuffle1.log shuffle1.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle1lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle1lib2.so $srcdir/reloc1lib2.c shuffle1lib1.so -BINS="shuffle1" -LIBS="shuffle1lib1.so shuffle1lib2.so" -$CCLINK -o shuffle1 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle1lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/0x08048000/0x08000000/;s/SIZEOF_HEADERS.*$/& . += 56;/' > shuffle1.lds -$CCLINK -o shuffle1 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle1lib2.so \ - -Wl,-T,shuffle1.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle1 > shuffle1.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle1 >> shuffle1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle1.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle1 || exit 3 -fi -readelf -a ./shuffle1 >> shuffle1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle1 -comparelibs >> shuffle1.log 2>&1 || exit 5 diff --git a/testsuite/shuffle2.c b/testsuite/shuffle2.c deleted file mode 100644 index 870b189..0000000 --- a/testsuite/shuffle2.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -extern char testzero[16384]; - -int main() -{ - int i; - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - for (i = 0; i < 16384; ++i) - if (testzero[i]) - abort (); - exit (0); -} - -#ifdef __arm__ -asm (".section nonalloced,\"aw\",%nobits; testzero: .skip 16384"); -#else -asm (".section nonalloced,\"aw\",@nobits; testzero: .skip 16384"); -#endif diff --git a/testsuite/shuffle2.sh b/testsuite/shuffle2.sh deleted file mode 100755 index fdaf03e..0000000 --- a/testsuite/shuffle2.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# Kernels before 2.4.10 are known not to work -if [ "x$CROSS" = "x" ]; then - case "`uname -r`" in - [01].*|2.[0-3].*|2.4.[0-9]|2.4.[0-9][^0-9]*) exit 77;; - esac -fi -rm -f shuffle2 shuffle2lib*.so shuffle2.log shuffle2.lds -$CC -shared -O2 -fpic -o shuffle2lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle2lib2.so $srcdir/reloc1lib2.c shuffle2lib1.so -BINS="shuffle2" -LIBS="shuffle2lib1.so shuffle2lib2.so" -$CCLINK -o shuffle2 $srcdir/shuffle2.c -Wl,--rpath-link,. shuffle2lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/0x08048000/0x08000000/;s/SIZEOF_HEADERS.*$/& . += 56;/' > shuffle2.lds -$CCLINK -o shuffle2 $srcdir/shuffle2.c -Wl,--rpath-link,. shuffle2lib2.so \ - -Wl,-T,shuffle2.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle2 > shuffle2.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle2 >> shuffle2.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle2.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle2 || exit 3 -fi -readelf -a ./shuffle2 >> shuffle2.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle2 -comparelibs >> shuffle2.log 2>&1 || exit 5 diff --git a/testsuite/shuffle3.sh b/testsuite/shuffle3.sh deleted file mode 100755 index 989bfcb..0000000 --- a/testsuite/shuffle3.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# Kernels before 2.4.10 are known not to work -if [ "x$CROSS" = "x" ]; then - case "`uname -r`" in - [01].*|2.[0-3].*|2.4.[0-9]|2.4.[0-9][^0-9]*) exit 77;; - esac -fi -rm -f shuffle3 shuffle3lib*.so shuffle3.log shuffle3.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle3lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle3lib2.so $srcdir/reloc1lib2.c shuffle3lib1.so -BINS="shuffle3" -LIBS="shuffle3lib1.so shuffle3lib2.so" -$CCLINK -o shuffle3 $srcdir/shuffle2.c -Wl,--rpath-link,. shuffle3lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/0x08048000/0x08000000/' > shuffle3.lds -$CCLINK -o shuffle3 $srcdir/shuffle2.c -Wl,--rpath-link,. shuffle3lib2.so \ - -Wl,-T,shuffle3.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle3 > shuffle3.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle3 >> shuffle3.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle3.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle3 || exit 3 -fi -readelf -a ./shuffle3 >> shuffle3.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle3 -comparelibs >> shuffle3.log 2>&1 || exit 5 diff --git a/testsuite/shuffle4.sh b/testsuite/shuffle4.sh deleted file mode 100755 index 781431c..0000000 --- a/testsuite/shuffle4.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# Kernels before 2.4.10 are known not to work -if [ "x$CROSS" = "x" ]; then - case "`uname -r`" in - [01].*|2.[0-3].*|2.4.[0-9]|2.4.[0-9][^0-9]*) exit 77;; - esac -fi -rm -f shuffle4 shuffle4.log -BINS="shuffle4" -$CCLINK -o shuffle4 $srcdir/shuffle2.c -Wl,--rpath-link,. shuffle3lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle4 > shuffle4.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle4 >> shuffle4.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle4.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle4 || exit 3 -fi -readelf -a ./shuffle4 >> shuffle4.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle4 -comparelibs >> shuffle4.log 2>&1 || exit 5 diff --git a/testsuite/shuffle5.sh b/testsuite/shuffle5.sh deleted file mode 100755 index db722e8..0000000 --- a/testsuite/shuffle5.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f shuffle5 shuffle5lib*.so shuffle5.log shuffle5.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle5lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle5lib2.so $srcdir/reloc1lib2.c shuffle5lib1.so -BINS="shuffle5" -LIBS="shuffle5lib1.so shuffle5lib2.so" -$CCLINK -o shuffle5 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle5lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/0x08048000/0x08000000/;s/SIZEOF_HEADERS.*$/& . += 180;/' > shuffle5.lds -$CCLINK -o shuffle5 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle5lib2.so \ - -Wl,-T,shuffle5.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle5 > shuffle5.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle5 >> shuffle5.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle5.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle5 || exit 3 -fi -readelf -a ./shuffle5 >> shuffle5.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle5 -comparelibs >> shuffle5.log 2>&1 || exit 5 diff --git a/testsuite/shuffle6.sh b/testsuite/shuffle6.sh deleted file mode 100755 index eb28d62..0000000 --- a/testsuite/shuffle6.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f shuffle6 shuffle6lib*.so shuffle6.log shuffle6.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle6lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle6lib2.so $srcdir/reloc1lib2.c shuffle6lib1.so -BINS="shuffle6" -LIBS="shuffle6lib1.so shuffle6lib2.so" -$CCLINK -o shuffle6 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle6lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/0x08048000/0x08000000/;s/SIZEOF_HEADERS.*$/& . += 56;/' > shuffle6.lds -$CCLINK -o shuffle6 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle6lib2.so \ - -Wl,-T,shuffle6.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle6 > shuffle6.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle6 >> shuffle6.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle6.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle6 || exit 3 -fi -readelf -a ./shuffle6 >> shuffle6.log 2>&1 || exit 4 -comparelibs >> shuffle6.log 2>&1 || exit 5 -for l in shuffle6lib{1,2}.so{,.orig}; do mv -f $l $l.first; done -cp -p shuffle6 shuffle6.first -$CC -shared -O2 -fpic -o shuffle6lib1.so $srcdir/shuffle6lib1.c -$CC -shared -O2 -fpic -o shuffle6lib2.so $srcdir/shuffle6lib2.c shuffle6lib1.so -for l in shuffle6lib{1,2}.so; do cp -p $l $l.orig; done -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle6 >> shuffle6.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle6 >> shuffle6.log 2>&1 || exit 6 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle6.log && exit 7 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle6 || exit 8 -fi -readelf -a ./shuffle6 >> shuffle6.log 2>&1 || exit 9 -# So that it is not prelinked again -chmod -x ./shuffle6 -comparelibs >> shuffle6.log 2>&1 || exit 10 diff --git a/testsuite/shuffle6lib1.c b/testsuite/shuffle6lib1.c deleted file mode 100644 index 8053293..0000000 --- a/testsuite/shuffle6lib1.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "reloc1.h" - -int bar = 26; -int baz = 28; -#define M(i) int b##i, *pb##i = &b##i; -M(0) M(1) M(2) M(3) M(4) M(5) M(6) M(7) M(8) M(9) -M(10) M(11) M(12) M(13) M(14) M(15) M(16) M(17) M(18) M(19) -#undef M - -struct A foo = { 1, &foo, &bar }; - -int f1 (void) -{ - return 1; -} - -int f2 (void) -{ - return f1 () + 1; -} diff --git a/testsuite/shuffle6lib2.c b/testsuite/shuffle6lib2.c deleted file mode 100644 index ed18f6b..0000000 --- a/testsuite/shuffle6lib2.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -#define M(i) int b##i; extern *pb##i; -M(0) M(1) M(2) M(3) M(4) M(5) M(6) M(7) M(8) M(9) -M(10) M(11) M(12) M(13) M(14) M(15) M(16) M(17) M(18) M(19) -#undef M - -int f1 (void) -{ -#define M(i) if (pb##i != &b##i) abort (); -M(0) M(1) M(2) M(3) M(4) M(5) M(6) M(7) M(8) M(9) -M(10) M(11) M(12) M(13) M(14) M(15) M(16) M(17) M(18) M(19) -#undef M - return 11; -} diff --git a/testsuite/shuffle7.sh b/testsuite/shuffle7.sh deleted file mode 100755 index c6449c8..0000000 --- a/testsuite/shuffle7.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f shuffle7 shuffle7lib*.so shuffle7.log shuffle7.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle7lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle7lib2.so $srcdir/reloc1lib2.c shuffle7lib1.so -BINS="shuffle7" -LIBS="shuffle7lib1.so shuffle7lib2.so" -$CCLINK -o shuffle7 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle7lib2.so \ - -Wl,--verbose 2>&1 | sed -e '/^=========/,/^=========/!d;/^=========/d' \ - -e '/\.hash/a\ - . = . + 0x300;' > shuffle7.lds -$CCLINK -o shuffle7 $srcdir/reloc1.c -Wl,--rpath-link,. shuffle7lib2.so \ - -Wl,-T,shuffle7.lds -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle7 > shuffle7.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle7 >> shuffle7.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle7.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle7 || exit 3 -fi -readelf -a ./shuffle7 >> shuffle7.log 2>&1 || exit 4 -comparelibs >> shuffle7.log 2>&1 || exit 5 -for l in shuffle7lib{1,2}.so{,.orig}; do mv -f $l $l.first; done -cp -p shuffle7 shuffle7.first -$CC -shared -O2 -fpic -o shuffle7lib1.so $srcdir/shuffle6lib1.c -$CC -shared -O2 -fpic -o shuffle7lib2.so $srcdir/shuffle6lib2.c shuffle7lib1.so -for l in shuffle7lib{1,2}.so; do cp -p $l $l.orig; done -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle7 >> shuffle7.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle7 >> shuffle7.log 2>&1 || exit 6 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle7.log && exit 7 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle7 || exit 8 -fi -readelf -a ./shuffle7 >> shuffle7.log 2>&1 || exit 9 -comparelibs >> shuffle7.log 2>&1 || exit 10 -for l in shuffle7lib{1,2}.so{,.orig}; do mv -f $l $l.second; done -cp -p shuffle7 shuffle7.second -for l in shuffle7lib{1,2}.so{,.orig}; do cp -p $l.first $l; done -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle7 >> shuffle7.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle7 >> shuffle7.log 2>&1 || exit 11 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle7.log && exit 12 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle7 || exit 13 -fi -readelf -a ./shuffle7 >> shuffle7.log 2>&1 || exit 14 -comparelibs >> shuffle7.log 2>&1 || exit 15 -cmp -s shuffle7{,.first} || exit 16 -# So that it is not prelinked again -chmod -x ./shuffle7 diff --git a/testsuite/shuffle8.c b/testsuite/shuffle8.c deleted file mode 100644 index 4e80184..0000000 --- a/testsuite/shuffle8.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "reloc1.h" -#include <stdlib.h> - -static struct A local = { 77, &local, &bar + 4 }; -int vbss[16384] __attribute__((aligned (4096))); -int vdata __attribute__((aligned (4096))) = 5; - -asm (".text; .balign 4096; vtext:; .previous"); - -int main() -{ - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - local.c -= 4; - if (local.a != 77 || local.b != &local || local.c != &bar) - abort (); - exit (vbss[31] + vdata - 5); -} diff --git a/testsuite/shuffle8.sh b/testsuite/shuffle8.sh deleted file mode 100755 index 51dcc4c..0000000 --- a/testsuite/shuffle8.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f shuffle8 shuffle8lib*.so shuffle8.log shuffle8.lds -rm -f prelink.cache -$CC -shared -O2 -fpic -o shuffle8lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o shuffle8lib2.so $srcdir/reloc1lib2.c shuffle8lib1.so -BINS="shuffle8" -LIBS="shuffle8lib1.so shuffle8lib2.so" -$CCLINK -o shuffle8 $srcdir/shuffle8.c -Wl,--rpath-link,. shuffle8lib2.so -$STRIP -R .comment shuffle8 -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./shuffle8 > shuffle8.log -$PRELINK ${PRELINK_OPTS--vm} ./shuffle8 >> shuffle8.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` shuffle8.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./shuffle8 || exit 3 -fi -readelf -a ./shuffle8 >> shuffle8.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./shuffle8 -comparelibs >> shuffle8.log 2>&1 || exit 5 diff --git a/testsuite/test00.C b/testsuite/test00.C deleted file mode 100644 index 5047a34..0000000 --- a/testsuite/test00.C +++ /dev/null @@ -1,3 +0,0 @@ -int main() -{ -} diff --git a/testsuite/test00.sh b/testsuite/test00.sh deleted file mode 100755 index 8c54dd6..0000000 --- a/testsuite/test00.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -rm -f prelink.cache -rm -f test00 lib00*.so test00.log -i=10 -while [ $i -lt 74 ]; do - $CXX -shared -fpic -o lib00$i.so $srcdir/lib00.C - i=`expr $i + 1` -done -$CXXLINK -o test00 $srcdir/test00.C lib00*.so -echo $PRELINK -vR ./test00 > test00.log -$PRELINK -vR ./test00 >> test00.log 2>&1 || exit 1 -LD_LIBRARY_PATH=. ./test00 || exit 2 -# So that it is not prelinked again -chmod -x ./test00 diff --git a/testsuite/test01.sh b/testsuite/test01.sh deleted file mode 100755 index 4f83c5c..0000000 --- a/testsuite/test01.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -rm -f test01 lib01*.so test01.log -i=1 -while [ $i -lt 6 ]; do - $CXX -shared -fpic -o lib01$i.so $srcdir/lib00.C - i=`expr $i + 1` -done -$CXXLINK -o test01 $srcdir/test00.C lib01*.so -echo $PRELINK -vR ./test01 > test01.log -$PRELINK -vR ./test01 >> test01.log 2>&1 || exit 1 -LD_LIBRARY_PATH=. ./test01 || exit 2 -# So that it is not prelinked again -chmod -x ./test01 diff --git a/testsuite/test02.c b/testsuite/test02.c deleted file mode 100644 index 15fe414..0000000 --- a/testsuite/test02.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "lib02.h" -#include <stdlib.h> - -int main() -{ - if (foo.a != 1 || foo.b != &foo || foo.c != &bar || bar != 26) - abort (); - if (f1 () != 11 || f2 () != 12) - abort (); - exit (0); -} diff --git a/testsuite/test02.sh b/testsuite/test02.sh deleted file mode 100755 index c0b7105..0000000 --- a/testsuite/test02.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -rm -f test02 lib02*.so test02.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o lib021.so $srcdir/lib021.c -$CC -shared -O2 -fpic -o lib022.so $srcdir/lib022.c lib021.so -$CCLINK -o test02 $srcdir/test02.c -Wl,--rpath-link,. lib022.so -echo $PRELINK -vm ./test02 > test02.log -$PRELINK -vm ./test02 >> test02.log 2>&1 || exit 1 -LD_LIBRARY_PATH=. ./test02 || exit 2 -# So that it is not prelinked again -chmod -x ./test02 diff --git a/testsuite/test03.c b/testsuite/test03.c deleted file mode 100644 index 92445db..0000000 --- a/testsuite/test03.c +++ /dev/null @@ -1,10 +0,0 @@ -#include <stdlib.h> - -extern int f2 (int add); - -int main() -{ - if (f2 (1) != 27 || f2 (0) != 1) - abort (); - exit (0); -} diff --git a/testsuite/test03.sh b/testsuite/test03.sh deleted file mode 100755 index 68a05f1..0000000 --- a/testsuite/test03.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -case "`uname -m`" in - ia64) exit 77;; # Does not support non-pic shared libs -esac -rm -f test03 lib03*.so test03.log -$CC -shared -O2 -o lib031.so $srcdir/lib031.c -$CC -shared -O2 -o lib032.so $srcdir/lib032.c lib031.so -$CCLINK -o test03 $srcdir/test03.c -Wl,--rpath-link,. lib032.so -echo $PRELINK -vm ./test03 > test03.log -$PRELINK -vm ./test03 >> test03.log 2>&1 || exit 1 -LD_LIBRARY_PATH=. ./test03 || exit 2 -# So that it is not prelinked again -chmod -x ./test03 diff --git a/testsuite/tls1.c b/testsuite/tls1.c deleted file mode 100644 index 08bd26f..0000000 --- a/testsuite/tls1.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy = 12; -__thread struct A local = { 1, 2, 3 }; - -#define CHECK(N, S) \ - p = f##N##a (); \ - if (p->a != S || p->b != S + 1 || p->c != S + 2) \ - abort () - -int main() -{ - struct A *p; - if (local.a != 1 || local.b != 2 || local.c != 3) - abort (); - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a3.a != 10 || a3.b != 11 || a3.c != 12) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - check1 (); - check2 (); - if (f1a () != &a1 || f2a () != &a2 || f3a () != &a3 || f4a () != &a4) - abort (); - CHECK (5, 16); - CHECK (6, 19); - if (f7a () != &a2 || f8a () != &a4) - abort (); - CHECK (9, 28); - CHECK (10, 31); - exit (0); -} diff --git a/testsuite/tls1.h b/testsuite/tls1.h deleted file mode 100644 index d627340..0000000 --- a/testsuite/tls1.h +++ /dev/null @@ -1,30 +0,0 @@ -struct A - { - char a; - int b; - long long c; - }; - -extern __thread struct A a1, a2, a3, a4; -extern struct A *f1a (void); -extern struct A *f2a (void); -extern struct A *f3a (void); -extern struct A *f4a (void); -extern struct A *f5a (void); -extern struct A *f6a (void); -extern struct A *f7a (void); -extern struct A *f8a (void); -extern struct A *f9a (void); -extern struct A *f10a (void); -extern int f1b (void); -extern int f2b (void); -extern int f3b (void); -extern int f4b (void); -extern int f5b (void); -extern int f6b (void); -extern int f7b (void); -extern int f8b (void); -extern int f9b (void); -extern int f10b (void); -extern void check1 (void); -extern void check2 (void); diff --git a/testsuite/tls1.sh b/testsuite/tls1.sh deleted file mode 100755 index f3d2113..0000000 --- a/testsuite/tls1.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls1 tls1lib*.so tls1.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o tls1lib1.so $srcdir/tls1lib1.c -$CC -shared -O2 -fpic -o tls1lib2.so $srcdir/tls1lib2.c tls1lib1.so -BINS="tls1" -LIBS="tls1lib1.so tls1lib2.so" -$CCLINK -o tls1 $srcdir/tls1.c -Wl,--rpath-link,. tls1lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls1 > tls1.log -$PRELINK ${PRELINK_OPTS--vm} ./tls1 >> tls1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls1.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls1 || exit 3 -fi -readelf -a ./tls1 >> tls1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./tls1 -comparelibs >> tls1.log 2>&1 || exit 5 diff --git a/testsuite/tls1lib1.c b/testsuite/tls1lib1.c deleted file mode 100644 index eb0734b..0000000 --- a/testsuite/tls1lib1.c +++ /dev/null @@ -1,89 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy = 12; -__thread struct A a1 = { 4, 5, 6 }; -__thread struct A a2 = { 7, 8, 9 }; -__thread struct A a3 __attribute__((tls_model("initial-exec"))) - = { 10, 11, 12 }; -__thread struct A a4 __attribute__((tls_model("initial-exec"))) - = { 13, 14, 15 }; -static __thread struct A local1 = { 16, 17, 18 }; -static __thread struct A local2 __attribute__((tls_model("initial-exec"))) - = { 19, 20, 21 }; - -void check1 (void) -{ - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a3.a != 10 || a3.b != 11 || a3.c != 12) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 16 || local1.b != 17 || local1.c != 18) - abort (); - if (local2.a != 19 || local2.b != 20 || local2.c != 21) - abort (); -} - -struct A *f1a (void) -{ - return &a1; -} - -struct A *f2a (void) -{ - return &a2; -} - -struct A *f3a (void) -{ - return &a3; -} - -struct A *f4a (void) -{ - return &a4; -} - -struct A *f5a (void) -{ - return &local1; -} - -struct A *f6a (void) -{ - return &local2; -} - -int f1b (void) -{ - return a1.a; -} - -int f2b (void) -{ - return a2.b; -} - -int f3b (void) -{ - return a3.c; -} - -int f4b (void) -{ - return a4.a; -} - -int f5b (void) -{ - return local1.b; -} - -int f6b (void) -{ - return local2.c; -} diff --git a/testsuite/tls1lib2.c b/testsuite/tls1lib2.c deleted file mode 100644 index eee03a9..0000000 --- a/testsuite/tls1lib2.c +++ /dev/null @@ -1,62 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread long long dummy = 12; -__thread struct A a2 = { 22, 23, 24 }; -__thread struct A a4 __attribute__((tls_model("initial-exec"))) - = { 25, 26, 27 }; -static __thread struct A local1 = { 28, 29, 30 }; -static __thread struct A local2 __attribute__((tls_model("initial-exec"))) - = { 31, 32, 33 }; - -void check2 (void) -{ - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 28 || local1.b != 29 || local1.c != 30) - abort (); - if (local2.a != 31 || local2.b != 32 || local2.c != 33) - abort (); -} - -struct A *f7a (void) -{ - return &a2; -} - -struct A *f8a (void) -{ - return &a4; -} - -struct A *f9a (void) -{ - return &local1; -} - -struct A *f10a (void) -{ - return &local2; -} - -int f7b (void) -{ - return a2.b; -} - -int f8b (void) -{ - return a4.a; -} - -int f9b (void) -{ - return local1.b; -} - -int f10b (void) -{ - return local2.c; -} diff --git a/testsuite/tls2.c b/testsuite/tls2.c deleted file mode 100644 index 1246165..0000000 --- a/testsuite/tls2.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -#define CHECK(N, S) \ - p = f##N##a (); \ - if (p->a != S || p->b != S + 1 || p->c != S + 2) \ - abort () - -int main() -{ - struct A *p; - check1 (); - check2 (); - CHECK (1, 4); - CHECK (2, 22); - CHECK (3, 10); - CHECK (4, 25); - CHECK (5, 16); - CHECK (6, 19); - CHECK (7, 22); - CHECK (8, 25); - CHECK (9, 28); - CHECK (10, 31); - exit (0); -} diff --git a/testsuite/tls2.sh b/testsuite/tls2.sh deleted file mode 100755 index 4b515b0..0000000 --- a/testsuite/tls2.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls2 tls2lib*.so tls2.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o tls2lib1.so $srcdir/tls2lib1.c -$CC -shared -O2 -fpic -o tls2lib2.so $srcdir/tls1lib2.c tls2lib1.so -BINS="tls2" -LIBS="tls2lib1.so tls2lib2.so" -$CCLINK -o tls2 $srcdir/tls2.c -Wl,--rpath-link,. tls2lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls2 > tls2.log -$PRELINK ${PRELINK_OPTS--vm} ./tls2 >> tls2.log 2>&1 || exit 1 -grep -v 'has undefined non-weak symbols' tls2.log \ - | grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls2 || exit 3 -fi -readelf -a ./tls2 >> tls2.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./tls2 -comparelibs >> tls2.log 2>&1 || exit 5 diff --git a/testsuite/tls2lib1.c b/testsuite/tls2lib1.c deleted file mode 100644 index 24b7555..0000000 --- a/testsuite/tls2lib1.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy = 12; -__thread struct A a1 = { 4, 5, 6 }; -__thread struct A a3 __attribute__((tls_model("initial-exec"))) - = { 10, 11, 12 }; -extern __thread struct A a4 __attribute__((tls_model("initial-exec"))); -static __thread struct A local1 = { 16, 17, 18 }; -static __thread struct A local2 __attribute__((tls_model("initial-exec"))) - = { 19, 20, 21 }; - -void check1 (void) -{ - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a3.a != 10 || a3.b != 11 || a3.c != 12) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 16 || local1.b != 17 || local1.c != 18) - abort (); - if (local2.a != 19 || local2.b != 20 || local2.c != 21) - abort (); -} - -struct A *f1a (void) -{ - return &a1; -} - -struct A *f2a (void) -{ - return &a2; -} - -struct A *f3a (void) -{ - return &a3; -} - -struct A *f4a (void) -{ - return &a4; -} - -struct A *f5a (void) -{ - return &local1; -} - -struct A *f6a (void) -{ - return &local2; -} - -int f1b (void) -{ - return a1.a; -} - -int f2b (void) -{ - return a2.b; -} - -int f3b (void) -{ - return a3.c; -} - -int f4b (void) -{ - return a4.a; -} - -int f5b (void) -{ - return local1.b; -} - -int f6b (void) -{ - return local2.c; -} diff --git a/testsuite/tls3.sh b/testsuite/tls3.sh deleted file mode 100755 index 1663ad7..0000000 --- a/testsuite/tls3.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -SHFLAGS= -case "`uname -m`" in - ia64|ppc*|x86_64|alpha*|s390*) SHFLAGS=-fpic;; # Does not support non-pic shared libs -esac -rm -f tls3 tls3lib*.so tls3.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o tls3lib1.so $srcdir/tls1lib1.c -$CC -shared -O2 $SHFLAGS -o tls3lib2.so $srcdir/tls3lib2.c \ - tls3lib1.so 2>/dev/null -BINS="tls3" -LIBS="tls3lib1.so tls3lib2.so" -$CCLINK -o tls3 $srcdir/tls1.c -Wl,--rpath-link,. tls3lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls3 > tls3.log -$PRELINK ${PRELINK_OPTS--vm} ./tls3 >> tls3.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls3.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls3 || exit 3 -fi -readelf -a ./tls3 >> tls3.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./tls3 -comparelibs >> tls3.log 2>&1 || exit 5 diff --git a/testsuite/tls3lib2.c b/testsuite/tls3lib2.c deleted file mode 100644 index ba485d3..0000000 --- a/testsuite/tls3lib2.c +++ /dev/null @@ -1,68 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -asm (".section trampoline, \"awx\"; .previous"); - -#if !defined __sparc__ || defined __pic__ || defined __PIC__ -#define ieattr __attribute__((tls_model("initial-exec"))) -#else -#define ieattr -#endif - -static __thread long long dummy = 12; -__thread struct A a2 = { 22, 23, 24 }; -__thread struct A a4 ieattr = { 25, 26, 27 }; -static __thread struct A local1 = { 28, 29, 30 }; -static __thread struct A local2 ieattr = { 31, 32, 33 }; - -void __attribute__((section ("trampoline"))) check2 (void) -{ - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 28 || local1.b != 29 || local1.c != 30) - abort (); - if (local2.a != 31 || local2.b != 32 || local2.c != 33) - abort (); -} - -struct A * __attribute__((section ("trampoline"))) f7a (void) -{ - return &a2; -} - -struct A * __attribute__((section ("trampoline"))) f8a (void) -{ - return &a4; -} - -struct A * __attribute__((section ("trampoline"))) f9a (void) -{ - return &local1; -} - -struct A * __attribute__((section ("trampoline"))) f10a (void) -{ - return &local2; -} - -int __attribute__((section ("trampoline"))) f7b (void) -{ - return a2.b; -} - -int __attribute__((section ("trampoline"))) f8b (void) -{ - return a4.a; -} - -int __attribute__((section ("trampoline"))) f9b (void) -{ - return local1.b; -} - -int __attribute__((section ("trampoline"))) f10b (void) -{ - return local2.c; -} diff --git a/testsuite/tls4.c b/testsuite/tls4.c deleted file mode 100644 index 0882f07..0000000 --- a/testsuite/tls4.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -#define CHECK(N, S) \ - p = &a##N; \ - if (p->a != S || p->b != S + 1 || p->c != S + 2) \ - abort () - -int main() -{ - struct A *p; - check1 (); - CHECK (1, 4); - CHECK (2, 7); - exit (0); -} diff --git a/testsuite/tls4.sh b/testsuite/tls4.sh deleted file mode 100755 index e6bdde2..0000000 --- a/testsuite/tls4.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls4 tls4lib*.so tls4.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o tls4lib1.so $srcdir/tls4lib1.c -$CC -shared -O2 -fpic -o tls4lib2.so $srcdir/tls4lib2.c \ - tls4lib1.so 2>/dev/null -BINS="tls4" -LIBS="tls4lib1.so tls4lib2.so" -$CCLINK -o tls4 $srcdir/tls4.c -Wl,--rpath-link,. tls4lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls4 > tls4.log -$PRELINK ${PRELINK_OPTS--vm} ./tls4 >> tls4.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls4.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls4 || exit 3 -fi -readelf -a ./tls4 >> tls4.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./tls4 -comparelibs >> tls4.log 2>&1 || exit 5 diff --git a/testsuite/tls4lib1.c b/testsuite/tls4lib1.c deleted file mode 100644 index a03af0b..0000000 --- a/testsuite/tls4lib1.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -__thread struct A a1 = { 4, 5, 6 }; -__thread struct A a2 = { 7, 8, 9 }; diff --git a/testsuite/tls4lib2.c b/testsuite/tls4lib2.c deleted file mode 100644 index 309504b..0000000 --- a/testsuite/tls4lib2.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -extern __thread struct A a2 __attribute__((tls_model("initial-exec"))); - -void check1 (void) -{ - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 7 || a2.b != 8 || a2.c != 9) - abort (); -} diff --git a/testsuite/tls5.sh b/testsuite/tls5.sh deleted file mode 100755 index 68ec82f..0000000 --- a/testsuite/tls5.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls5 tls5lib*.so tls5.log -rm -f prelink.cache -echo 'int tls5;' | $CC -shared -O2 -fpic -xc - -o tls5lib3.so -$CC -shared -O2 -fpic -o tls5lib1.so $srcdir/tls5lib1.c tls5lib3.so -$CC -shared -O2 -fpic -o tls5lib2.so $srcdir/tls1lib2.c \ - -Wl,--rpath-link,. tls5lib1.so -BINS="tls5" -LIBS="tls5lib1.so tls5lib2.so tls5lib3.so" -$CCLINK -o tls5 $srcdir/tls1.c -Wl,--rpath-link,. tls5lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls5 > tls5.log -$PRELINK ${PRELINK_OPTS--vm} ./tls5 >> tls5.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls5.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls5 || exit 3 -fi -$PRELINK -u tls5lib3.so || exit 4 -echo $PRELINK ${PRELINK_OPTS--vm} ./tls5 >> tls5.log -$PRELINK ${PRELINK_OPTS--vm} ./tls5 >> tls5.log 2>&1 || exit 5 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls5.log && exit 6 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls5 || exit 7 -fi -readelf -a ./tls5 >> tls5.log 2>&1 || exit 8 -# So that it is not prelinked again -chmod -x ./tls5 -comparelibs >> tls5.log 2>&1 || exit 9 diff --git a/testsuite/tls5lib1.c b/testsuite/tls5lib1.c deleted file mode 100644 index 9677848..0000000 --- a/testsuite/tls5lib1.c +++ /dev/null @@ -1,96 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy = 12; -__thread struct A a1 = { 4, 5, 6 }; -__thread struct A a2 = { 7, 8, 9 }; -__thread struct A a3 __attribute__((tls_model("initial-exec"))) - = { 10, 11, 12 }; -__thread struct A a4 __attribute__((tls_model("initial-exec"))) - = { 13, 14, 15 }; -static __thread struct A local1 = { 16, 17, 18 }; -static __thread struct A local2 __attribute__((tls_model("initial-exec"))) - = { 19, 20, 21 }; -struct Z { char a; struct Z *b; int *c; }; -int y[2]; -struct Z z[2] = { { 1, &z[1], &y[0] }, { 2, &z[0], &y[1] } }; - -void check1 (void) -{ - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a3.a != 10 || a3.b != 11 || a3.c != 12) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 16 || local1.b != 17 || local1.c != 18) - abort (); - if (local2.a != 19 || local2.b != 20 || local2.c != 21) - abort (); - if (z[0].a != 1 || z[0].b != &z[1] || z[0].c != &y[0]) - abort (); - if (z[1].a != 2 || z[1].b != &z[0] || z[1].c != &y[1]) - abort (); -} - -struct A *f1a (void) -{ - return &a1; -} - -struct A *f2a (void) -{ - return &a2; -} - -struct A *f3a (void) -{ - return &a3; -} - -struct A *f4a (void) -{ - return &a4; -} - -struct A *f5a (void) -{ - return &local1; -} - -struct A *f6a (void) -{ - return &local2; -} - -int f1b (void) -{ - return a1.a; -} - -int f2b (void) -{ - return a2.b; -} - -int f3b (void) -{ - return a3.c; -} - -int f4b (void) -{ - return a4.a; -} - -int f5b (void) -{ - return local1.b; -} - -int f6b (void) -{ - return local2.c; -} diff --git a/testsuite/tls6.sh b/testsuite/tls6.sh deleted file mode 100755 index 60ae492..0000000 --- a/testsuite/tls6.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls6 tls6lib*.so tls6.log -rm -f prelink.cache -echo 'int tls6;' | $CC -shared -O2 -fpic -xc - -o tls6lib3.so -$CC -shared -O2 -fpic -o tls6lib1.so $srcdir/tls6lib1.c tls6lib3.so -$CC -shared -O2 -fpic -o tls6lib2.so $srcdir/tls1lib2.c \ - -Wl,--rpath-link,. tls6lib1.so -BINS="tls6" -LIBS="tls6lib1.so tls6lib2.so tls6lib3.so" -$CCLINK -o tls6 $srcdir/tls2.c -Wl,--rpath-link,. tls6lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls6 > tls6.log -$PRELINK ${PRELINK_OPTS--vm} ./tls6 >> tls6.log 2>&1 || exit 1 -grep -v 'has undefined non-weak symbols' tls6.log \ - | grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls6 || exit 3 -fi -$PRELINK -u tls6lib3.so || exit 4 -echo $PRELINK ${PRELINK_OPTS--vm} ./tls6 >> tls6.log -$PRELINK ${PRELINK_OPTS--vm} ./tls6 >> tls6.log 2>&1 || exit 5 -grep -v 'has undefined non-weak symbols' tls6.log \ - | grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` && exit 6 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls6 || exit 7 -fi -readelf -a ./tls6 >> tls6.log 2>&1 || exit 8 -# So that it is not prelinked again -chmod -x ./tls6 -comparelibs >> tls6.log 2>&1 || exit 9 diff --git a/testsuite/tls6lib1.c b/testsuite/tls6lib1.c deleted file mode 100644 index 5310c06..0000000 --- a/testsuite/tls6lib1.c +++ /dev/null @@ -1,94 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy = 12; -__thread struct A a1 = { 4, 5, 6 }; -__thread struct A a3 __attribute__((tls_model("initial-exec"))) - = { 10, 11, 12 }; -extern __thread struct A a4 __attribute__((tls_model("initial-exec"))); -static __thread struct A local1 = { 16, 17, 18 }; -static __thread struct A local2 __attribute__((tls_model("initial-exec"))) - = { 19, 20, 21 }; -struct Z { char a; struct Z *b; int *c; }; -int y[2]; -struct Z z[2] = { { 1, &z[1], &y[0] }, { 2, &z[0], &y[1] } }; - -void check1 (void) -{ - if (a1.a != 4 || a1.b != 5 || a1.c != 6) - abort (); - if (a2.a != 22 || a2.b != 23 || a2.c != 24) - abort (); - if (a3.a != 10 || a3.b != 11 || a3.c != 12) - abort (); - if (a4.a != 25 || a4.b != 26 || a4.c != 27) - abort (); - if (local1.a != 16 || local1.b != 17 || local1.c != 18) - abort (); - if (local2.a != 19 || local2.b != 20 || local2.c != 21) - abort (); - if (z[0].a != 1 || z[0].b != &z[1] || z[0].c != &y[0]) - abort (); - if (z[1].a != 2 || z[1].b != &z[0] || z[1].c != &y[1]) - abort (); -} - -struct A *f1a (void) -{ - return &a1; -} - -struct A *f2a (void) -{ - return &a2; -} - -struct A *f3a (void) -{ - return &a3; -} - -struct A *f4a (void) -{ - return &a4; -} - -struct A *f5a (void) -{ - return &local1; -} - -struct A *f6a (void) -{ - return &local2; -} - -int f1b (void) -{ - return a1.a; -} - -int f2b (void) -{ - return a2.b; -} - -int f3b (void) -{ - return a3.c; -} - -int f4b (void) -{ - return a4.a; -} - -int f5b (void) -{ - return local1.b; -} - -int f6b (void) -{ - return local2.c; -} diff --git a/testsuite/tls7.c b/testsuite/tls7.c deleted file mode 100644 index 4a3db24..0000000 --- a/testsuite/tls7.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "tls1.h" -#include <stdlib.h> - -static __thread int dummy; -__thread struct A local; - -int main() -{ - exit (dummy + local.a + local.b + local.c); -} diff --git a/testsuite/tls7.sh b/testsuite/tls7.sh deleted file mode 100755 index 216a379..0000000 --- a/testsuite/tls7.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -# First check if __thread is supported by ld.so/gcc/ld/as: -rm -f tlstest -#echo '__thread int a; int main (void) { return a; }' \ -# | $CC -xc - -o tlstest > /dev/null 2>&1 || exit 77 -#( ./tlstest || { rm -f tlstest; exit 77; } ) 2>/dev/null || exit 77 -rm -f tls7 tls7.log -rm -f prelink.cache -BINS="tls7" -LIBS="" -$CCLINK -o tls7 $srcdir/tls7.c -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./tls7 > tls7.log -$PRELINK ${PRELINK_OPTS--vm} ./tls7 >> tls7.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` tls7.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./tls7 || exit 3 -fi -readelf -a ./tls7 >> tls7.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./tls7 -comparelibs >> tls7.log 2>&1 || exit 5 diff --git a/testsuite/undo1.sh b/testsuite/undo1.sh deleted file mode 100755 index ed61b6b..0000000 --- a/testsuite/undo1.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -rm -f undo1 undo1lib*.so undo1.log -rm -f prelink.cache -$CC -shared -O2 -fpic -o undo1lib1.so $srcdir/reloc1lib1.c -$CC -shared -O2 -fpic -o undo1lib2.so $srcdir/reloc1lib2.c undo1lib1.so -BINS="undo1" -LIBS="undo1lib1.so undo1lib2.so" -$CCLINK -o undo1 $srcdir/reloc1.c -Wl,--rpath-link,. undo1lib2.so -savelibs -echo $PRELINK ${PRELINK_OPTS--vm} ./undo1 > undo1.log -$PRELINK ${PRELINK_OPTS--vm} ./undo1 >> undo1.log 2>&1 || exit 1 -grep -q ^`echo $PRELINK | sed 's/ .*$/: /'` undo1.log && exit 2 -if [ "x$CROSS" = "x" ]; then - LD_LIBRARY_PATH=. ./undo1 || exit 3 -fi -readelf -a ./undo1 >> undo1.log 2>&1 || exit 4 -# So that it is not prelinked again -chmod -x ./undo1 -echo $PRELINK -uo undo1.undo undo1 >> undo1.log -$PRELINK -uo undo1.undo undo1 >> undo1.log 2>&1 || exit 5 -cmp -s undo1.undo undo1.orig >> undo1.log 2>&1 || exit 6 -rm -f undo1.undo -comparelibs >> undo1.log 2>&1 || exit 7 diff --git a/testsuite/undosyslibs.sh b/testsuite/undosyslibs.sh deleted file mode 100755 index 1ce136d..0000000 --- a/testsuite/undosyslibs.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -. `dirname $0`/functions.sh -LIBS=`cat syslib.list` -comparelibs >> undosyslibs.log 2>&1 || exit 1 |