]> git.saurik.com Git - cycript.git/commitdiff
Add workaround for a linker bug (and a test case).
authorJay Freeman (saurik) <saurik@saurik.com>
Tue, 19 Aug 2014 23:44:20 +0000 (16:44 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Tue, 19 Aug 2014 23:46:38 +0000 (16:46 -0700)
libffi.sh
section.sh [new file with mode: 0755]

index fa01534cc3bb60f94fe99675c7988acaac19e128..ac980dfc143513dd499bb3fbac9f6d1dffdfba4c 100755 (executable)
--- a/libffi.sh
+++ b/libffi.sh
@@ -65,7 +65,10 @@ arch x86_64 x86_64-apple-darwin11 iphonesimulator ios-simulator 4.0
 
 libffi=()
 for arch in "${archs[@]}"; do
-    libffi+=(libffi."${arch}"/.libs/libffi.a)
+    a=libffi."${arch}"/.libs/libffi.a
+    # sectionForAddress(...) address not in any section file '...' for architecture i386
+    ar m "${a}" src/prep_cif.o
+    libffi+=("${a}")
 done
 
 lipo -create -output libffi.a "${libffi[@]}"
diff --git a/section.sh b/section.sh
new file mode 100755 (executable)
index 0000000..a7f2753
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+function run { sdk=$1; arch=$2; shift 2; xcrun --sdk "${sdk}" g++ -arch "${arch}" "$@" -o a \
+    -isysroot "$(xcodebuild -sdk "${sdk}" -version Path)" \
+    -x c <(echo "void CYListenServer(short port); int main() { CYListenServer(6667); return 0; }") \
+    -framework Foundation -framework JavaScriptCore -framework Cycript; }
+echo macosx
+run macosx i386 -mmacosx-version-min=10.6 -F Cycript.osx "${flags[@]}"
+run macosx x86_64 -mmacosx-version-min=10.6 -F Cycript.osx "${flags[@]}"
+echo iphoneos
+run iphoneos armv6 -miphoneos-version-min=4.0 -F Cycript.ios "${flags[@]}"
+run iphoneos arm64 -miphoneos-version-min=7.0 -F Cycript.ios "${flags[@]}"
+echo iphonesimulator
+run iphonesimulator i386 -mios-simulator-version-min=4.0 -F Cycript.ios "${flags[@]}"
+run iphonesimulator x86_64 -mios-simulator-version-min=4.0 -F Cycript.ios "${flags[@]}" -fobjc-abi-version=2 -fobjc-legacy-dispatch