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
This commit is contained in:
Ed Schouten 2010-11-11 15:48:27 +00:00
parent b70519663c
commit 39cd938c39
4 changed files with 5 additions and 3 deletions

View File

@ -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

View File

@ -3,7 +3,6 @@
GCCDIR= ${.CURDIR}/../../../contrib/gcc
GCCLIB= ${.CURDIR}/../../../contrib/gcclibs
LIB= gcc
SHLIB_NAME= libgcc_s.so.1
SHLIBDIR?= /lib

View File

@ -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 \

View File

@ -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>