osxcross/patches/cctools-ld64-misc-fixes-2.patch

335 lines
12 KiB
Diff
Raw Normal View History

diff --git cctools/Makefile.am cctools/Makefile.am
index 9f69d04..be83f0a 100644
--- cctools/Makefile.am
+++ cctools/Makefile.am
@@ -1,7 +1,7 @@
if ISDARWIN
-SUBDIRS=libstuff ar as misc otool ld64 $(LD_CLASSIC)
+SUBDIRS=libstuff ar as misc otool ld64
else
-SUBDIRS=libstuff ar as misc libobjc2 otool ld64 $(LD_CLASSIC)
+SUBDIRS=libstuff ar as misc libobjc2 otool ld64
endif
ACLOCAL_AMFLAGS = -I m4
diff --git cctools/as/driver.c cctools/as/driver.c
index b06d085..92410c7 100644
--- cctools/as/driver.c
+++ cctools/as/driver.c
@@ -283,7 +283,7 @@ char **envp)
run_clang = 1;
#ifndef DISABLE_CLANG_AS /* cctools-port */
- if(getenv("NO_CLANG_AS") != NULL) /* cctools-port */
+ if(getenv("CCTOOLS_NO_CLANG_AS") != NULL) /* cctools-port */
run_clang = 0;
/*
@@ -298,9 +298,13 @@ char **envp)
arch_flag.cputype == CPU_TYPE_ARM)){
#if 0 /* cctools port */
as = makestr(prefix, CLANG, NULL);
-#else
- as = find_clang();
#endif
+ /* cctools-port start */
+#ifndef __APPLE__
+ char *target_triple = getenv("CCTOOLS_CLANG_AS_TARGET_TRIPLE");
+#endif /* ! __APPLE__ */
+ as = find_clang();
+ /* cctools-port end */
if(!as || access(as, F_OK) != 0){ /* cctools-port: added !as || */
printf("%s: assembler (%s) not installed\n", progname,
as ? as : "clang"); /* cctools-port:
@@ -364,10 +368,12 @@ char **envp)
new_argv[j] = "-c";
j++;
/* cctools-port start */
+#ifndef __APPLE__
new_argv[j] = "-target";
j++;
- new_argv[j] = "unknown-apple-darwin";
+ new_argv[j] = target_triple ? target_triple : "unknown-apple-darwin";
j++;
+#endif /* ! __APPLE__ */
/* cctools-port end */
new_argv[j] = NULL;
if(execute(new_argv, verbose))
diff --git cctools/configure.ac cctools/configure.ac
index 5219e3d..a6a3dd4 100644
--- cctools/configure.ac
+++ cctools/configure.ac
@@ -358,8 +358,6 @@ if test "x$isdarwin" != "xyes"; then
AC_CONFIG_FILES([libobjc2/Makefile])
fi
-AC_CONFIG_FILES([ld/Makefile])
-
AC_CONFIG_FILES([ld64/Makefile])
AC_CONFIG_FILES([ld64/src/Makefile])
AC_CONFIG_FILES([ld64/src/3rd/Makefile])
diff --git cctools/misc/Makefile.am cctools/misc/Makefile.am
index c0b7be8..5256aa2 100644
--- cctools/misc/Makefile.am
+++ cctools/misc/Makefile.am
@@ -16,7 +16,11 @@ bin_PROGRAMS = \
pagestuff \
ranlib \
codesign_allocate \
- bitcode_strip
+ bitcode_strip \
+ ctf_insert \
+ check_dylib \
+ cmpdylib \
+ inout
LDADD = \
$(top_builddir)/libstuff/libstuff.la \
@@ -46,3 +50,7 @@ ranlib_CFLAGS = -DRANLIB $(AM_CFLAGS)
codesign_allocate_SOURCES = codesign_allocate.c
bitcode_strip_SOURCES= bitcode_strip.c
bitcode_strip_CFLAGS = -DALLOW_ARCHIVES $(AM_CFLAGS)
+ctf_insert_SOURCES= ctf_insert.c
+check_dylib_SOURCES= check_dylib.c
+cmpdylib_SOURCES= cmpdylib.c
+inout_SOURCES= inout.c
diff --git usage_examples/ios_toolchain/README usage_examples/ios_toolchain/README
index ac51229..fc85462 100644
--- usage_examples/ios_toolchain/README
+++ usage_examples/ios_toolchain/README
@@ -7,7 +7,7 @@ USAGE:
Please ensure you have read and understood the Xcode license terms before
building this toolchain: https://www.apple.com/legal/sla/docs/xcode.pdf.
-./build.sh /path/to/sdk.tar.* <target cpu>
+[LLVM_DSYMUTIL=llvm-dsymutil] ./build.sh /path/to/sdk.tar.* <target cpu>
Target CPU should be one of armv6, armv7, armv7s and arm64.
diff --git usage_examples/ios_toolchain/build.sh usage_examples/ios_toolchain/build.sh
index 156c21f..a823fa3 100755
--- usage_examples/ios_toolchain/build.sh
+++ usage_examples/ios_toolchain/build.sh
@@ -5,6 +5,14 @@ pushd "${0%/*}" &>/dev/null
PLATFORM=$(uname -s)
+if [ -z "$LLVM_DSYMUTIL" ]; then
+ LLVM_DSYMUTIL=llvm-dsymutil
+fi
+
+if [ -z "$JOBS" ]; then
+ JOBS=$(nproc 2>/dev/null || ncpus 2>/dev/null || echo 1)
+fi
+
set -e
function verbose_cmd
@@ -29,7 +37,7 @@ function extract()
bzip2 -dc $1 | tar $tarflags -
;;
*)
- echo "unhandled archive type"
+ echo "unhandled archive type" 1>&2
exit 1
;;
esac
@@ -80,7 +88,26 @@ echo ""
echo "*** building wrapper ***"
echo ""
-echo "int main(){return 0;}" | cc -xc -O2 -o $TARGETDIR/bin/dsymutil -
+OK=0
+
+set +e
+which $LLVM_DSYMUTIL &>/dev/null
+if [ $? -eq 0 ]; then
+ case $($LLVM_DSYMUTIL --version | \
+ grep "LLVM version" | head -1 | awk '{print $3}') in
+ 3.8*|3.9*|4.0*) OK=1 ;;
+ esac
+fi
+set -e
+
+if [ $OK -eq 1 ]; then
+ ln -sf $(which $LLVM_DSYMUTIL) $TARGETDIR/bin/dsymutil
+ pushd $TARGETDIR/bin &>/dev/null
+ ln -sf $TRIPLE-lipo lipo
+ popd &>/dev/null
+else
+ echo "int main(){return 0;}" | cc -xc -O2 -o $TARGETDIR/bin/dsymutil -
+fi
verbose_cmd cc -O2 -Wall -Wextra -pedantic wrapper.c \
-DTARGET_CPU=\"\\\"$2\\\"\" \
@@ -100,7 +127,7 @@ mkdir -p tmp
pushd tmp &>/dev/null
git clone https://github.com/tpoechtrager/ldid.git
pushd ldid &>/dev/null
-make INSTALLPREFIX=$TARGETDIR -j4 install
+make INSTALLPREFIX=$TARGETDIR -j$JOBS install
popd &>/dev/null
popd &>/dev/null
@@ -112,7 +139,7 @@ pushd ../../cctools &>/dev/null
git clean -fdx . &>/dev/null || true
./autogen.sh
./configure --target=$TRIPLE --prefix=$TARGETDIR
-make -j4 && make install
+make -j$JOBS && make install
popd &>/dev/null
echo ""
--- cctools/configure
+++ cctools/configure
@@ -17722,9 +17722,6 @@
fi
-ac_config_files="$ac_config_files ld/Makefile"
-
-
ac_config_files="$ac_config_files ld64/Makefile"
ac_config_files="$ac_config_files ld64/src/Makefile"
@@ -18881,7 +18878,6 @@
"misc/Makefile") CONFIG_FILES="$CONFIG_FILES misc/Makefile" ;;
"otool/Makefile") CONFIG_FILES="$CONFIG_FILES otool/Makefile" ;;
"libobjc2/Makefile") CONFIG_FILES="$CONFIG_FILES libobjc2/Makefile" ;;
- "ld/Makefile") CONFIG_FILES="$CONFIG_FILES ld/Makefile" ;;
"ld64/Makefile") CONFIG_FILES="$CONFIG_FILES ld64/Makefile" ;;
"ld64/src/Makefile") CONFIG_FILES="$CONFIG_FILES ld64/src/Makefile" ;;
"ld64/src/3rd/Makefile") CONFIG_FILES="$CONFIG_FILES ld64/src/3rd/Makefile" ;;
2016-10-29 20:37:50 +02:00
--- cctools/misc/Makefile.in
+++ cctools/misc/Makefile.in
@@ -95,7 +95,8 @@
seg_hack$(EXEEXT) install_name_tool$(EXEEXT) indr$(EXEEXT) \
strip$(EXEEXT) nmedit$(EXEEXT) segedit$(EXEEXT) \
pagestuff$(EXEEXT) ranlib$(EXEEXT) codesign_allocate$(EXEEXT) \
- bitcode_strip$(EXEEXT)
+ bitcode_strip$(EXEEXT) ctf_insert$(EXEEXT) \
+ check_dylib$(EXEEXT) cmpdylib$(EXEEXT) inout$(EXEEXT)
subdir = misc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
@@ -123,21 +124,41 @@
bitcode_strip_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(bitcode_strip_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_check_dylib_OBJECTS = check_dylib.$(OBJEXT)
+check_dylib_OBJECTS = $(am_check_dylib_OBJECTS)
+check_dylib_LDADD = $(LDADD)
+check_dylib_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_checksyms_OBJECTS = checksyms.$(OBJEXT)
checksyms_OBJECTS = $(am_checksyms_OBJECTS)
checksyms_LDADD = $(LDADD)
checksyms_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_cmpdylib_OBJECTS = cmpdylib.$(OBJEXT)
+cmpdylib_OBJECTS = $(am_cmpdylib_OBJECTS)
+cmpdylib_LDADD = $(LDADD)
+cmpdylib_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_codesign_allocate_OBJECTS = codesign_allocate.$(OBJEXT)
codesign_allocate_OBJECTS = $(am_codesign_allocate_OBJECTS)
codesign_allocate_LDADD = $(LDADD)
codesign_allocate_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_ctf_insert_OBJECTS = ctf_insert.$(OBJEXT)
+ctf_insert_OBJECTS = $(am_ctf_insert_OBJECTS)
+ctf_insert_LDADD = $(LDADD)
+ctf_insert_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_indr_OBJECTS = indr.$(OBJEXT)
indr_OBJECTS = $(am_indr_OBJECTS)
indr_LDADD = $(LDADD)
indr_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am_inout_OBJECTS = inout.$(OBJEXT)
+inout_OBJECTS = $(am_inout_OBJECTS)
+inout_LDADD = $(LDADD)
+inout_DEPENDENCIES = $(top_builddir)/libstuff/libstuff.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_install_name_tool_OBJECTS = install_name_tool.$(OBJEXT)
install_name_tool_OBJECTS = $(am_install_name_tool_OBJECTS)
install_name_tool_LDADD = $(LDADD)
@@ -247,19 +268,21 @@
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
-SOURCES = $(bitcode_strip_SOURCES) $(checksyms_SOURCES) \
- $(codesign_allocate_SOURCES) $(indr_SOURCES) \
- $(install_name_tool_SOURCES) $(libtool_SOURCES) \
- $(lipo_SOURCES) $(nm_SOURCES) $(nmedit_SOURCES) \
- $(pagestuff_SOURCES) $(ranlib_SOURCES) \
+SOURCES = $(bitcode_strip_SOURCES) $(check_dylib_SOURCES) \
+ $(checksyms_SOURCES) $(cmpdylib_SOURCES) \
+ $(codesign_allocate_SOURCES) $(ctf_insert_SOURCES) \
+ $(indr_SOURCES) $(inout_SOURCES) $(install_name_tool_SOURCES) \
+ $(libtool_SOURCES) $(lipo_SOURCES) $(nm_SOURCES) \
+ $(nmedit_SOURCES) $(pagestuff_SOURCES) $(ranlib_SOURCES) \
$(redo_prebinding_SOURCES) $(seg_addr_table_SOURCES) \
$(seg_hack_SOURCES) $(segedit_SOURCES) $(size_SOURCES) \
$(strings_SOURCES) $(strip_SOURCES)
-DIST_SOURCES = $(bitcode_strip_SOURCES) $(checksyms_SOURCES) \
- $(codesign_allocate_SOURCES) $(indr_SOURCES) \
- $(install_name_tool_SOURCES) $(libtool_SOURCES) \
- $(lipo_SOURCES) $(nm_SOURCES) $(nmedit_SOURCES) \
- $(pagestuff_SOURCES) $(ranlib_SOURCES) \
+DIST_SOURCES = $(bitcode_strip_SOURCES) $(check_dylib_SOURCES) \
+ $(checksyms_SOURCES) $(cmpdylib_SOURCES) \
+ $(codesign_allocate_SOURCES) $(ctf_insert_SOURCES) \
+ $(indr_SOURCES) $(inout_SOURCES) $(install_name_tool_SOURCES) \
+ $(libtool_SOURCES) $(lipo_SOURCES) $(nm_SOURCES) \
+ $(nmedit_SOURCES) $(pagestuff_SOURCES) $(ranlib_SOURCES) \
$(redo_prebinding_SOURCES) $(seg_addr_table_SOURCES) \
$(seg_hack_SOURCES) $(segedit_SOURCES) $(size_SOURCES) \
$(strings_SOURCES) $(strip_SOURCES)
@@ -460,6 +483,10 @@
codesign_allocate_SOURCES = codesign_allocate.c
bitcode_strip_SOURCES = bitcode_strip.c
bitcode_strip_CFLAGS = -DALLOW_ARCHIVES $(AM_CFLAGS)
+ctf_insert_SOURCES = ctf_insert.c
+check_dylib_SOURCES = check_dylib.c
+cmpdylib_SOURCES = cmpdylib.c
+inout_SOURCES = inout.c
all: all-am
.SUFFIXES:
@@ -547,18 +574,34 @@
@rm -f bitcode_strip$(EXEEXT)
$(AM_V_CCLD)$(bitcode_strip_LINK) $(bitcode_strip_OBJECTS) $(bitcode_strip_LDADD) $(LIBS)
+check_dylib$(EXEEXT): $(check_dylib_OBJECTS) $(check_dylib_DEPENDENCIES) $(EXTRA_check_dylib_DEPENDENCIES)
+ @rm -f check_dylib$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(check_dylib_OBJECTS) $(check_dylib_LDADD) $(LIBS)
+
checksyms$(EXEEXT): $(checksyms_OBJECTS) $(checksyms_DEPENDENCIES) $(EXTRA_checksyms_DEPENDENCIES)
@rm -f checksyms$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(checksyms_OBJECTS) $(checksyms_LDADD) $(LIBS)
+cmpdylib$(EXEEXT): $(cmpdylib_OBJECTS) $(cmpdylib_DEPENDENCIES) $(EXTRA_cmpdylib_DEPENDENCIES)
+ @rm -f cmpdylib$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(cmpdylib_OBJECTS) $(cmpdylib_LDADD) $(LIBS)
+
codesign_allocate$(EXEEXT): $(codesign_allocate_OBJECTS) $(codesign_allocate_DEPENDENCIES) $(EXTRA_codesign_allocate_DEPENDENCIES)
@rm -f codesign_allocate$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(codesign_allocate_OBJECTS) $(codesign_allocate_LDADD) $(LIBS)
+ctf_insert$(EXEEXT): $(ctf_insert_OBJECTS) $(ctf_insert_DEPENDENCIES) $(EXTRA_ctf_insert_DEPENDENCIES)
+ @rm -f ctf_insert$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ctf_insert_OBJECTS) $(ctf_insert_LDADD) $(LIBS)
+
indr$(EXEEXT): $(indr_OBJECTS) $(indr_DEPENDENCIES) $(EXTRA_indr_DEPENDENCIES)
@rm -f indr$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(indr_OBJECTS) $(indr_LDADD) $(LIBS)
+inout$(EXEEXT): $(inout_OBJECTS) $(inout_DEPENDENCIES) $(EXTRA_inout_DEPENDENCIES)
+ @rm -f inout$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(inout_OBJECTS) $(inout_LDADD) $(LIBS)
+
install_name_tool$(EXEEXT): $(install_name_tool_OBJECTS) $(install_name_tool_DEPENDENCIES) $(EXTRA_install_name_tool_DEPENDENCIES)
@rm -f install_name_tool$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(install_name_tool_OBJECTS) $(install_name_tool_LDADD) $(LIBS)