1# Powerpc32 specific build options.
2
3# Some Powerpc32 variants assume soft-fp is the default even though there is
4# an fp variant so provide -mhard-float if --with-fp is explicitly passed.
5
6ifeq ($(with-fp),yes)
7+cflags += -mhard-float
8ASFLAGS += -mhard-float
9sysdep-LDFLAGS += -mhard-float
10endif
11
12ifeq ($(subdir),gmon)
13sysdep_routines += ppc-mcount compat-ppc-mcount
14static-only-routines += ppc-mcount
15shared-only-routines += compat-ppc-mcount
16endif
17
18ifeq ($(subdir),misc)
19sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
20endif
21
22# On PPC, -fpic works until the GOT contains 32768 bytes, and possibly
23# more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
24# so that's at least 8192 entries.  Since libc only uses about 2000 entries,
25# we want to use -fpic, because this generates fewer relocs.
26ifeq (yes,$(build-shared))
27pic-ccflag = -fpic
28endif
29
30ifeq ($(subdir),csu)
31# There is no benefit to using sdata for these objects, and the user
32# of the library should be able to control what goes into sdata.
33CFLAGS-init.o = -G0
34CFLAGS-gmon-start.o = -G0
35
36ifeq (yes,$(build-shared))
37# Compatibility
38ifeq (yes,$(have-protected))
39CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
40endif
41sysdep_routines += libgcc-compat
42shared-only-routines += libgcc-compat
43endif
44endif
45
46ifeq ($(subdir),elf)
47# extra shared linker files to link only into dl-allobjs.so
48sysdep-rtld-routines += dl-start
49endif
50