X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/7c087cd2b012a076eb408ece28ed06781c64b464..54602694a8902f04afe627be38a2b3ca5e94cf88:/libffi.sh diff --git a/libffi.sh b/libffi.sh index 1d13f9b..ac980df 100755 --- a/libffi.sh +++ b/libffi.sh @@ -45,13 +45,17 @@ function arch() { flags+=(-fno-stack-protector) flags+=(-O3 -g3) + if [[ ${arch} == arm* && ${arch} != arm64 ]]; then + flags+=(-mthumb) + fi + cd "libffi.${arch}" - CC="clang -arch ${arch}" CFLAGS="${flags[*]}" CPPFLAGS="${flags[*]}" ../libffi/configure --host="${host}" + CC="clang -arch ${arch}" CFLAGS="${flags[*]}" CPPFLAGS="${flags[*]} $*" ../libffi/configure --host="${host}" make cd .. } -arch armv6 arm-apple-darwin10 iphoneos iphoneos 2.0 +arch armv6 arm-apple-darwin10 iphoneos iphoneos 2.0 -mllvm -arm-reserve-r9 arch armv7 arm-apple-darwin10 iphoneos iphoneos 2.0 arch armv7s arm-apple-darwin10 iphoneos iphoneos 2.0 arch arm64 aarch64-apple-darwin11 iphoneos iphoneos 2.0 @@ -61,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[@]}"