about summary refs log tree commit diff
path: root/sysdeps/powerpc/Makefile
blob: 0737f6f2d33ddf2feae6854469ed610f5c14d705 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# We always want to use the new mnemonic syntax even if we are on a RS6000
# machine.
+cflags += -mnew-mnemonics -Wa,-mppc -mpowerpc
asm-CPPFLAGS += -Wa,-mppc

ifeq ($(with-fp),no)
+cflags += -msoft-float
sysdep-LDFLAGS += -msoft-float
endif

ifeq ($(subdir),gmon)
sysdep_routines += ppc-mcount
endif

ifeq ($(subdir),misc)
sysdep_routines += gprsave0 gprrest0 gprsave1 gprrest1
endif

# On PPC, -fpic works until the GOT contains 2^15 bytes, and possibly
# more depending on how clever the linker is.  Each GOT entry takes 4 bytes,
# so that's at least 8192 entries.  Since libc only uses about 2000 entries,
# we want to use -fpic, because this generates fewer relocs.
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 -fPIC, so
# we use -fpic instead which is much better.
CFLAGS-initfini.s = -g0 -fpic -O1

# There is no benefit to using sdata for these objects, and the user
# of the library should be able to control what goes into sdata.
CFLAGS-init.o = -G0
CFLAGS-gmon-start.o = -G0
endif
ifeq (yes,$(build-shared))
# Compatibility
ifeq (yes,$(have-protected))
CPPFLAGS-divdi3.c = -DHAVE_DOT_HIDDEN
CPPFLAGS-libgcc-compat.S = -DHAVE_DOT_HIDDEN
endif
sysdep_routines += divdi3 libgcc-compat
shared-only-routines += divdi3 libgcc-compat
endif
endif

ifeq ($(subdir),string)
CFLAGS-memcmp.c += -Wno-uninitialized
endif

ifeq ($(subdir),elf)
# extra shared linker files to link into dl-allobjs.so and libc
sysdep-dl-routines += dl-machine
sysdep_routines += dl-machine
# extra shared linker files to link only into dl-allobjs.so
sysdep-rtld-routines += dl-machine dl-start
endif