From: Joseph Myers Date: Mon, 11 May 2015 22:58:10 +0000 (+0000) Subject: Fix mips16 __fpu_control static linking (bug 18397). X-Git-Tag: upstream/2.30~6091 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=34cb304e5a6df706e186d504b69af974bfc15a2f;p=external%2Fglibc.git Fix mips16 __fpu_control static linking (bug 18397). Programs are supposed to be able to define the __fpu_control variable, overriding the library's version to cause the floating-point control word to be set to the chosen value at startup. This is broken for mips16 for static linking because the library's __fpu_control variable is in the same object file as the helper functions used by fpu_control.h for mips16, so test-fpucw-ieee-static fails to link with multiple definitions of __fpu_control. This patch fixes this by putting the helpers in a separate file rather than overriding fpu_control.c. Tested for mips16 that this fixes the link failure and the ABI tests still pass. [BZ #18397] * sysdeps/mips/mips32/fpu/fpu_control.c: Move to .... * sysdeps/mips/mips32/fpu/fpucw-helpers.c: ... here. Include instead of . * sysdeps/mips/mips32/fpu/Makefile: New file. --- diff --git a/ChangeLog b/ChangeLog index 05c23e7..c998dd5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2015-05-11 Joseph Myers + + [BZ #18397] + * sysdeps/mips/mips32/fpu/fpu_control.c: Move to .... + * sysdeps/mips/mips32/fpu/fpucw-helpers.c: ... here. Include + instead of . + * sysdeps/mips/mips32/fpu/Makefile: New file. + 2015-05-11 Andreas Schwab [BZ #18007] diff --git a/NEWS b/NEWS index c1054cc..f4fe47f 100644 --- a/NEWS +++ b/NEWS @@ -17,7 +17,7 @@ Version 2.22 18007, 18019, 18020, 18029, 18030, 18032, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18125, 18128, 18138, 18185, 18197, 18206, 18210, 18211, 18247, 18287, - 18319, 18333, 18346. + 18319, 18333, 18346, 18397. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. diff --git a/sysdeps/mips/mips32/fpu/Makefile b/sysdeps/mips/mips32/fpu/Makefile new file mode 100644 index 0000000..951c408 --- /dev/null +++ b/sysdeps/mips/mips32/fpu/Makefile @@ -0,0 +1,3 @@ +ifeq ($(subdir),math) +aux += fpucw-helpers +endif diff --git a/sysdeps/mips/mips32/fpu/fpu_control.c b/sysdeps/mips/mips32/fpu/fpucw-helpers.c similarity index 97% rename from sysdeps/mips/mips32/fpu/fpu_control.c rename to sysdeps/mips/mips32/fpu/fpucw-helpers.c index eeb94c5..40391a3 100644 --- a/sysdeps/mips/mips32/fpu/fpu_control.c +++ b/sysdeps/mips/mips32/fpu/fpucw-helpers.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include +#include fpu_control_t __mips_fpu_getcw (void)