blob: 500210ddaf20fa25ddedbfffbf4f8504dc4099ab [file] [log] [blame]
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-glibc.ver
HOST_LIBGCC2_CFLAGS += -mlong-double-128
# This is a way of selecting -mcmodel=small for ppc64, which gives
# smaller and faster libgcc code. Directly specifying -mcmodel=small
# would need to take into account targets for which -mcmodel is invalid.
HOST_LIBGCC2_CFLAGS += -mno-minimal-toc
# On the modules that deal with IBM 128-bit values, make sure that TFmode uses
# the IBM extended double format. Also turn off gnu attributes on the static
# modules.
IBM128_STATIC_OBJS = ibm-ldouble$(objext) _powitf2$(objext) \
ppc64-fp$(objext) _divtc3$(objext) _multc3$(objext) \
_fixtfdi$(objext) _fixunstfdi$(objext) \
_floatditf$(objext) _floatunditf$(objext) \
_fixtfti$(objext) _fixunstfti$(objext) \
_floattitf$(objext) _floatuntitf$(objext)
IBM128_SHARED_OBJS = $(IBM128_STATIC_OBJS:$(objext)=_s$(objext))
IBM128_CFLAGS = -Wno-psabi -mabi=ibmlongdouble -mno-gnu-attribute
# Turn off gnu attributes for long double size on all of the shared library
# modules, but leave it on for the static modules, except for the functions
# that explicitly process IBM 128-bit floating point. Shared libraries only
# have one gnu attribute for the whole library, and it can lead to warnings if
# somebody changes the long double format. We leave it on for the static
# modules to catch mis-compilation errors.
gcc_s_compile += -mno-gnu-attribute