15daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris#!/bin/bash 25daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 35daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisif [[ "$OUT" == "" ]]; then 45daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris echo "In order for this script to function, please choose an x86_64 target" 55daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris echo "using source build/envsetup.sh and lunch XXX\n" 65daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris exit 1 75daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisfi 85daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 95daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisx86_64_cc="${ANDROID_TOOLCHAIN}/x86_64-linux-android-gcc" 105daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisx86_64_cpp="${ANDROID_TOOLCHAIN}/x86_64-linux-android-g++" 115daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 125daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisincludes=( 135daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libc/arch-x86_64/include" 145daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libc/include" 155daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libstdc++/include" 165daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libc/kernel/uapi" 175daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libc/kernel/uapi/asm-x86" 18fb1f094f163a3bf15d8958ba845e83559c0e6dfeChristopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libc/kernel/android/uapi" 195daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libm/include" 205daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-isystem ${ANDROID_BUILD_TOP}/bionic/libm/include/amd64" 215daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris) 225daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 235daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris# Copy libm.so to libpthread.so to allow -lpthread to work. 245daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferriscp ${OUT}/obj/lib/libm.so ${OUT}/obj/lib/libpthread.so 255daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 265daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferrisldflags=( 275daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-nostdlib" 285daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Bdynamic" 295daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-fPIE" 305daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-pie" 315daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-dynamic-linker,/system/bin/linker64" 325daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--gc-sections" 335daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-z,nocopyreloc" 345daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-L${OUT}/obj/lib" 355daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-rpath-link=${OUT}/obj/lib" 365daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "${OUT}/obj/lib/crtbegin_dynamic.o" 375daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--whole-archive" 385daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--no-whole-archive" 395daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-lc" 405daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-lstdc++" 415daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-lgcc" 425daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-lm" 435daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-z,noexecstack" 445daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-z,relro" 455daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,-z,now" 465daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--warn-shared-textrel" 475daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--fatal-warnings" 485daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--icf=safe" 495daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-Wl,--no-undefined" 505daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris "-ldl" 515daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris) 525daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 535daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferriseval ./configure CC=\"${x86_64_cc} ${includes[@]}\" \ 545daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris CPP=\"${x86_64_cc} ${includes[@]} -E\" \ 555daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris CXX=\"${x86_64_cpp} ${includes[@]}\" \ 565daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris CXXCPP=\"${x86_64_cpp} ${includes[@]} -E\" \ 575daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris LDFLAGS=\"${ldflags[@]}\" \ 585daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris --host=x86_64-android-linux \ 595daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris --disable-valgrind \ 605daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris --with-jemalloc_prefix=je_ \ 615daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7Christopher Ferris 62