]> git.saurik.com Git - apple/dyld.git/blobdiff - unit-tests/test-cases/read-only-stubs/main.c
dyld-353.2.1.tar.gz
[apple/dyld.git] / unit-tests / test-cases / read-only-stubs / main.c
index 45f6d8ff898df811df983bf1d10cfa225cfbd67b..b9420c7bf40e626d34b7b9a77062e156a87ebd6f 100644 (file)
 #include <stdio.h>  // fprintf(), NULL
 #include <stdlib.h> // exit(), EXIT_SUCCESS
 #include <unistd.h>
+#include <Availability.h>
 #include <mach-o/getsect.h>
 #include <mach/mach.h> 
 #include <mach/mach_vm.h> 
 #include "test.h" // PASS(), FAIL(), XPASS(), XFAIL()
 
+#if __MAC_OS_X_VERSION_MIN_REQUIRED
 
 extern void foo();
 extern int fooData;
@@ -71,7 +73,10 @@ static void* getStubAddr()
 #elif __x86_64__
        return getsectdata("__TEXT", "__symbol_stub1", &size);
 #elif __arm__
-       return getsectdata("__TEXT", "__symbol_stub4", &size);
+       void* p = getsectdata("__TEXT", "__symbol_stub4", &size);
+       if ( p != NULL ) 
+               return p;
+       return getsectdata("__TEXT", "__symbolstub1", &size);
 #else
        #error unknown arch
 #endif
@@ -104,4 +109,14 @@ int main()
        return EXIT_SUCCESS;
 }
 
+#else
+
+int main()
+{
+       // iOS does not have modifiable stubs
+       PASS("read-only-stubs");
+       return EXIT_SUCCESS;
+}
+
+#endif