OSDN Git Service

Index: ChangeLog
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Sep 2005 23:50:06 +0000 (23:50 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Sep 2005 23:50:06 +0000 (23:50 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104747 138bc75d-0d04-0410-961f-82ee72b054a4

17 files changed:
ChangeLog
Makefile.def
Makefile.in
Makefile.tpl
configure
configure.in
gcc/ChangeLog
gcc/Makefile.in
gcc/config.gcc
gcc/config/darwin.h
gcc/config/i386/darwin-libgcc.10.4.ver [new file with mode: 0644]
gcc/config/i386/darwin-libgcc.10.5.ver [new file with mode: 0644]
gcc/config/i386/t-darwin [new file with mode: 0644]
gcc/config/rs6000/darwin-libgcc.10.4.ver [new file with mode: 0644]
gcc/config/rs6000/darwin-libgcc.10.5.ver [new file with mode: 0644]
gcc/config/rs6000/darwin.h
gcc/config/rs6000/t-darwin

index 31e780c..65f3e08 100644 (file)
--- 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.
index 2eed19d..9ad197e 100644 (file)
@@ -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
index 3c1e0a1..d5f7170 100644 (file)
@@ -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)" 
index f8a120c..2413c0f 100644 (file)
@@ -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 = ` \
index 0ce877d..28ef316 100755 (executable)
--- 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
index b10313f..91e8cf2 100644 (file)
@@ -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
 
index 6cce8e8..db55afa 100644 (file)
@@ -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
index 33056ee..cd6533b 100644 (file)
@@ -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 ; \
index 5b1b2e1..cdfc66e 100644 (file)
@@ -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]*)
index 6b697a6..a4b79c6 100644 (file)
@@ -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 (file)
index 0000000..aaeb934
--- /dev/null
@@ -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 (file)
index 0000000..aaeb934
--- /dev/null
@@ -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 (file)
index 0000000..3d0d5d5
--- /dev/null
@@ -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 (file)
index 0000000..019218d
--- /dev/null
@@ -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 (file)
index 0000000..679d8c2
--- /dev/null
@@ -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
index ef1532d..0d633ef 100644 (file)
@@ -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
index 74ded0f..264cb63 100644 (file)
@@ -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