aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2005-09-28 23:50:06 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2005-09-28 23:50:06 +0000
commit040b1c5a5c6ac7129b0087ac9563090b03b649a8 (patch)
tree4a941b503e4d5d57010b144fc9e315a3f4ffc9c6
parentc7d0307027c14f6d4e64692118df456fbd6dd6e5 (diff)
downloadgcc-040b1c5a5c6ac7129b0087ac9563090b03b649a8.zip
gcc-040b1c5a5c6ac7129b0087ac9563090b03b649a8.tar.gz
gcc-040b1c5a5c6ac7129b0087ac9563090b03b649a8.tar.bz2
Index: ChangeLog
2005-09-28 Geoffrey Keating <geoffk@apple.com> * Makefile.tpl (BASE_TARGET_EXPORTS): Add LIPO, STRIP. (LIPO_FOR_TARGET): New. (CONFIGURED_LIPO_FOR_TARGET): New. (USUAL_LIPO_FOR_TARGET): New. (STRIP_FOR_TARGET): New. (CONFIGURED_STRIP_FOR_TARGET): New. (USUAL_STRIP_FOR_TARGET): New. * Makefile.def (flags_to_pass): Add LIPO_FOR_TARGET and STRIP_FOR_TARGET. * configure.in: Set LIPO_FOR_TARGET, STRIP_FOR_TARGET, CONFIGURED_LIPO_FOR_TARGET, CONFIGURED_STRIP_FOR_TARGET. * Makefile.in: Regenerate. * configure.in: Regenerate. Index: gcc/ChangeLog 2005-09-28 Geoffrey Keating <geoffk@apple.com> * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET. (stage1-start): Delete old libgcc and libunwind before moving anything into the stage directory. (stage2-start): Likewise. (stage3-start): Likewise. (stage4-start): Likewise. (stageprofile-start): Likewise. (stagefeedback-start): Likewise. * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h header in tm_file and CPU-specific t-darwin in tmake_file. (i[34567]86-*-darwin*): Don't change tm_file. (powerpc-*-darwin*): Don't change tm_file or tmake_file. * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc shared library stub for target OS version. * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete. (SHLIB_LINK): Don't make SHLIB_SOLINK. (SHLIB_INSTALL): Don't install SHLIB_SOLINK. (libgcc_s.%.dylib): New. (LIBGCC): Define. (install-darwin-libgcc-stubs): New. (INSTALL_LIBGCC): New append. * config/i386/darwin-libgcc.10.4.ver: New. * config/i386/darwin-libgcc.10.5.ver: New. * config/i386/t-darwin: New. * config/rs6000/darwin-libgcc.10.4.ver: New. * config/rs6000/darwin-libgcc.10.5.ver: New. * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete. * config/rs6000/t-darwin (SHLIB_VERPFX): Define. From-SVN: r104747
-rw-r--r--ChangeLog16
-rw-r--r--Makefile.def2
-rw-r--r--Makefile.in34
-rw-r--r--Makefile.tpl32
-rwxr-xr-xconfigure176
-rw-r--r--configure.in10
-rw-r--r--gcc/ChangeLog31
-rw-r--r--gcc/Makefile.in40
-rw-r--r--gcc/config.gcc8
-rw-r--r--gcc/config/darwin.h17
-rw-r--r--gcc/config/i386/darwin-libgcc.10.4.ver81
-rw-r--r--gcc/config/i386/darwin-libgcc.10.5.ver81
-rw-r--r--gcc/config/i386/t-darwin1
-rw-r--r--gcc/config/rs6000/darwin-libgcc.10.4.ver76
-rw-r--r--gcc/config/rs6000/darwin-libgcc.10.5.ver85
-rw-r--r--gcc/config/rs6000/darwin.h8
-rw-r--r--gcc/config/rs6000/t-darwin2
17 files changed, 654 insertions, 46 deletions
diff --git a/ChangeLog b/ChangeLog
index 31e780c..65f3e08 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2005-09-28 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.tpl (BASE_TARGET_EXPORTS): Add LIPO, STRIP.
+ (LIPO_FOR_TARGET): New.
+ (CONFIGURED_LIPO_FOR_TARGET): New.
+ (USUAL_LIPO_FOR_TARGET): New.
+ (STRIP_FOR_TARGET): New.
+ (CONFIGURED_STRIP_FOR_TARGET): New.
+ (USUAL_STRIP_FOR_TARGET): New.
+ * Makefile.def (flags_to_pass): Add LIPO_FOR_TARGET and
+ STRIP_FOR_TARGET.
+ * configure.in: Set LIPO_FOR_TARGET, STRIP_FOR_TARGET,
+ CONFIGURED_LIPO_FOR_TARGET, CONFIGURED_STRIP_FOR_TARGET.
+ * Makefile.in: Regenerate.
+ * configure: Regenerate.
+
2005-09-19 David Edelsohn <edelsohn@gnu.org>
* configure.in (powerpc-*-aix*): Add target-libssp to noconfigdirs.
diff --git a/Makefile.def b/Makefile.def
index 2eed19d..9ad197e 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -223,11 +223,13 @@ flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
flags_to_pass = { flag= GCJ_FOR_TARGET ; };
flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; };
flags_to_pass = { flag= LD_FOR_TARGET ; };
+flags_to_pass = { flag= LIPO_FOR_TARGET ; };
flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LIBCFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= LIBCXXFLAGS_FOR_TARGET ; };
flags_to_pass = { flag= NM_FOR_TARGET ; };
flags_to_pass = { flag= RANLIB_FOR_TARGET ; };
+flags_to_pass = { flag= STRIP_FOR_TARGET ; };
flags_to_pass = { flag= WINDRES_FOR_TARGET ; };
// Inter-module dependencies
diff --git a/Makefile.in b/Makefile.in
index 3c1e0a1..d5f7170 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -192,8 +192,10 @@ BASE_TARGET_EXPORTS = \
DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
LD="$(LD_FOR_TARGET)"; export LD; \
LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \
NM="$(NM_FOR_TARGET)"; export NM; \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+ STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
$(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
@@ -478,6 +480,19 @@ USUAL_LD_FOR_TARGET = ` \
LDFLAGS_FOR_TARGET =
+LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
+CONFIGURED_LIPO_FOR_TARGET=@CONFIGURED_LIPO_FOR_TARGET@
+USUAL_LIPO_FOR_TARGET = ` \
+ if [ '$(host)' = '$(target)' ] ; then \
+ if [ x'$(LIPO)' != x ]; then \
+ echo $(LIPO); \
+ else \
+ echo lipo; \
+ fi; \
+ else \
+ echo $(CONFIGURED_LIPO_FOR_TARGET) ; \
+ fi`
+
NM_FOR_TARGET=@NM_FOR_TARGET@
CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
USUAL_NM_FOR_TARGET = ` \
@@ -510,6 +525,23 @@ USUAL_RANLIB_FOR_TARGET = ` \
fi; \
fi`
+STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
+CONFIGURED_STRIP_FOR_TARGET=@CONFIGURED_STRIP_FOR_TARGET@
+USUAL_STRIP_FOR_TARGET = ` \
+ if [ -f $$r/$(HOST_SUBDIR)/binutils/strip ] ; then \
+ echo $$r/$(HOST_SUBDIR)/binutils/strip ; \
+ else \
+ if [ '$(host)' = '$(target)' ] ; then \
+ if [ x'$(STRIP)' != x ]; then \
+ echo $(STRIP); \
+ else \
+ echo strip; \
+ fi; \
+ else \
+ echo $(CONFIGURED_STRIP_FOR_TARGET) ; \
+ fi; \
+ fi`
+
WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
CONFIGURED_WINDRES_FOR_TARGET=@CONFIGURED_WINDRES_FOR_TARGET@
USUAL_WINDRES_FOR_TARGET = ` \
@@ -636,11 +668,13 @@ BASE_FLAGS_TO_PASS = \
"GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
"GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
"LD_FOR_TARGET=$(LD_FOR_TARGET)" \
+ "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \
"LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
+ "STRIP_FOR_TARGET=$(STRIP_FOR_TARGET)" \
"WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
"CONFIG_SHELL=$(SHELL)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)"
diff --git a/Makefile.tpl b/Makefile.tpl
index f8a120c..2413c0f 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -195,8 +195,10 @@ BASE_TARGET_EXPORTS = \
DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
LD="$(LD_FOR_TARGET)"; export LD; \
LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+ LIPO="$(LIPO_FOR_TARGET)"; export LIPO; \
NM="$(NM_FOR_TARGET)"; export NM; \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
+ STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
$(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
@@ -481,6 +483,19 @@ USUAL_LD_FOR_TARGET = ` \
LDFLAGS_FOR_TARGET =
+LIPO_FOR_TARGET=@LIPO_FOR_TARGET@
+CONFIGURED_LIPO_FOR_TARGET=@CONFIGURED_LIPO_FOR_TARGET@
+USUAL_LIPO_FOR_TARGET = ` \
+ if [ '$(host)' = '$(target)' ] ; then \
+ if [ x'$(LIPO)' != x ]; then \
+ echo $(LIPO); \
+ else \
+ echo lipo; \
+ fi; \
+ else \
+ echo $(CONFIGURED_LIPO_FOR_TARGET) ; \
+ fi`
+
NM_FOR_TARGET=@NM_FOR_TARGET@
CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@
USUAL_NM_FOR_TARGET = ` \
@@ -513,6 +528,23 @@ USUAL_RANLIB_FOR_TARGET = ` \
fi; \
fi`
+STRIP_FOR_TARGET=@STRIP_FOR_TARGET@
+CONFIGURED_STRIP_FOR_TARGET=@CONFIGURED_STRIP_FOR_TARGET@
+USUAL_STRIP_FOR_TARGET = ` \
+ if [ -f $$r/$(HOST_SUBDIR)/binutils/strip ] ; then \
+ echo $$r/$(HOST_SUBDIR)/binutils/strip ; \
+ else \
+ if [ '$(host)' = '$(target)' ] ; then \
+ if [ x'$(STRIP)' != x ]; then \
+ echo $(STRIP); \
+ else \
+ echo strip; \
+ fi; \
+ else \
+ echo $(CONFIGURED_STRIP_FOR_TARGET) ; \
+ fi; \
+ fi`
+
WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@
CONFIGURED_WINDRES_FOR_TARGET=@CONFIGURED_WINDRES_FOR_TARGET@
USUAL_WINDRES_FOR_TARGET = ` \
diff --git a/configure b/configure
index 0ce877d..28ef316 100755
--- a/configure
+++ b/configure
@@ -4858,12 +4858,87 @@ if test -z "$ac_cv_prog_LD_FOR_TARGET" ; then
fi
fi
- for ncn_progname in nm; do
+ for ncn_progname in lipo; do
if test -n "$ncn_target_tool_prefix"; then
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:4867: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$LIPO_FOR_TARGET"; then
+ ac_cv_prog_LIPO_FOR_TARGET="$LIPO_FOR_TARGET" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_LIPO_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+LIPO_FOR_TARGET="$ac_cv_prog_LIPO_FOR_TARGET"
+if test -n "$LIPO_FOR_TARGET"; then
+ echo "$ac_t""$LIPO_FOR_TARGET" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ if test -z "$ac_cv_prog_LIPO_FOR_TARGET" && test $build = $target ; then
+ # Extract the first word of "${ncn_progname}", so it can be a program name with args.
+set dummy ${ncn_progname}; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4898: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LIPO_FOR_TARGET'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$LIPO_FOR_TARGET"; then
+ ac_cv_prog_LIPO_FOR_TARGET="$LIPO_FOR_TARGET" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_LIPO_FOR_TARGET="${ncn_progname}"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+LIPO_FOR_TARGET="$ac_cv_prog_LIPO_FOR_TARGET"
+if test -n "$LIPO_FOR_TARGET"; then
+ echo "$ac_t""$LIPO_FOR_TARGET" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ test -n "$ac_cv_prog_LIPO_FOR_TARGET" && break
+done
+
+if test -z "$ac_cv_prog_LIPO_FOR_TARGET" ; then
+ set dummy lipo
+ if test $build = $target ; then
+ LIPO_FOR_TARGET="$2"
+ else
+ LIPO_FOR_TARGET="${ncn_target_tool_prefix}$2"
+ fi
+fi
+
+ for ncn_progname in nm; do
+ if test -n "$ncn_target_tool_prefix"; then
+ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
+set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4942: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4894,7 +4969,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4898: checking for $ac_word" >&5
+echo "configure:4973: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4938,7 +5013,7 @@ fi
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4942: checking for $ac_word" >&5
+echo "configure:5017: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4969,7 +5044,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4973: checking for $ac_word" >&5
+echo "configure:5048: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5003,12 +5078,87 @@ if test -z "$ac_cv_prog_RANLIB_FOR_TARGET" ; then
RANLIB_FOR_TARGET=":"
fi
+ for ncn_progname in strip; do
+ if test -n "$ncn_target_tool_prefix"; then
+ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
+set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:5087: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP_FOR_TARGET"; then
+ ac_cv_prog_STRIP_FOR_TARGET="$STRIP_FOR_TARGET" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+STRIP_FOR_TARGET="$ac_cv_prog_STRIP_FOR_TARGET"
+if test -n "$STRIP_FOR_TARGET"; then
+ echo "$ac_t""$STRIP_FOR_TARGET" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ if test -z "$ac_cv_prog_STRIP_FOR_TARGET" && test $build = $target ; then
+ # Extract the first word of "${ncn_progname}", so it can be a program name with args.
+set dummy ${ncn_progname}; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:5118: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP_FOR_TARGET'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$STRIP_FOR_TARGET"; then
+ ac_cv_prog_STRIP_FOR_TARGET="$STRIP_FOR_TARGET" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_STRIP_FOR_TARGET="${ncn_progname}"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+STRIP_FOR_TARGET="$ac_cv_prog_STRIP_FOR_TARGET"
+if test -n "$STRIP_FOR_TARGET"; then
+ echo "$ac_t""$STRIP_FOR_TARGET" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ fi
+ test -n "$ac_cv_prog_STRIP_FOR_TARGET" && break
+done
+
+if test -z "$ac_cv_prog_STRIP_FOR_TARGET" ; then
+ set dummy strip
+ if test $build = $target ; then
+ STRIP_FOR_TARGET="$2"
+ else
+ STRIP_FOR_TARGET="${ncn_target_tool_prefix}$2"
+ fi
+fi
+
for ncn_progname in windres; do
if test -n "$ncn_target_tool_prefix"; then
# Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5012: checking for $ac_word" >&5
+echo "configure:5162: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5039,7 +5189,7 @@ fi
# Extract the first word of "${ncn_progname}", so it can be a program name with args.
set dummy ${ncn_progname}; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5043: checking for $ac_word" >&5
+echo "configure:5193: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_WINDRES_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5088,8 +5238,10 @@ CONFIGURED_GCC_FOR_TARGET="$GCC_FOR_TARGET"
CONFIGURED_GCJ_FOR_TARGET="$GCJ_FOR_TARGET"
CONFIGURED_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET"
CONFIGURED_LD_FOR_TARGET="$LD_FOR_TARGET"
+CONFIGURED_LIPO_FOR_TARGET="$LIPO_FOR_TARGET"
CONFIGURED_NM_FOR_TARGET="$NM_FOR_TARGET"
CONFIGURED_RANLIB_FOR_TARGET="$RANLIB_FOR_TARGET"
+CONFIGURED_STRIP_FOR_TARGET="$STRIP_FOR_TARGET"
CONFIGURED_WINDRES_FOR_TARGET="$WINDRES_FOR_TARGET"
@@ -5112,8 +5264,10 @@ if test "x${build}" = "x${host}" ; then
GCJ_FOR_TARGET="\$(USUAL_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(USUAL_GFORTRAN_FOR_TARGET)"
LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
+ LIPO_FOR_TARGET="\$(USUAL_LIPO_FOR_TARGET)"
NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
+ STRIP_FOR_TARGET="\$(USUAL_STRIP_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
else
# Just use the ones we found.
@@ -5127,8 +5281,10 @@ else
GCJ_FOR_TARGET="\$(CONFIGURED_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(CONFIGURED_GFORTRAN_FOR_TARGET)"
LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)"
+ LIPO_FOR_TARGET="\$(CONFIGURED_LIPO_FOR_TARGET)"
NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)"
+ STRIP_FOR_TARGET="\$(CONFIGURED_STRIP_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)"
fi
@@ -5140,7 +5296,7 @@ RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:5144: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:5300: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@@ -5187,7 +5343,7 @@ esac
# gcc for stageN-gcc and stagePREV-gcc for stage(N-1). In case this is not
# possible, however, we can resort to mv.
echo $ac_n "checking if symbolic links between directories work""... $ac_c" 1>&6
-echo "configure:5191: checking if symbolic links between directories work" >&5
+echo "configure:5347: checking if symbolic links between directories work" >&5
if eval "test \"`echo '$''{'gcc_cv_prog_ln_s_dir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5463,8 +5619,10 @@ s%@GCC_FOR_TARGET@%$GCC_FOR_TARGET%g
s%@GCJ_FOR_TARGET@%$GCJ_FOR_TARGET%g
s%@GFORTRAN_FOR_TARGET@%$GFORTRAN_FOR_TARGET%g
s%@LD_FOR_TARGET@%$LD_FOR_TARGET%g
+s%@LIPO_FOR_TARGET@%$LIPO_FOR_TARGET%g
s%@NM_FOR_TARGET@%$NM_FOR_TARGET%g
s%@RANLIB_FOR_TARGET@%$RANLIB_FOR_TARGET%g
+s%@STRIP_FOR_TARGET@%$STRIP_FOR_TARGET%g
s%@WINDRES_FOR_TARGET@%$WINDRES_FOR_TARGET%g
s%@CONFIGURED_AR_FOR_TARGET@%$CONFIGURED_AR_FOR_TARGET%g
s%@CONFIGURED_AS_FOR_TARGET@%$CONFIGURED_AS_FOR_TARGET%g
@@ -5475,8 +5633,10 @@ s%@CONFIGURED_GCC_FOR_TARGET@%$CONFIGURED_GCC_FOR_TARGET%g
s%@CONFIGURED_GCJ_FOR_TARGET@%$CONFIGURED_GCJ_FOR_TARGET%g
s%@CONFIGURED_GFORTRAN_FOR_TARGET@%$CONFIGURED_GFORTRAN_FOR_TARGET%g
s%@CONFIGURED_LD_FOR_TARGET@%$CONFIGURED_LD_FOR_TARGET%g
+s%@CONFIGURED_LIPO_FOR_TARGET@%$CONFIGURED_LIPO_FOR_TARGET%g
s%@CONFIGURED_NM_FOR_TARGET@%$CONFIGURED_NM_FOR_TARGET%g
s%@CONFIGURED_RANLIB_FOR_TARGET@%$CONFIGURED_RANLIB_FOR_TARGET%g
+s%@CONFIGURED_STRIP_FOR_TARGET@%$CONFIGURED_STRIP_FOR_TARGET%g
s%@CONFIGURED_WINDRES_FOR_TARGET@%$CONFIGURED_WINDRES_FOR_TARGET%g
s%@FLAGS_FOR_TARGET@%$FLAGS_FOR_TARGET%g
s%@RAW_CXX_FOR_TARGET@%$RAW_CXX_FOR_TARGET%g
diff --git a/configure.in b/configure.in
index b10313f..91e8cf2 100644
--- a/configure.in
+++ b/configure.in
@@ -2116,8 +2116,10 @@ NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
NCN_STRICT_CHECK_TARGET_TOOLS(LD_FOR_TARGET, ld)
+NCN_STRICT_CHECK_TARGET_TOOLS(LIPO_FOR_TARGET, lipo)
NCN_STRICT_CHECK_TARGET_TOOLS(NM_FOR_TARGET, nm)
NCN_STRICT_CHECK_TARGET_TOOLS(RANLIB_FOR_TARGET, ranlib, :)
+NCN_STRICT_CHECK_TARGET_TOOLS(STRIP_FOR_TARGET, strip)
NCN_STRICT_CHECK_TARGET_TOOLS(WINDRES_FOR_TARGET, windres)
CONFIGURED_AR_FOR_TARGET="$AR_FOR_TARGET"
@@ -2129,8 +2131,10 @@ CONFIGURED_GCC_FOR_TARGET="$GCC_FOR_TARGET"
CONFIGURED_GCJ_FOR_TARGET="$GCJ_FOR_TARGET"
CONFIGURED_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET"
CONFIGURED_LD_FOR_TARGET="$LD_FOR_TARGET"
+CONFIGURED_LIPO_FOR_TARGET="$LIPO_FOR_TARGET"
CONFIGURED_NM_FOR_TARGET="$NM_FOR_TARGET"
CONFIGURED_RANLIB_FOR_TARGET="$RANLIB_FOR_TARGET"
+CONFIGURED_STRIP_FOR_TARGET="$STRIP_FOR_TARGET"
CONFIGURED_WINDRES_FOR_TARGET="$WINDRES_FOR_TARGET"
AC_SUBST(CONFIGURED_AR_FOR_TARGET)dnl
@@ -2142,8 +2146,10 @@ AC_SUBST(CONFIGURED_GCC_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_GCJ_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_GFORTRAN_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_LD_FOR_TARGET)dnl
+AC_SUBST(CONFIGURED_LIPO_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_NM_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_RANLIB_FOR_TARGET)dnl
+AC_SUBST(CONFIGURED_STRIP_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_WINDRES_FOR_TARGET)dnl
AC_SUBST(FLAGS_FOR_TARGET)
@@ -2165,8 +2171,10 @@ if test "x${build}" = "x${host}" ; then
GCJ_FOR_TARGET="\$(USUAL_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(USUAL_GFORTRAN_FOR_TARGET)"
LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
+ LIPO_FOR_TARGET="\$(USUAL_LIPO_FOR_TARGET)"
NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
+ STRIP_FOR_TARGET="\$(USUAL_STRIP_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
else
# Just use the ones we found.
@@ -2180,8 +2188,10 @@ else
GCJ_FOR_TARGET="\$(CONFIGURED_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(CONFIGURED_GFORTRAN_FOR_TARGET)"
LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)"
+ LIPO_FOR_TARGET="\$(CONFIGURED_LIPO_FOR_TARGET)"
NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)"
+ STRIP_FOR_TARGET="\$(CONFIGURED_STRIP_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)"
fi
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6cce8e8..db55afa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,34 @@
+2005-09-28 Geoffrey Keating <geoffk@apple.com>
+
+ * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
+ (stage1-start): Delete old libgcc and libunwind before moving
+ anything into the stage directory.
+ (stage2-start): Likewise.
+ (stage3-start): Likewise.
+ (stage4-start): Likewise.
+ (stageprofile-start): Likewise.
+ (stagefeedback-start): Likewise.
+ * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
+ header in tm_file and CPU-specific t-darwin in tmake_file.
+ (i[34567]86-*-darwin*): Don't change tm_file.
+ (powerpc-*-darwin*): Don't change tm_file or tmake_file.
+ * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
+ shared library stub for target OS version.
+ * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
+ (SHLIB_LINK): Don't make SHLIB_SOLINK.
+ (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
+ (libgcc_s.%.dylib): New.
+ (LIBGCC): Define.
+ (install-darwin-libgcc-stubs): New.
+ (INSTALL_LIBGCC): New append.
+ * config/i386/darwin-libgcc.10.4.ver: New.
+ * config/i386/darwin-libgcc.10.5.ver: New.
+ * config/i386/t-darwin: New.
+ * config/rs6000/darwin-libgcc.10.4.ver: New.
+ * config/rs6000/darwin-libgcc.10.5.ver: New.
+ * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
+ * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
+
2005-09-28 Paul Brook <paul@codesourcery.com>
* config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 33056ee..cd6533b 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -863,8 +863,10 @@ export INCLUDES
export INSTALL_DATA
export LIB1ASMSRC
export LIBGCC2_CFLAGS
+export LIPO_FOR_TARGET
export MACHMODE_H
export NM_FOR_TARGET
+export STRIP_FOR_TARGET
export RANLIB_FOR_TARGET
export libsubdir
export slibdir
@@ -4283,6 +4285,9 @@ stage1-start:
do \
if [ -d stage1/$$dir ] ; then true ; else mkdir stage1/$$dir ; fi ; \
done
+ -rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
+ -rm -f stage1/libgcc_s*$(SHLIB_EXT)
+ -rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
# If SPECS is overridden, make sure it is `installed' as specs.
-mv $(SPECS) stage1/specs
-mv $(STAGEMOVESTUFF) stage1
@@ -4293,9 +4298,6 @@ stage1-start:
-if [ -f as$(exeext) ] ; then (cd stage1 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage1 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage1/libgcc.a stage1/libgcc_eh.a stage1/libgcov.a
- -rm -f stage1/libgcc_s*$(SHLIB_EXT)
- -rm -f stage1/libunwind.a stage1/libunwind*$(SHLIB_EXT)
-cp libgcc.a stage1
-$(RANLIB_FOR_TARGET) stage1/libgcc.a
-cp libgcov.a stage1
@@ -4322,6 +4324,9 @@ stage2-start:
do \
if [ -d stage2/$$dir ] ; then true ; else mkdir stage2/$$dir ; fi ; \
done
+ -rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
+ -rm -f stage2/libgcc_s*$(SHLIB_EXT)
+ -rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
# If SPECS is overridden, make sure it is `installed' as specs.
-mv $(SPECS) stage2/specs
-mv $(STAGEMOVESTUFF) stage2
@@ -4332,9 +4337,6 @@ stage2-start:
-if [ -f as$(exeext) ] ; then (cd stage2 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage2 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage2/libgcc.a stage2/libgcov.a stage2/libgcc_eh.a
- -rm -f stage2/libgcc_s*$(SHLIB_EXT)
- -rm -f stage2/libunwind.a stage2/libunwind*$(SHLIB_EXT)
-cp libgcc.a stage2
-$(RANLIB_FOR_TARGET) stage2/libgcc.a
-cp libgcov.a stage2
@@ -4357,6 +4359,9 @@ stage3-start:
do \
if [ -d stage3/$$dir ] ; then true ; else mkdir stage3/$$dir ; fi ; \
done
+ -rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
+ -rm -f stage3/libgcc_s*$(SHLIB_EXT)
+ -rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
# If SPECS is overridden, make sure it is `installed' as specs.
-mv $(SPECS) stage3/specs
-mv $(STAGEMOVESTUFF) stage3
@@ -4367,9 +4372,6 @@ stage3-start:
-if [ -f as$(exeext) ] ; then (cd stage3 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage3 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage3/libgcc.a stage3/libgcov.a stage3/libgcc_eh.a
- -rm -f stage3/libgcc_s*$(SHLIB_EXT)
- -rm -f stage3/libunwind.a stage3/libunwind*$(SHLIB_EXT)
-cp libgcc.a stage3
-$(RANLIB_FOR_TARGET) stage3/libgcc.a
-cp libgcov.a stage3
@@ -4392,6 +4394,9 @@ stage4-start:
do \
if [ -d stage4/$$dir ] ; then true ; else mkdir stage4/$$dir ; fi ; \
done
+ -rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
+ -rm -f stage4/libgcc_s*$(SHLIB_EXT)
+ -rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
# If SPECS is overridden, make sure it is `installed' as specs.
-mv $(SPECS) stage4/specs
-mv $(STAGEMOVESTUFF) stage4
@@ -4402,9 +4407,6 @@ stage4-start:
-if [ -f as$(exeext) ] ; then (cd stage4 && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stage4 && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stage4/libgcc.a stage4/libgcov.a stage4/libgcc_eh.a
- -rm -f stage4/libgcc_s*$(SHLIB_EXT)
- -rm -f stage4/libunwind.a stage4/libunwind*$(SHLIB_EXT)
-cp libgcc.a stage4
-$(RANLIB_FOR_TARGET) stage4/libgcc.a
-cp libgcov.a stage4
@@ -4427,6 +4429,9 @@ stageprofile-start:
do \
if [ -d stageprofile/$$dir ] ; then true ; else mkdir stageprofile/$$dir ; fi ; \
done
+ -rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
+ -rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
+ -rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
-mv $(STAGEMOVESTUFF) stageprofile
-mv build/* stageprofile/build
-cp -p $(STAGECOPYSTUFF) stageprofile
@@ -4435,9 +4440,6 @@ stageprofile-start:
-if [ -f as$(exeext) ] ; then (cd stageprofile && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stageprofile && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stageprofile/libgcc.a stageprofile/libgcov.a stageprofile/libgcc_eh.a
- -rm -f stageprofile/libgcc_s*$(SHLIB_EXT)
- -rm -f stageprofile/libunwind.a stageprofile/libunwind*$(SHLIB_EXT)
-cp libgcc.a stageprofile
-$(RANLIB_FOR_TARGET) stageprofile/libgcc.a
-cp libgcov.a stageprofile
@@ -4460,6 +4462,10 @@ stagefeedback-start:
do \
if [ -d stagefeedback/$$dir ] ; then true ; else mkdir stagefeedback/$$dir ; fi ; \
done
+ -rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
+ -rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
+ -rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
+ -rm -f *.da
-mv $(STAGEMOVESTUFF) stagefeedback
-mv build/* stagefeedback/build
-cp -p $(STAGECOPYSTUFF) stagefeedback
@@ -4468,10 +4474,6 @@ stagefeedback-start:
-if [ -f as$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../as$(exeext) .) ; else true ; fi
-if [ -f ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../ld$(exeext) .) ; else true ; fi
-if [ -f collect-ld$(exeext) ] ; then (cd stagefeedback && $(LN_S) ../collect-ld$(exeext) .) ; else true ; fi
- -rm -f stagefeedback/libgcc.a stagefeedback/libgcov.a stagefeedback/libgcc_eh.a
- -rm -f stagefeedback/libgcc_s*$(SHLIB_EXT)
- -rm -f stagefeedback/libunwind.a stagefeedback/libunwind*$(SHLIB_EXT)
- -rm -f *.da
-for dir in fixinc po testsuite $(SUBDIRS); \
do \
rm -f $$dir/*.da ; \
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 5b1b2e1..cdfc66e 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -356,9 +356,9 @@ esac
# Common parts for widely ported systems.
case ${target} in
*-*-darwin*)
- tm_file="${tm_file} darwin.h"
+ tm_file="${tm_file} darwin.h ${cpu_type}/darwin.h"
tm_p_file="${tm_p_file} darwin-protos.h"
- tmake_file="t-darwin t-slibgcc-darwin"
+ tmake_file="t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin"
target_gtfiles="\$(srcdir)/config/darwin.c"
extra_options="${extra_options} darwin.opt"
c_target_objs="darwin-c.o"
@@ -949,7 +949,7 @@ hppa[12]*-*-hpux11*)
use_collect2=yes
;;
i[34567]86-*-darwin*)
- tm_file="${tm_file} i386/darwin.h"
+ # All the configuration is presently done generically.
;;
i[34567]86-*-elf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
@@ -1611,8 +1611,6 @@ powerpc-*-beos*)
use_fixproto=yes
;;
powerpc-*-darwin*)
- tm_file="${tm_file} rs6000/darwin.h"
- tmake_file="${tmake_file} rs6000/t-darwin"
extra_options="${extra_options} rs6000/darwin.opt"
case ${target} in
*-darwin1[0-9]* | *-darwin[8-9]*)
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 6b697a6..a4b79c6 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -302,12 +302,17 @@ Boston, MA 02110-1301, USA. */
#define LIB_SPEC "%{!static:-lSystem}"
-/* -dynamiclib implies -shared-libgcc just like -shared would on linux. */
-#define REAL_LIBGCC_SPEC \
- "%{static|static-libgcc:-lgcc -lgcc_eh}\
- %{!static:%{!static-libgcc:\
- %{!Zdynamiclib:%{!shared-libgcc:-lgcc -lgcc_eh}\
- %{shared-libgcc:-lgcc_s -lgcc}} %{Zdynamiclib:-lgcc_s -lgcc}}}"
+/* -dynamiclib implies -shared-libgcc just like -shared would on linux.
+ Support -mmacosx-version-min by supplying different (stub) libgcc_s.dylib
+ libraries to link against. */
+#undef REAL_LIBGCC_SPEC
+#define REAL_LIBGCC_SPEC \
+ "%{static|static-libgcc:-lgcc -lgcc_eh; \
+ :%{shared-libgcc|Zdynamiclib \
+ :%:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4) \
+ %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_s.10.5) \
+ -lgcc; \
+ :-lgcc -lgcc_eh}}"
/* We specify crt0.o as -lcrt0.o so that ld will search the library path. */
/* We don't want anything to do with crt2.o in the 64-bit case;
diff --git a/gcc/config/i386/darwin-libgcc.10.4.ver b/gcc/config/i386/darwin-libgcc.10.4.ver
new file mode 100644
index 0000000..aaeb934
--- /dev/null
+++ b/gcc/config/i386/darwin-libgcc.10.4.ver
@@ -0,0 +1,81 @@
+__Unwind_Backtrace
+__Unwind_DeleteException
+__Unwind_FindEnclosingFunction
+__Unwind_Find_FDE
+__Unwind_ForcedUnwind
+__Unwind_GetCFA
+__Unwind_GetDataRelBase
+__Unwind_GetGR
+__Unwind_GetIP
+__Unwind_GetLanguageSpecificData
+__Unwind_GetRegionStart
+__Unwind_GetTextRelBase
+__Unwind_RaiseException
+__Unwind_Resume
+__Unwind_Resume_or_Rethrow
+__Unwind_SetGR
+__Unwind_SetIP
+___absvdi2
+___absvsi2
+___addvdi3
+___addvsi3
+___ashldi3
+___ashrdi3
+___clear_cache
+___clzdi2
+___clzsi2
+___cmpdi2
+___ctzdi2
+___ctzsi2
+___deregister_frame
+___deregister_frame_info
+___deregister_frame_info_bases
+___divdc3
+___divdi3
+___divsc3
+___divxc3
+___enable_execute_stack
+___ffsdi2
+___fixdfdi
+___fixsfdi
+___fixunsdfdi
+___fixunsdfsi
+___fixunssfdi
+___fixunssfsi
+___fixunsxfdi
+___fixunsxfsi
+___fixxfdi
+___floatdidf
+___floatdisf
+___floatdixf
+___gcc_personality_v0
+___lshrdi3
+___moddi3
+___muldc3
+___muldi3
+___mulsc3
+___mulvdi3
+___mulvsi3
+___mulxc3
+___negdi2
+___negvdi2
+___negvsi2
+___paritydi2
+___paritysi2
+___popcountdi2
+___popcountsi2
+___powidf2
+___powisf2
+___powixf2
+___register_frame
+___register_frame_info
+___register_frame_info_bases
+___register_frame_info_table
+___register_frame_info_table_bases
+___register_frame_table
+___subvdi3
+___subvsi3
+___ucmpdi2
+___udivdi3
+___udivmoddi4
+___umoddi3
diff --git a/gcc/config/i386/darwin-libgcc.10.5.ver b/gcc/config/i386/darwin-libgcc.10.5.ver
new file mode 100644
index 0000000..aaeb934
--- /dev/null
+++ b/gcc/config/i386/darwin-libgcc.10.5.ver
@@ -0,0 +1,81 @@
+__Unwind_Backtrace
+__Unwind_DeleteException
+__Unwind_FindEnclosingFunction
+__Unwind_Find_FDE
+__Unwind_ForcedUnwind
+__Unwind_GetCFA
+__Unwind_GetDataRelBase
+__Unwind_GetGR
+__Unwind_GetIP
+__Unwind_GetLanguageSpecificData
+__Unwind_GetRegionStart
+__Unwind_GetTextRelBase
+__Unwind_RaiseException
+__Unwind_Resume
+__Unwind_Resume_or_Rethrow
+__Unwind_SetGR
+__Unwind_SetIP
+___absvdi2
+___absvsi2
+___addvdi3
+___addvsi3
+___ashldi3
+___ashrdi3
+___clear_cache
+___clzdi2
+___clzsi2
+___cmpdi2
+___ctzdi2
+___ctzsi2
+___deregister_frame
+___deregister_frame_info
+___deregister_frame_info_bases
+___divdc3
+___divdi3
+___divsc3
+___divxc3
+___enable_execute_stack
+___ffsdi2
+___fixdfdi
+___fixsfdi
+___fixunsdfdi
+___fixunsdfsi
+___fixunssfdi
+___fixunssfsi
+___fixunsxfdi
+___fixunsxfsi
+___fixxfdi
+___floatdidf
+___floatdisf
+___floatdixf
+___gcc_personality_v0
+___lshrdi3
+___moddi3
+___muldc3
+___muldi3
+___mulsc3
+___mulvdi3
+___mulvsi3
+___mulxc3
+___negdi2
+___negvdi2
+___negvsi2
+___paritydi2
+___paritysi2
+___popcountdi2
+___popcountsi2
+___powidf2
+___powisf2
+___powixf2
+___register_frame
+___register_frame_info
+___register_frame_info_bases
+___register_frame_info_table
+___register_frame_info_table_bases
+___register_frame_table
+___subvdi3
+___subvsi3
+___ucmpdi2
+___udivdi3
+___udivmoddi4
+___umoddi3
diff --git a/gcc/config/i386/t-darwin b/gcc/config/i386/t-darwin
new file mode 100644
index 0000000..3d0d5d5
--- /dev/null
+++ b/gcc/config/i386/t-darwin
@@ -0,0 +1 @@
+SHLIB_VERPFX = $(srcdir)/config/rs6000/darwin-libgcc
diff --git a/gcc/config/rs6000/darwin-libgcc.10.4.ver b/gcc/config/rs6000/darwin-libgcc.10.4.ver
new file mode 100644
index 0000000..019218d
--- /dev/null
+++ b/gcc/config/rs6000/darwin-libgcc.10.4.ver
@@ -0,0 +1,76 @@
+__Unwind_Backtrace
+__Unwind_DeleteException
+__Unwind_FindEnclosingFunction
+__Unwind_Find_FDE
+__Unwind_ForcedUnwind
+__Unwind_GetCFA
+__Unwind_GetDataRelBase
+__Unwind_GetGR
+__Unwind_GetIP
+__Unwind_GetLanguageSpecificData
+__Unwind_GetRegionStart
+__Unwind_GetTextRelBase
+__Unwind_RaiseException
+__Unwind_Resume
+__Unwind_Resume_or_Rethrow
+__Unwind_SetGR
+__Unwind_SetIP
+___absvdi2
+___absvsi2
+___addvdi3
+___addvsi3
+___ashldi3
+___ashrdi3
+___clear_cache
+___clzdi2
+___clzsi2
+___cmpdi2
+___ctzdi2
+___ctzsi2
+___deregister_frame
+___deregister_frame_info
+___deregister_frame_info_bases
+___divdi3
+___enable_execute_stack
+___ffsdi2
+___fixdfdi
+___fixsfdi
+___fixtfdi
+___fixunsdfdi
+___fixunsdfsi
+___fixunssfdi
+___fixunssfsi
+___fixunstfdi
+___floatdidf
+___floatdisf
+___floatditf
+___gcc_personality_v0
+___gcc_qadd
+___gcc_qdiv
+___gcc_qmul
+___gcc_qsub
+___lshrdi3
+___moddi3
+___muldi3
+___mulvdi3
+___mulvsi3
+___negdi2
+___negvdi2
+___negvsi2
+___paritydi2
+___paritysi2
+___popcountdi2
+___popcountsi2
+___register_frame
+___register_frame_info
+___register_frame_info_bases
+___register_frame_info_table
+___register_frame_info_table_bases
+___register_frame_table
+___subvdi3
+___subvsi3
+___trampoline_setup
+___ucmpdi2
+___udivdi3
+___udivmoddi4
+___umoddi3
diff --git a/gcc/config/rs6000/darwin-libgcc.10.5.ver b/gcc/config/rs6000/darwin-libgcc.10.5.ver
new file mode 100644
index 0000000..679d8c2
--- /dev/null
+++ b/gcc/config/rs6000/darwin-libgcc.10.5.ver
@@ -0,0 +1,85 @@
+__Unwind_Backtrace
+__Unwind_DeleteException
+__Unwind_FindEnclosingFunction
+__Unwind_Find_FDE
+__Unwind_ForcedUnwind
+__Unwind_GetCFA
+__Unwind_GetDataRelBase
+__Unwind_GetGR
+__Unwind_GetIP
+__Unwind_GetLanguageSpecificData
+__Unwind_GetRegionStart
+__Unwind_GetTextRelBase
+__Unwind_RaiseException
+__Unwind_Resume
+__Unwind_Resume_or_Rethrow
+__Unwind_SetGR
+__Unwind_SetIP
+___absvdi2
+___absvsi2
+___addvdi3
+___addvsi3
+___ashldi3
+___ashrdi3
+___clear_cache
+___clzdi2
+___clzsi2
+___cmpdi2
+___ctzdi2
+___ctzsi2
+___deregister_frame
+___deregister_frame_info
+___deregister_frame_info_bases
+___divdc3
+___divdi3
+___divsc3
+___divtc3
+___enable_execute_stack
+___ffsdi2
+___fixdfdi
+___fixsfdi
+___fixtfdi
+___fixunsdfdi
+___fixunsdfsi
+___fixunssfdi
+___fixunssfsi
+___fixunstfdi
+___floatdidf
+___floatdisf
+___floatditf
+___gcc_personality_v0
+___gcc_qadd
+___gcc_qdiv
+___gcc_qmul
+___gcc_qsub
+___lshrdi3
+___moddi3
+___muldc3
+___muldi3
+___mulsc3
+___multc3
+___mulvdi3
+___mulvsi3
+___negdi2
+___negvdi2
+___negvsi2
+___paritydi2
+___paritysi2
+___popcountdi2
+___popcountsi2
+___powidf2
+___powisf2
+___powitf2
+___register_frame
+___register_frame_info
+___register_frame_info_bases
+___register_frame_info_table
+___register_frame_info_table_bases
+___register_frame_table
+___subvdi3
+___subvsi3
+___trampoline_setup
+___ucmpdi2
+___udivdi3
+___udivmoddi4
+___umoddi3
diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h
index ef1532d..0d633ef 100644
--- a/gcc/config/rs6000/darwin.h
+++ b/gcc/config/rs6000/darwin.h
@@ -392,14 +392,6 @@ do { \
} \
while (0)
-/* Just like config/darwin.h's REAL_LIBGCC_SPEC, but use -lgcc_s_ppc64 for
- -m64. */
-#undef REAL_LIBGCC_SPEC
-#define REAL_LIBGCC_SPEC \
- "%{static|static-libgcc:-lgcc -lgcc_eh; \
- :%{shared-libgcc|Zdynamiclib:%{m64:-lgcc_s_ppc64;:-lgcc_s} -lgcc; \
- :-lgcc -lgcc_eh}}"
-
#ifdef IN_LIBGCC2
#include <stdbool.h>
#endif
diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin
index 74ded0f..264cb63 100644
--- a/gcc/config/rs6000/t-darwin
+++ b/gcc/config/rs6000/t-darwin
@@ -19,6 +19,8 @@ TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL -pipe
# Export the _xlq* symbols from darwin-ldouble.c.
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver
+SHLIB_VERPFX = $(srcdir)/config/rs6000/darwin-libgcc
+
LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
darwin-fpsave.o: $(srcdir)/config/rs6000/darwin-asm.h