Opened 14 years ago

Closed 13 years ago

#241 closed defect (fixed)

libc: build failure with newer gcc/binutils

Reported by: abwillis Owned by: bird
Priority: normal Milestone: libc-0.6.5
Component: libc Version: 0.6
Severity: normal Keywords:
Cc:

Description (last modified by bird)

With newer gcc/binutils fnstsw changes from using %ax to %eax: src/msun/i387/fenv.c

int
_STD(feupdateenv)(const fenv_t *envp)
{
-	int mxcsr, status;
+	int mxcsr;
+        uint16_t status;

	__fnstsw(&status);
	if (__HAS_SSE())
		__stmxcsr(&mxcsr);
	else
		mxcsr = 0;
	fesetenv(envp);
	feraiseexcept((mxcsr | status) & FE_ALL_EXCEPT);
	return (0);
}

The code is incorrectly using int (32-bit) for a 16-bit type (FSW).

Change History (3)

comment:1 by bird, 13 years ago

Description: modified (diff)
Milestone: libc-0.6.5
Status: newaccepted
Summary: libc build failurelibc: build failure with newer gcc/binutils
Version: 0.70.6

comment:2 by bird, 13 years ago

Status: acceptedassigned

comment:3 by bird, 13 years ago

Resolution: fixed
Status: assignedclosed

Corrected this in r3765 and r3766.

Note: See TracTickets for help on using tickets.