summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/powerpc/powerpc64/Makefile16
2 files changed, 16 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 16e3fc3f70..445a27bd99 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2002-09-27  Steven Munroe  <sjmunroe@us.ibm.com>
+
+	* sysdeps/powerpc/powerpc64/Makefile
+	[$(build-shared) = yes] (pic-ccflag): Define it.
+	[$(subdir) = csu] (CFLAGS-initfini.s): Add -fpic here too.
+
 2002-09-27  Roland McGrath  <roland@redhat.com>
 
 	* sysdeps/x86_64/dl-machine.h (elf_machine_type_class): Remove
diff --git a/sysdeps/powerpc/powerpc64/Makefile b/sysdeps/powerpc/powerpc64/Makefile
index ff6819a63f..0ecba53650 100644
--- a/sysdeps/powerpc/powerpc64/Makefile
+++ b/sysdeps/powerpc/powerpc64/Makefile
@@ -4,16 +4,20 @@
 +cflags += -Wa,-mppc64 -mpowerpc64
 asm-CPPFLAGS += -Wa,-mppc64
 
-# On PPC64, -fpic is the default so we don't need to specify it. 
-# Also early compilers would issue a warning if -fpic was specified.
-# Each TOC entry takes 8 bytes and the TOC holds up to 2^16 bytes, 
-# or 8192 entries.  If the TOC fills up try -minimal-toc.
+# Each TOC entry takes 8 bytes and the TOC holds up to 2^16 bytes,
+# or 8192 entries.
+# If -fpic is not specified, the latest gcc-3.2.1 now generates
+# different code for call stubs (without the TOC reload).
+# Shared objects need the TOC reload so specify -fpic.
+ifeq (yes,$(build-shared))
+pic-ccflag = -fpic
+endif
 
 ifeq ($(subdir),csu)
 ifneq ($(elf),no)
-# The initfini generation code doesn't work in the presence of -g1 or 
+# The initfini generation code doesn't work in the presence of -g1 or
 # higher, so we use -g0.
-CFLAGS-initfini.s = -g0 -O1
+CFLAGS-initfini.s = -g0 -fpic -O1
 endif
 endif