xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/rs6000/t-ppccomm (revision d11b170b9000ada93db553723522a63d5deac310)
1# Common support for PowerPC ELF targets (both EABI and SVR4).
2#
3# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2006, 2007,
4# 2008 Free Software Foundation, Inc.
5#
6# This file is part of GCC.
7#
8# GCC is free software; you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation; either version 3, or (at your option)
11# any later version.
12#
13# GCC is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with GCC; see the file COPYING3.  If not see
20# <http://www.gnu.org/licenses/>.
21
22LIB2FUNCS_EXTRA += tramp.S $(srcdir)/config/rs6000/darwin-ldouble.c
23
24# These can't end up in shared libgcc
25LIB2FUNCS_STATIC_EXTRA = eabi.S
26
27eabi.S: $(srcdir)/config/rs6000/eabi.asm
28	cat $(srcdir)/config/rs6000/eabi.asm > eabi.S
29
30tramp.S: $(srcdir)/config/rs6000/tramp.asm
31	cat $(srcdir)/config/rs6000/tramp.asm > tramp.S
32
33# Switch synonyms
34MULTILIB_MATCHES_ENDIAN	= mlittle=mlittle-endian mbig=mbig-endian
35MULTILIB_MATCHES_SYSV	= mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd
36
37EXTRA_MULTILIB_PARTS = crtbegin$(objext) crtend$(objext) \
38  crtbeginS$(objext) crtendS$(objext) crtbeginT$(objext) \
39  ecrti$(objext) ecrtn$(objext) \
40  ncrti$(objext) ncrtn$(objext)
41
42# We build {e,n}crti.o and {e,n}crtn.o, which serve to add begin and
43# end labels to all of the special sections used when we link using gcc.
44
45# Assemble startup files.
46ecrti.S: $(srcdir)/config/rs6000/eabi-ci.asm
47	cat $(srcdir)/config/rs6000/eabi-ci.asm >ecrti.S
48
49ecrtn.S: $(srcdir)/config/rs6000/eabi-cn.asm
50	cat $(srcdir)/config/rs6000/eabi-cn.asm >ecrtn.S
51
52ncrti.S: $(srcdir)/config/rs6000/sol-ci.asm
53	cat $(srcdir)/config/rs6000/sol-ci.asm >ncrti.S
54
55ncrtn.S: $(srcdir)/config/rs6000/sol-cn.asm
56	cat $(srcdir)/config/rs6000/sol-cn.asm >ncrtn.S
57
58# Build multiple copies of ?crt{i,n}.o, one for each target switch.
59$(T)ecrti$(objext): ecrti.S
60	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrti.S -o $(T)ecrti$(objext)
61
62$(T)ecrtn$(objext): ecrtn.S
63	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ecrtn.S -o $(T)ecrtn$(objext)
64
65$(T)ncrti$(objext): ncrti.S
66	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrti.S -o $(T)ncrti$(objext)
67
68$(T)ncrtn$(objext): ncrtn.S
69	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c ncrtn.S -o $(T)ncrtn$(objext)
70
71# It is important that crtbegin.o, etc., aren't surprised by stuff in .sdata.
72CRTSTUFF_T_CFLAGS = -msdata=none
73# Make sure crt*.o are built with -fPIC even if configured with
74# --enable-shared --disable-multilib
75CRTSTUFF_T_CFLAGS_S = -fPIC -msdata=none
76