1SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
2
3HOST_LIBGCC2_CFLAGS += -mlong-double-128
4
5# This is a way of selecting -mcmodel=small for ppc64, which gives
6# smaller and faster libgcc code.  Directly specifying -mcmodel=small
7# would need to take into account targets for which -mcmodel is invalid.
8HOST_LIBGCC2_CFLAGS += -mno-minimal-toc
9
10# On the modules that deal with IBM 128-bit values, make sure that TFmode uses
11# the IBM extended double format.  Also turn off gnu attributes on the static
12# modules.
13IBM128_STATIC_OBJS  = ibm-ldouble$(objext) _powitf2$(objext) \
14                                ppc64-fp$(objext) _divtc3$(objext) _multc3$(objext) \
15                                _fixtfdi$(objext) _fixunstfdi$(objext) \
16                            _floatditf$(objext) _floatunditf$(objext) \
17                                _fixtfti$(objext) _fixunstfti$(objext) \
18                            _floattitf$(objext) _floatuntitf$(objext)
19IBM128_SHARED_OBJS  = $(IBM128_STATIC_OBJS:$(objext)=_s$(objext))
20IBM128_OBJS                   = $(IBM128_STATIC_OBJS) $(IBM128_SHARED_OBJS)
21
22IBM128_CFLAGS                 = -Wno-psabi -mabi=ibmlongdouble -mno-gnu-attribute
23
24$(IBM128_OBJS) : INTERNAL_CFLAGS += $(IBM128_CFLAGS)
25
26# Turn off gnu attributes for long double size on all of the shared library
27# modules, but leave it on for the static modules, except for the functions
28# that explicitly process IBM 128-bit floating point.  Shared libraries only
29# have one gnu attribute for the whole library, and it can lead to warnings if
30# somebody changes the long double format.  We leave it on for the static
31# modules to catch mis-compilation errors.
32gcc_s_compile += -mno-gnu-attribute
33