1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

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
	<fpu_control.h> instead of <math/fpu_control.c>.
	* sysdeps/mips/mips32/fpu/Makefile: New file.
This commit is contained in:
Joseph Myers
2015-05-11 22:58:10 +00:00
parent b13b96ca05
commit 34cb304e5a
4 changed files with 13 additions and 2 deletions

View File

@ -0,0 +1,3 @@
ifeq ($(subdir),math)
aux += fpucw-helpers
endif

View File

@ -16,7 +16,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <math/fpu_control.c>
#include <fpu_control.h>
fpu_control_t
__mips_fpu_getcw (void)