diff options
Diffstat (limited to 'contrib/gcc/config/rs6000/t-linux64')
-rw-r--r-- | contrib/gcc/config/rs6000/t-linux64 | 53 |
1 files changed, 39 insertions, 14 deletions
diff --git a/contrib/gcc/config/rs6000/t-linux64 b/contrib/gcc/config/rs6000/t-linux64 index af7b44b..77ba93e 100644 --- a/contrib/gcc/config/rs6000/t-linux64 +++ b/contrib/gcc/config/rs6000/t-linux64 @@ -1,19 +1,44 @@ -# Override t-linux. We don't want -fPIC. -CRTSTUFF_T_CFLAGS_S = -TARGET_LIBGCC2_CFLAGS = -EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ - crtsavres.o +#rs6000/t-linux64 -# These functions are needed for soft-float on powerpc64-linux. -LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c +LIB2FUNCS_EXTRA = tramp.S $(srcdir)/config/rs6000/ppc64-fp.c \ + $(srcdir)/config/rs6000/darwin-ldouble.c -# ld provides these functions as needed. -crtsavres.S: - echo >crtsavres.S +TARGET_LIBGCC2_CFLAGS = -mno-minimal-toc -fPIC -specs=bispecs -$(T)crtsavres.o: crtsavres.S - $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -c crtsavres.S -o $(T)crtsavres.o +SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver -# Modify the shared lib version file -SHLIB_MKMAP_OPTS = -v dotsyms=1 +MULTILIB_OPTIONS = m64/m32 msoft-float +MULTILIB_DIRNAMES = 64 32 nof +MULTILIB_EXTRA_OPTS = fPIC mstrict-align +MULTILIB_EXCEPTIONS = m64/msoft-float +MULTILIB_EXCLUSIONS = m64/!m32/msoft-float +MULTILIB_OSDIRNAMES = ../lib64 ../lib nof +MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT) + +# We want fine grained libraries, so use the new code to build the +# floating point emulation libraries. +# fp-bit is only to be used by 32-bit multilibs +FPBIT = fp-bit32.c +DPBIT = dp-bit32.c + +dp-bit32.c: $(srcdir)/config/fp-bit.c + ( echo '#ifndef __powerpc64__'; \ + cat $(srcdir)/config/fp-bit.c; \ + echo '#endif' ) > dp-bit32.c + +fp-bit32.c: $(srcdir)/config/fp-bit.c + ( echo '#ifndef __powerpc64__'; \ + echo '#define FLOAT'; \ + cat $(srcdir)/config/fp-bit.c; \ + echo '#endif' ) > fp-bit32.c + +# Hack to use -mlong-double-128 just for compiling 64 bit libgcc +mklibgcc: bispecs + +bispecs: specs + if [ x`$(GCC_FOR_TARGET) -print-multi-os-directory` = x../lib ]; then \ + sed -e '/cc1_options/{ n; s/$$/ %{m64:-mlong-double-128}/; }' < specs > $@; \ + else \ + sed -e '/cc1_options/{ n; s/$$/ %{!m32:-mlong-double-128}/; }' < specs > $@; \ + fi |