]> git.saurik.com Git - apple/ld64.git/blobdiff - unit-tests/test-cases/switch-jump-table/Makefile
ld64-127.2.tar.gz
[apple/ld64.git] / unit-tests / test-cases / switch-jump-table / Makefile
index aacd78d5f64dc0b1889e1c18d385a15b61641304..72bc68b648dea3c08ace5a26fcee9efcc32760d9 100644 (file)
@@ -25,32 +25,40 @@ include ${TESTROOT}/include/common.makefile
 
 #
 # Test that -mdynamic-no-pic jump table in the middle of
-# a function does not  cause relocations.
+# a function does not cause relocations.
 #
 # <rdar://problem/5847206> SPEC2000/eon built with -mdynamic-no-pic won't run
 #
 
-run: all
+all: test-${FILEARCH}
 
-all:
+
+test-ppc:  test-good
+test-x86_64: test-good
+test-i386: test
+test-arm: test
+
+test:
        # check jump table in a weak function
-       ${CC} ${CCFLAGS} main.c switch.s -o main
+       ${CC} ${CCFLAGS} main.c switch.s -o main -Wl,-no_pie
        otool -rv main | grep _foo | ${FAIL_IF_STDIN}
        otool -rv main | grep _bar | ${FAIL_IF_STDIN}
        # check jump table in a regular function with -flat_namespace
-       ${CC} ${CCFLAGS} main.c switch.s -o main  -flat_namespace
+       ${CC} ${CCFLAGS} main.c switch.s -o main  -flat_namespace -Wl,-no_pie
        otool -rv main | grep _foo | ${FAIL_IF_STDIN}
        otool -rv main | grep _bar | ${FAIL_IF_STDIN}
        # check jump table in a regular function that is interposable
-       ${CC} ${CCFLAGS} main.c switch.s -o main  -Wl,-interposable_list,interpose.exp
+       ${CC} ${CCFLAGS} main.c switch.s -o main  -Wl,-interposable_list,interpose.exp -Wl,-no_pie
        otool -rv main | grep _foo | ${FAIL_IF_STDIN}
        otool -rv main | grep _bar | ${FAIL_IF_STDIN}
        # check jump table with -pie, should have no external and some local relocations
        ${CC} ${CCFLAGS} main.c switch.s -o main  -Wl,-pie -read_only_relocs suppress
        otool -rv main | grep "External relocation" | ${FAIL_IF_STDIN}
-       otool -rv main | grep "Local relocation" | ${FAIL_IF_EMPTY}
+#      otool -rv main | grep "Local relocation" | ${FAIL_IF_EMPTY}
        ${PASS_IFF_GOOD_MACHO} main
 
+test-good:
+       ${PASS_IFF} true
 
 clean:
        rm -f main