|
@@ -4,7 +4,8 @@
|
|
|
# rules need a little love to work with glibc ...
|
|
|
export UCLIBC_ONLY := 1
|
|
|
|
|
|
-TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
|
|
|
+TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
|
|
|
+ testscope
|
|
|
|
|
|
CFLAGS_dltest := -DLIBNAME="\"./libtest.so\""
|
|
|
CFLAGS_dltest2 := -DLIBNAME="\"./libtest3.so\""
|
|
@@ -18,22 +19,42 @@ LDFLAGS_test1 := -ldl
|
|
|
LDFLAGS_test2 := -ldl
|
|
|
LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
|
|
|
LDFLAGS_dladdr := -ldl
|
|
|
+LDFLAGS_testscope:= -ldl
|
|
|
|
|
|
DEBUG_LIBS := X
|
|
|
WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
|
|
|
|
|
|
+# Build libC.so without -mprefergot compilation flag to force a
|
|
|
+# R_SH_JMP_SLOT relocation instead of R_SH_GLOB_DAT for _libC_fini. This is
|
|
|
+# needed to resolve the _libC_fini symbol when used (by libC.so destructor),
|
|
|
+# whereas with GLOB_DAT relocation the resolution happens in the GOT entry
|
|
|
+# when the libC is loaded, for the same reason remove also the "-z now"
|
|
|
+# linker flag.
|
|
|
+# These are needed to spot the issue test case want raise.
|
|
|
+
|
|
|
+ifeq ($(TARGET_ARCH),sh)
|
|
|
+CFLAGS-OMIT-libC.c = -mprefergot
|
|
|
+endif
|
|
|
+LDFLAGS-OMIT-libC.c = -Wl,-z,now
|
|
|
+
|
|
|
dltest: libtest.so
|
|
|
dltest2: libtest3.so
|
|
|
dlstatic: libstatic.so
|
|
|
dlundef: libundef.so
|
|
|
dlafk: libafk.so
|
|
|
+testscope:libA.so
|
|
|
libafk.so: libafk-temp.so
|
|
|
LDFLAGS_libafk.so := ./libafk-temp.so -Wl,-rpath,.
|
|
|
test1: libtest1.so
|
|
|
test2: libtest1.so libtest2.so
|
|
|
test3: libtest1.so libtest2.so
|
|
|
libtest1.so: libtest2.so
|
|
|
+libB.so: libC.so
|
|
|
+libA.so: libB.so
|
|
|
LDFLAGS_libtest.so := -lpthread
|
|
|
LDFLAGS_libtest1.so := ./libtest2.so -Wl,-rpath,.
|
|
|
LDFLAGS_libtest2.so := -Wl,-rpath,.
|
|
|
LDFLAGS_libtest3.so := -lpthread -Wl,-rpath,.
|
|
|
+LDFLAGS_libC.so := -ldl
|
|
|
+LDFLAGS_libB.so := ./libC.so -Wl,-rpath,.
|
|
|
+LDFLAGS_libA.so := ./libB.so -Wl,-rpath,.
|