]>
Commit | Line | Data |
---|---|---|
b26e3a82 | 1 | # Common support for PowerPC ELF targets (both EABI and SVR4). |
eaf1bcf1 MM |
2 | |
3 | # Do not build libgcc1. | |
4 | LIBGCC1 = | |
5 | CROSS_LIBGCC1 = | |
6 | ||
7 | # These are really part of libgcc1, but this will cause them to be | |
8 | # built correctly, so... [taken from t-sparclite] | |
362c63a5 | 9 | LIB2FUNCS_EXTRA = eabi.S tramp.S |
c91fba50 JL |
10 | |
11 | # We want fine grained libraries, so use the new code to build the | |
12 | # floating point emulation libraries. | |
13 | FPBIT = fp-bit.c | |
14 | DPBIT = dp-bit.c | |
15 | ||
eaf1bcf1 MM |
16 | |
17 | dp-bit.c: $(srcdir)/config/fp-bit.c | |
18 | cat $(srcdir)/config/fp-bit.c > dp-bit.c | |
19 | ||
20 | fp-bit.c: $(srcdir)/config/fp-bit.c | |
21 | echo '#define FLOAT' > fp-bit.c | |
22 | cat $(srcdir)/config/fp-bit.c >> fp-bit.c | |
23 | ||
24 | eabi.S: $(srcdir)/config/rs6000/eabi.asm | |
25 | cat $(srcdir)/config/rs6000/eabi.asm > eabi.S | |
26 | ||
eaf1bcf1 MM |
27 | tramp.S: $(srcdir)/config/rs6000/tramp.asm |
28 | cat $(srcdir)/config/rs6000/tramp.asm > tramp.S | |
29 | ||
30 | # Switch synonyms | |
b5370a88 MM |
31 | MULTILIB_MATCHES_FLOAT = msoft-float=mcpu?401 \ |
32 | msoft-float=mcpu?403 \ | |
33 | msoft-float=mcpu?ec603e \ | |
34 | msoft-float=mcpu?801 \ | |
35 | msoft-float=mcpu?821 \ | |
36 | msoft-float=mcpu?823 \ | |
37 | msoft-float=mcpu?860 | |
eaf1bcf1 | 38 | MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian |
9ebbca7d | 39 | MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux |
eaf1bcf1 MM |
40 | |
41 | LIBGCC = stmp-multilib | |
42 | INSTALL_LIBGCC = install-multilib | |
b26e3a82 | 43 | EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \ |
362c63a5 | 44 | crtbeginS$(objext) crtendS$(objext) \ |
b26e3a82 | 45 | ecrti$(objext) ecrtn$(objext) scrt0$(objext) scrti$(objext) scrtn$(objext) |
eaf1bcf1 MM |
46 | |
47 | # We build {e,s}crti.o, {e,s}crtn.o, and scrt0.o which serve to add begin and | |
48 | # end labels to all of the special sections used when we link using gcc. | |
49 | ||
50 | # Assemble startup files. | |
51 | ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm | |
52 | cat $(srcdir)/config/rs6000/eabi-ci.asm >ecrti.S | |
53 | ||
54 | ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm | |
55 | cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S | |
56 | ||
57 | scrti.S: $(srcdir)/config/rs6000/sol-ci.asm | |
58 | cat $(srcdir)/config/rs6000/sol-ci.asm >scrti.S | |
59 | ||
60 | scrtn.S: $(srcdir)/config/rs6000/sol-cn.asm | |
61 | cat $(srcdir)/config/rs6000/sol-cn.asm >scrtn.S | |
62 | ||
63 | scrt0.c: $(srcdir)/config/rs6000/sol-c0.c | |
64 | cat $(srcdir)/config/rs6000/sol-c0.c >scrt0.c | |
65 | ||
66 | # Build multiple copies of ?crt{i,n}.o, one for each target switch. | |
67 | $(T)ecrti$(objext): ecrti.S | |
68 | $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)ecrti$(objext) | |
69 | ||
70 | $(T)ecrtn$(objext): ecrtn.S | |
71 | $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrtn.S -o $(T)ecrtn$(objext) | |
72 | ||
73 | $(T)scrti$(objext): scrti.S | |
74 | $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrti.S -o $(T)scrti$(objext) | |
75 | ||
76 | $(T)scrtn$(objext): scrtn.S | |
77 | $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrtn.S -o $(T)scrtn$(objext) | |
78 | ||
79 | $(T)scrt0$(objext): scrt0.c | |
80 | $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c scrt0.c -o $(T)scrt0$(objext) | |
2d5b6dea GK |
81 | |
82 | # It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata. | |
83 | CRTSTUFF_T_CFLAGS = -msdata=none | |
362c63a5 GK |
84 | # There is no need to add -fPIC here because crtstuff is multilibbed |
85 | # and so automatically gets -fPIC when needed. | |
86 | CRTSTUFF_T_CFLAGS_S = -msdata=none |