glibc/sysdeps/i386/i686/fpu/multiarch
Joseph Myers 9a7c643ac2 Fix i686 build with GCC 9.
This patch fixes the glibc build for i686 with current mainline GCC,
where there are warnings about inconsistent attributes for aliases in
certain files defining libm IFUNCs.

In three of the files, the aliases were defined in terms of internal
symbols such as __sinf, and copied attributes from file-local
declarations of those functions which lacked the nothrow attribute.
Since the nothrow attribute is present on the declarations from
<math.h> (which include declarations of those __-prefixed functions),
the natural fix was to include <math.h> in those files, replacing the
local declarations.

In the other three files, a more complicated __hidden_ver1 call was
involved in the warnings.  <math.h> has not been included at this
point and, furthermore, it is included indirectly only later in the
source file after macros have been defined to remap a function name
therein.  So there isn't an obvious declaration from which to copy the
attribute and it seems simplest and safest just to add __THROW to the
hidden_ver1 calls.

Tested for i686 (build-many-glibcs.py compilers build for
x86_64-linux-gnu with GCC mainline; full testsuite run with GCC 7).

	* sysdeps/i386/i686/fpu/multiarch/e_expf.c [SHARED]: Use __THROW
	with __hidden_ver1 call.
	* sysdeps/i386/i686/fpu/multiarch/e_log2f.c [SHARED]: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/e_logf.c [SHARED]: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/s_cosf.c: Include <math.h>.
	(__cosf): Do not declare here.
	* sysdeps/i386/i686/fpu/multiarch/s_sincosf.c: Include <math.h>.
	(__sincosf): Do not declare here.
	* sysdeps/i386/i686/fpu/multiarch/s_sinf.c: Include <math.h>.
	(__sinf): Do not declare here.
2018-11-12 18:47:05 +00:00
..
e_exp2f-sse2.c i386: Replace assembly versions of e_exp2f with generic e_exp2f.c 2017-10-22 08:00:18 -07:00
e_exp2f.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
e_expf-sse2.c i386: Replace assembly versions of e_expf with generic e_expf.c 2017-10-22 07:54:50 -07:00
e_expf.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00
e_log2f-sse2.c i386: Replace assembly versions of e_log2f with generic e_log2f.c 2017-10-22 08:10:18 -07:00
e_log2f.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00
e_logf-sse2.c i386: Replace assembly versions of e_logf with generic e_logf.c 2017-10-22 08:02:58 -07:00
e_logf.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00
e_powf-sse2.c i386: Replace assembly versions of e_powf with generic e_powf.c 2017-10-22 08:12:41 -07:00
e_powf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
libm-test-ulps math: Update i686 ulps 2018-06-01 19:32:18 +02:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
Makefile i386: Replace assembly versions of e_powf with generic e_powf.c 2017-10-22 08:12:41 -07:00
s_cosf-sse2.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_cosf.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00
s_sincosf-sse2.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sincosf.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00
s_sinf-sse2.S Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
s_sinf.c Fix i686 build with GCC 9. 2018-11-12 18:47:05 +00:00