From 7be39623f5d2ffb96d5e6ab8f5113a03b9c4200f Mon Sep 17 00:00:00 2001 From: nwhitehorn Date: Tue, 13 Mar 2012 18:59:19 +0000 Subject: Work around a binutils bug on powerpc64 where the TOC would not be properly reloaded when calling _fini() in large binaries with multiple TOC sections (e.g. GCC), leading to a segmentation fault. Adding -mlongcall to crt1 flags causes the compiler to emit explicit TOC load instructions for all function calls, including _fini(). Reviewed by: kib Pointy hat to: kib --- lib/csu/powerpc64/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/csu') diff --git a/lib/csu/powerpc64/Makefile b/lib/csu/powerpc64/Makefile index 1e1d1fa..a3e0cab 100644 --- a/lib/csu/powerpc64/Makefile +++ b/lib/csu/powerpc64/Makefile @@ -6,7 +6,8 @@ SRCS= crt1.c crti.S crtn.S OBJS= ${SRCS:N*.h:R:S/$/.o/g} OBJS+= Scrt1.o gcrt1.o CFLAGS+= -I${.CURDIR}/../common \ - -I${.CURDIR}/../../libc/include + -I${.CURDIR}/../../libc/include \ + -mlongcall all: ${OBJS} -- cgit v1.1