summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2010-11-11 15:48:27 +0000
committered <ed@FreeBSD.org>2010-11-11 15:48:27 +0000
commiteee194800dec72f6b42fddb63bc385263dcaf360 (patch)
tree96d46b232fdca922dcceae80b2a66aed7fc5813f
parent5bd2211ccc572606efabe63fbce122f107d56bfc (diff)
downloadFreeBSD-src-eee194800dec72f6b42fddb63bc385263dcaf360.zip
FreeBSD-src-eee194800dec72f6b42fddb63bc385263dcaf360.tar.gz
Replace libgcc.a by libcompiler_rt.a.
libcompiler_rt.a is a BSD licensed C language runtime, which implements many routines which are linked into binaries on architectures where certain functionality is missing (e.g. 64 bits mul/div on i386). Unfortunately, libcompiler_rt cannot replace libgcc entirely. Certain features, such as an unwinder for exception handling, are missing. That's why only libgcc.a is replaced for now, because this one does seem to be complete. Tested by: rene (amd64), nwhitehorn (powerpc), droso (i386 exprun) and many others. Thanks! Obtained from: user/ed/compiler-rt
-rw-r--r--Makefile.inc13
-rw-r--r--gnu/lib/libgcc/Makefile1
-rw-r--r--lib/Makefile2
-rw-r--r--sys/sys/param.h2
4 files changed, 5 insertions, 3 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index d8bbd44..cd29204 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -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
diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile
index d7642da..2021c8c 100644
--- a/gnu/lib/libgcc/Makefile
+++ b/gnu/lib/libgcc/Makefile
@@ -3,7 +3,6 @@
GCCDIR= ${.CURDIR}/../../../contrib/gcc
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
-LIB= gcc
SHLIB_NAME= libgcc_s.so.1
SHLIBDIR?= /lib
diff --git a/lib/Makefile b/lib/Makefile
index 75de092..e6e3cf0 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -34,6 +34,7 @@ SUBDIR_ORDERED= ${_csu} \
libbsm \
libauditd \
libcom_err \
+ libcompiler_rt \
libcrypt \
libelf \
libkvm \
@@ -53,6 +54,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
libarchive \
${_libatm} \
libbegemot \
+ libblocksruntime \
${_libbluetooth} \
${_libbsnmp} \
libbz2 \
diff --git a/sys/sys/param.h b/sys/sys/param.h
index ea64e39..a64c77b 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -58,7 +58,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 900023 /* Master, propagated to newvers */
+#define __FreeBSD_version 900024 /* Master, propagated to newvers */
#ifndef LOCORE
#include <sys/types.h>
OpenPOWER on IntegriCloud