Bug 3468 - libc(__setfpucw) is inaccessible
Summary: libc(__setfpucw) is inaccessible
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: glibc
Version: 6.0
Hardware: i386
OS: Linux
low
medium
Target Milestone: ---
Assignee: Cristian Gafton
QA Contact:
URL:
Whiteboard:
: 547 3551 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 1999-06-14 22:50 UTC by romain
Modified: 2008-05-01 15:37 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 1999-07-09 02:04:17 UTC
Embargoed:


Attachments (Terms of Use)

Description romain 1999-06-14 22:50:12 UTC
__setfpucw is normally a user accessible entry point in
libc. In RH 6.0, it appears to be static, preventing
precompiled programs from using it in the shared library.
__setfpucw is still accessible if you want to statically
link with libc.a, but most folks can't (precompiled
programs) or don't want to.

romain-pc> nm -p /lib/libc-2.1.1.so | grep __setfpucw
0001db4c t __setfpucw
romain-pc> nm -p /usr/lib/libc.a | grep __setfpucw
U __setfpucw
00000000 T __setfpucw
romain-pc>

RH 6.0 diverges from other Linux (including RH 5.2) by
hiding it in libc.so.

Comment 1 Jeff Johnson 1999-06-15 11:39:59 UTC
*** Bug 547 has been marked as a duplicate of this bug. ***

many programs fail with message:
error in loading shared libraries: <progname>: undefined
symbol: __setfpucw
this functions is supposed to be declared (as per man page)
in /usr/include/i386/fpu_control.h, but there is no such
file, only /usr/include/fpu_control.h.

------- Additional Comments From gafton  01/18/99 20:22 -------
Programs like ? ....

------- Additional Comments From gafton  02/16/99 12:07 -------
Programs need a recompile

------- Additional Comments From ewt  05/03/99 12:11 -------
this needs to be fixed for glibc 2.0 apps

Comment 2 Jeff Johnson 1999-06-18 00:09:59 UTC
*** Bug 3551 has been marked as a duplicate of this bug. ***

If I execute an application on RedHat 6.0 that was compiled
on a RedHat 5.2, get the following message:
  zeus: error in loading shared libraries:
  zeus: undefined symbol: __setfpucw
Zeus is the name of my aplication program.  I know I need to
recode the floating-point exception routine in RedHat 6.0
but I should be able to run programs compiled on RedHat 5.2
on RedHat 6.0 without any problems.  The binary program for
__setfpucw should be provided by glibc even though new
programs compiled using the new header files provided by
RedHat 6.0 will never use them.  They need to be made
available for programs compiled with earlier versions of
glibc.  The same program compiled with libc5 prior to RedHat
5.0 will run on RedHat 6.0.

Comment 3 martin.waller 1999-07-06 14:31:59 UTC
Which is the prefered / correct way of setting the control word,
__setfpucw or _FPU_SETCW ?

Comment 4 Cristian Gafton 1999-07-09 02:04:59 UTC
Added __setfpucw to the compatibility handler as an aliased call to
_FPU_SETCW. A new glibc rpm that will include a new glibc-compat
add-on will be available from rawhide shortly.


Note You need to log in before you can comment on or make changes to this bug.