190075Sobrien# We want fine grained libraries, so use the new code to build the 290075Sobrien# floating point emulation libraries. 390075SobrienFPBIT = fp-bit.c 490075SobrienDPBIT = dp-bit.c 590075Sobrien 690075Sobriendp-bit.c: $(srcdir)/config/fp-bit.c 790075Sobrien cat $(srcdir)/config/fp-bit.c > dp-bit.c 890075Sobrien 990075Sobrienfp-bit.c: $(srcdir)/config/fp-bit.c 1090075Sobrien echo '#define FLOAT' > fp-bit.c 1190075Sobrien cat $(srcdir)/config/fp-bit.c >> fp-bit.c 1290075Sobrien 1390075Sobrien# Build the libraries for pthread and all of the 1490075Sobrien# different processor models 1590075Sobrien 1690075SobrienMULTILIB_OPTIONS = pthread \ 1790075Sobrien mcpu=common/mcpu=power/mcpu=powerpc/maix64 1890075Sobrien 1990075SobrienMULTILIB_DIRNAMES = pthread \ 2090075Sobrien common power powerpc ppc64 2190075Sobrien 22117395SkanMULTILIB_MATCHES = mcpu?power=mcpu?power \ 23117395Skan mcpu?power=mcpu?power2 \ 24117395Skan mcpu?powerpc=mcpu?power3 \ 25117395Skan mcpu?powerpc=mcpu?power4 \ 26117395Skan mcpu?powerpc=mcpu?powerpc \ 2790075Sobrien mcpu?power=mcpu?rios1 \ 28117395Skan mcpu?power=mcpu?rios2 \ 2990075Sobrien mcpu?power=mcpu?rsc \ 3090075Sobrien mcpu?power=mcpu?rsc1 \ 3190075Sobrien mcpu?powerpc=mcpu?rs64a \ 3290075Sobrien mcpu?powerpc=mcpu?601 \ 3390075Sobrien mcpu?powerpc=mcpu?602 \ 3490075Sobrien mcpu?powerpc=mcpu?603 \ 3590075Sobrien mcpu?powerpc=mcpu?603e \ 3690075Sobrien mcpu?powerpc=mcpu?604 \ 37117395Skan mcpu?powerpc=mcpu?604e \ 3890075Sobrien mcpu?powerpc=mcpu?620 \ 39117395Skan mcpu?powerpc=mcpu?630 4090075Sobrien 4190075SobrienLIBGCC = stmp-multilib 4290075SobrienINSTALL_LIBGCC = install-multilib 4390075Sobrien 4490075Sobrien# Build a shared libgcc library. 4590075SobrienSHLIB_EXT = .a 4690075SobrienSHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \ 4790075Sobrien -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \ 4890075Sobrien @multilib_flags@ @shlib_objs@ -lc \ 49169689Skan `case @multilib_dir@ in \ 5090075Sobrien *pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \ 5190075Sobrien *) echo -lc ;; esac` ; \ 52169689Skan rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \ 53169689Skan $(AR_CREATE_FOR_TARGET) @multilib_dir@/tmp-@shlib_base_name@.a \ 54169689Skan @multilib_dir@/shr.o ; \ 55169689Skan mv @multilib_dir@/tmp-@shlib_base_name@.a \ 56169689Skan @multilib_dir@/@shlib_base_name@.a ; \ 5790075Sobrien rm -f @multilib_dir@/shr.o 5890075Sobrien# $(slibdir) double quoted to protect it from expansion while building 5990075Sobrien# libgcc.mk. We want this delayed until actual install time. 60169689SkanSHLIB_INSTALL = \ 61169689Skan $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \ 62169689Skan $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \ 63169689Skan $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/ 64169689SkanSHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac` 6590075SobrienSHLIB_MKMAP = $(srcdir)/mkmap-flat.awk 66146895SkanSHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver 6796263SobrienSHLIB_NM_FLAGS = -Bpg -X32_64 6890075Sobrien 69146895Skan# GCC 128-bit long double support routines. 70169689SkanLIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/ppc64-fp.c \ 71169689Skan $(srcdir)/config/rs6000/darwin-ldouble.c 72169689SkanTARGET_LIBGCC2_CFLAGS = -mlong-double-128 73146895Skan 7490075Sobrien# Either 32-bit and 64-bit objects in archives. 7590075SobrienAR_FLAGS_FOR_TARGET = -X32_64 7690075Sobrien 77