From 7b6ba26178d2754568a1308d3d44e038e9ebf450 Mon Sep 17 00:00:00 2001 From: Cory Fields Date: Mon, 9 Dec 2019 10:42:09 -0500 Subject: [PATCH] depends: teach ld64 to actually insert BINDATLOAD --- depends/packages/native_cctools.mk | 5 ++++- depends/patches/native_cctools/bindatload.patch | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 depends/patches/native_cctools/bindatload.patch diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk index a065256c1c1ef..5b22e8f550169 100644 --- a/depends/packages/native_cctools.mk +++ b/depends/packages/native_cctools.mk @@ -10,6 +10,7 @@ $(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-lin $(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz $(package)_clang_sha256_hash=99b28a6b48e793705228a390471991386daa33a9717cd9ca007fcdde69608fd9 $(package)_extra_sources=$($(package)_clang_file_name) +$(package)_patches=bindatload.patch define $(package)_fetch_cmds $(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \ @@ -38,7 +39,9 @@ $(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++ endef define $(package)_preprocess_cmds - cd $($(package)_build_subdir); ./autogen.sh && \ + cd $($(package)_build_subdir) && \ + patch -p1 -i $($(package)_patch_dir)/bindatload.patch && \ + ./autogen.sh && \ sed -i.old "/define HAVE_PTHREADS/d" ld64/src/ld/InputFiles.h endef diff --git a/depends/patches/native_cctools/bindatload.patch b/depends/patches/native_cctools/bindatload.patch new file mode 100644 index 0000000000000..e155167f47777 --- /dev/null +++ b/depends/patches/native_cctools/bindatload.patch @@ -0,0 +1,12 @@ +diff -ruN cctools.old/ld64/src/ld/HeaderAndLoadCommands.hpp cctools/ld64/src/ld/HeaderAndLoadCommands.hpp +--- cctools.old/ld64/src/ld/HeaderAndLoadCommands.hpp 2019-12-09 09:55:15.571431615 -0500 ++++ cctools/ld64/src/ld/HeaderAndLoadCommands.hpp 2019-12-09 10:44:59.663686667 -0500 +@@ -675,6 +675,8 @@ + bits |= MH_FORCE_FLAT; + break; + } ++ if ( _options.bindAtLoad() ) ++ bits |= MH_BINDATLOAD; + if ( _state.hasWeakExternalSymbols || _writer.overridesWeakExternalSymbols ) + bits |= MH_WEAK_DEFINES; + if ( _writer.usesWeakExternalSymbols || _state.hasWeakExternalSymbols )