Page MenuHomeFreeBSD

D27736.id81085.diff
No OneTemporary

D27736.id81085.diff

Index: lib/libcompiler_rt/Makefile
===================================================================
--- lib/libcompiler_rt/Makefile
+++ lib/libcompiler_rt/Makefile
@@ -4,7 +4,8 @@
PACKAGE= lib${LIB}
LIB= compiler_rt
-NO_PIC=
+NO_SHLIB=
+BUILD_NOSSP_PIC_ARCHIVE=
WARNS?= 2
CFLAGS+= ${PICFLAG}
Index: libexec/rtld-elf/Makefile
===================================================================
--- libexec/rtld-elf/Makefile
+++ libexec/rtld-elf/Makefile
@@ -82,6 +82,11 @@
SUBDIR.${MK_TESTS}+= tests
.endif
+# Some of the required math functions (div & mod) are implemented in
+# libcompiler_rt on some architectures. We link a special static build of the
+# library without -fstack-protector (SSP).
+LIBADD+= compiler_rt_nossp_pic
+
.include <bsd.prog.mk>
${PROG_FULL}: ${VERSION_MAP}
.include <bsd.symver.mk>
Index: libexec/rtld-elf/arm/Makefile.inc
===================================================================
--- libexec/rtld-elf/arm/Makefile.inc
+++ libexec/rtld-elf/arm/Makefile.inc
@@ -1,8 +1,3 @@
# $FreeBSD$
-# Some of the required math functions (div & mod) are implemented in
-# libcompiler_rt on ARM. The library also needs to be placed first to be
-# correctly linked. As some of the functions are used before we have
-# shared libraries.
-LIBADD+= compiler_rt
CFLAGS+= -mfpu=none
Index: libexec/rtld-elf/rtld-libc/Makefile.inc
===================================================================
--- libexec/rtld-elf/rtld-libc/Makefile.inc
+++ libexec/rtld-elf/rtld-libc/Makefile.inc
@@ -57,22 +57,14 @@
# ARM needs aeabi_unwind_cpp for _setjmp
_libc_other_objects+=aeabi_unwind_cpp
.elif ${LIBC_ARCH} == "i386"
-# __udivdi3 is needed by kvprintf() in rtld_printf.c
-# i386 also needs i386_set_gsbase for allocate_initial_tls()
-_libc_other_objects+=umoddi3 udivdi3 qdivrem i386_set_gsbase
+# i386 needs i386_set_gsbase for allocate_initial_tls()
+_libc_other_objects+=i386_set_gsbase
.elif ${LIBC_ARCH} == "powerpc" || ${LIBC_ARCH} == "powerpcspe"
-# ppc needs __syncicache for reloc.c and __umoddi3+__udivdi3 for rtld_printf.c
-_libc_other_objects+=syncicache umoddi3 udivdi3 qdivrem
-# for some reason there is also a reference to abs()
-_libc_other_objects+=abs
+# ppc needs __syncicache and abs for reloc.c
+_libc_other_objects+=syncicache abs
.elif ${LIBC_ARCH} == "powerpc64"
# ppc64 needs __syncicache for reloc.c
_libc_other_objects+=syncicache
-.elif ${LIBC_ARCH} == "mips"
-# 32-bit MIPS needs __umoddi3+__udivdi3 for rtld_printf.c
-.if ${MACHINE_ARCH:Mmipsn32*} == "" && ${MACHINE_ARCH:Mmips64*} == ""
-_libc_other_objects+=umoddi3 udivdi3 qdivrem
-.endif
.endif
# Extract all the .o files from libc_nossp_pic.a. This ensures that

File Metadata

Mime Type
text/plain
Expires
Sat, Jun 13, 3:05 AM (20 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33919346
Default Alt Text
D27736.id81085.diff (2 KB)

Event Timeline