svn commit: r214164 - in user/ed/compiler-rt: . contrib/llvm/tools/clang/lib/Driver gnu/usr.bin/cc/cc_tools

Ed Schouten ed at FreeBSD.org
Thu Oct 21 19:56:27 UTC 2010


Author: ed
Date: Thu Oct 21 19:56:26 2010
New Revision: 214164
URL: http://svn.freebsd.org/changeset/base/214164

Log:
  Let both GCC and Clang use -lcompiler_rt instead of -lgcc.

Modified:
  user/ed/compiler-rt/Makefile.inc1
  user/ed/compiler-rt/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
  user/ed/compiler-rt/gnu/usr.bin/cc/cc_tools/freebsd-native.h

Modified: user/ed/compiler-rt/Makefile.inc1
==============================================================================
--- user/ed/compiler-rt/Makefile.inc1	Thu Oct 21 19:44:28 2010	(r214163)
+++ user/ed/compiler-rt/Makefile.inc1	Thu Oct 21 19:56:26 2010	(r214164)
@@ -1123,7 +1123,7 @@ libraries:
 #
 # static libgcc.a prerequisite for shared libc
 #
-_prereq_libs= gnu/lib/libssp/libssp_nonshared gnu/lib/libgcc
+_prereq_libs= gnu/lib/libssp/libssp_nonshared gnu/lib/libgcc lib/libcompiler_rt
 
 # These dependencies are not automatically generated:
 #
@@ -1139,6 +1139,7 @@ _startup_libs+=	lib/csu/${MACHINE_ARCH}
 _startup_libs+=	lib/csu/${MACHINE_CPUARCH}
 .endif
 _startup_libs+=	gnu/lib/libgcc
+_startup_libs+=	lib/libcompiler_rt
 _startup_libs+=	lib/libc
 
 gnu/lib/libgcc__L: lib/libc__L

Modified: user/ed/compiler-rt/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
==============================================================================
--- user/ed/compiler-rt/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Thu Oct 21 19:44:28 2010	(r214163)
+++ user/ed/compiler-rt/contrib/llvm/tools/clang/lib/Driver/Tools.cpp	Thu Oct 21 19:56:26 2010	(r214164)
@@ -2928,7 +2928,7 @@ void freebsd::Link::ConstructJob(Compila
     }
     // FIXME: For some reason GCC passes -lgcc and -lgcc_s before adding
     // the default system libraries. Just mimic this for now.
-    CmdArgs.push_back("-lgcc");
+    CmdArgs.push_back("-lcompiler_rt");
     if (Args.hasArg(options::OPT_static)) {
       CmdArgs.push_back("-lgcc_eh");
     } else {
@@ -2941,7 +2941,7 @@ void freebsd::Link::ConstructJob(Compila
       CmdArgs.push_back("-lpthread");
     CmdArgs.push_back("-lc");
 
-    CmdArgs.push_back("-lgcc");
+    CmdArgs.push_back("-lcompiler_rt");
     if (Args.hasArg(options::OPT_static)) {
       CmdArgs.push_back("-lgcc_eh");
     } else {

Modified: user/ed/compiler-rt/gnu/usr.bin/cc/cc_tools/freebsd-native.h
==============================================================================
--- user/ed/compiler-rt/gnu/usr.bin/cc/cc_tools/freebsd-native.h	Thu Oct 21 19:44:28 2010	(r214163)
+++ user/ed/compiler-rt/gnu/usr.bin/cc/cc_tools/freebsd-native.h	Thu Oct 21 19:56:26 2010	(r214164)
@@ -48,16 +48,16 @@
 
 #if 0
 #define LIBGCC_SPEC		"%{shared: -lgcc_pic} \
-    %{!shared: %{!pg: -lgcc} %{pg: -lgcc_p}}"
+    %{!shared: %{!pg: -lcompiler_rt} %{pg: -lgcc_p}}"
 #endif
 #define LIBSTDCXX_PROFILE	"-lstdc++_p"
 #define MATH_LIBRARY_PROFILE	"-lm_p"
 #define FORTRAN_LIBRARY_PROFILE	"-lg2c_p"
 
-#define LIBGCC_SPEC		"-lgcc"
+#define LIBGCC_SPEC		"-lcompiler_rt"
 /* For the native system compiler, we actually build libgcc in a profiled
    version.  So we should use it with -pg.  */
-#define LIBGCC_STATIC_LIB_SPEC	  "%{pg: -lgcc_p;:-lgcc}"
+#define LIBGCC_STATIC_LIB_SPEC	  "%{pg: -lgcc_p;:-lcompiler_rt}"
 #define LIBGCC_EH_STATIC_LIB_SPEC "%{pg: -lgcc_eh_p;:-lgcc_eh}"
 
 /* FreeBSD is 4.4BSD derived */


More information about the svn-src-user mailing list