gcc/libgcc
Jakub Jelinek cda41ce0e8 rs6000: Fix up libgcc ABI when built with --with-long-double-format=ieee [PR97653]
__floatunditf and __fixtfdi and a couple of other libgcc{.a,_s.so}
entrypoints for backwards compatibility should mean IBM double double
handling (i.e. IFmode), gcc emits such calls for that format and
form IEEE long double emits *kf* instead.
When gcc is configured without --with-long-double-format=ieee ,
everything is fine, but when it is not, we need to compile those
libgcc sources with -mno-gnu-attribute -mabi=ibmlongdouble.
The following snippet in libgcc/config/rs6000/t-linux was attempting
to ensure that, and for some routines it works fine (e.g. for _powitf2).
But, due to 4 different types of bugs it doesn't work for most of those
functions, which means that in --with-long-double-format=ieee
configured gcc those *tf* entrypoints instead handle the long double
arguments as if they were KFmode.

The bugs are:
1) the first few objs properly use $(objext) as suffix, but
   several other contain a typo and use $(object) instead,
   which is a variable that isn't set to anything, so we don't
   add .o etc. extensions
2) while unsigned fix are properly called _fixuns*, unsigned float
   are called _floatun* (without s), but the var was using there
   the extra s and so didn't match
3) the variable didn't cover any of the TF <-> TI conversions,
   only TF <-> DI conversions
4) nothing in libgcc_s.so was handled, as those object files are
   called *_s.o rather than *.o and IBM128_SHARED_OBJS used wrong
   syntax of the GNU make substitution reference, which should be
   $(var:a=b) standing for $(patsubst a,b,$(var)) but it used
   $(var🅰️b) instead

2021-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/97653
	* config/rs6000/t-linux (IBM128_STATIC_OBJS): Fix spelling, use
	$(objext) instead of $(object).  Use _floatunditf instead of
	_floatunsditf.  Add tf <-> ti conversion objects.
	(IBM128_SHARED_OBJS): Use proper substitution reference syntax.
2021-04-03 10:05:32 +02:00
..
config rs6000: Fix up libgcc ABI when built with --with-long-double-format=ieee [PR97653] 2021-04-03 10:05:32 +02:00
soft-fp soft-fp: Update soft-fp from glibc 2019-05-17 07:37:39 -07:00
ChangeLog Daily bump. 2021-03-30 00:16:29 +00:00
Makefile.in Update copyright years. 2021-01-04 10:26:59 +01:00
config.host Update copyright years. 2021-01-04 10:26:59 +01:00
config.in gcov: use mmap pools for KVP. 2021-03-03 14:21:45 +01:00
configure gcov: use mmap pools for KVP. 2021-03-03 14:21:45 +01:00
configure.ac gcov: use mmap pools for KVP. 2021-03-03 14:21:45 +01:00
crtstuff.c Update copyright years. 2021-01-04 10:26:59 +01:00
dfp-bit.c Fix a comment line that was too long. 2021-02-22 15:54:39 -05:00
dfp-bit.h Require GLIBC 2.32 for Decimal/_Float128 conversions. 2021-03-29 16:43:14 -04:00
divmod.c Update copyright years. 2021-01-04 10:26:59 +01:00
emutls.c Update copyright years. 2021-01-04 10:26:59 +01:00
enable-execute-stack-empty.c enable-execute-stack-empty.c (__enable_execute_stack): Add prototype. 2011-06-22 13:20:07 +02:00
enable-execute-stack-mprotect.c Update copyright years. 2021-01-04 10:26:59 +01:00
find-symver.awk Update copyright years. 2021-01-04 10:26:59 +01:00
fixed-bit.c Update copyright years. 2021-01-04 10:26:59 +01:00
fixed-bit.h Update copyright years. 2021-01-04 10:26:59 +01:00
fixed-obj.mk Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. 2012-08-23 15:41:03 +00:00
floatunsidf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsisf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsitf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
floatunsixf.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
fp-bit.c Update copyright years. 2021-01-04 10:26:59 +01:00
fp-bit.h Update copyright years. 2021-01-04 10:26:59 +01:00
gbl-ctors.h Update copyright years. 2021-01-04 10:26:59 +01:00
gcov.h Update copyright years. 2021-01-04 10:26:59 +01:00
gen-fixed.sh
generic-morestack-thread.c Update copyright years. 2021-01-04 10:26:59 +01:00
generic-morestack.c Update copyright years. 2021-01-04 10:26:59 +01:00
generic-morestack.h Update copyright years. 2021-01-04 10:26:59 +01:00
gstdint.h
gthr-posix.h Update copyright years. 2021-01-04 10:26:59 +01:00
gthr-single.h Update copyright years. 2021-01-04 10:26:59 +01:00
gthr.h Update copyright years. 2021-01-04 10:26:59 +01:00
libgcc-std.ver.in Update copyright years. 2021-01-04 10:26:59 +01:00
libgcc2.c libgcc: Avoid signed negation overflow in __powi?f2 [PR99236] 2021-02-24 20:07:38 +01:00
libgcc2.h Update copyright years. 2021-01-04 10:26:59 +01:00
libgcov-driver-system.c Update copyright years. 2021-01-04 10:26:59 +01:00
libgcov-driver.c profiling: fix streaming of TOPN counters 2021-03-04 16:21:52 +01:00
libgcov-interface.c Update copyright years. 2021-01-04 10:26:59 +01:00
libgcov-merge.c Restore profile reproducibility. 2021-01-25 13:30:34 +01:00
libgcov-profiler.c Update copyright years. 2021-01-04 10:26:59 +01:00
libgcov-util.c Update copyright years. 2021-01-04 10:26:59 +01:00
libgcov.h libgcov: Fix build on Darwin [PR99406] 2021-03-06 16:22:27 +01:00
memcmp.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memcpy.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memmove.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
memset.c Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
mkheader.sh Update copyright years. 2021-01-04 10:26:59 +01:00
mkmap-flat.awk Update copyright years. 2021-01-04 10:26:59 +01:00
mkmap-symver.awk Update copyright years. 2021-01-04 10:26:59 +01:00
offloadstuff.c Update copyright years. 2021-01-04 10:26:59 +01:00
shared-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
siditi-object.mk Move libgcc2 to toplevel libgcc 2011-11-02 15:23:48 +00:00
static-object.mk Add the nvptx port. 2014-11-10 16:12:42 +00:00
sync.c Update copyright years. 2021-01-04 10:26:59 +01:00
udivhi3.c Update copyright years. 2021-01-04 10:26:59 +01:00
udivmod.c Update copyright years. 2021-01-04 10:26:59 +01:00
udivmodhi4.c Update copyright years. 2021-01-04 10:26:59 +01:00
udivmodsi4.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-arm-common.inc Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-c.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-compat.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-compat.h Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2-fde.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2-fde.h Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-dw2.h Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-generic.h Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-pe.h Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-seh.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind-sjlj.c Update copyright years. 2021-01-04 10:26:59 +01:00
unwind.inc Update copyright years. 2021-01-04 10:26:59 +01:00
vtv_end.c Update copyright years. 2021-01-04 10:26:59 +01:00
vtv_end_preinit.c Update copyright years. 2021-01-04 10:26:59 +01:00
vtv_start.c Update copyright years. 2021-01-04 10:26:59 +01:00
vtv_start_preinit.c Update copyright years. 2021-01-04 10:26:59 +01:00