Bug 3468 - libc(__setfpucw) is inaccessible
libc(__setfpucw) is inaccessible
Status: CLOSED CURRENTRELEASE
Product: Red Hat Linux
Classification: Retired
Component: glibc (Show other bugs)
6.0
i386 Linux
low Severity medium
: ---
: ---
Assigned To: Cristian Gafton
:
: 547 3551 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 1999-06-14 18:50 EDT by romain
Modified: 2008-05-01 11:37 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 1999-07-08 22:04:17 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description romain 1999-06-14 18:50:12 EDT
__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 07:39:59 EDT
*** 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@redhat.com  01/18/99 20:22 -------
Programs like ? ....

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

------- Additional Comments From ewt@redhat.com  05/03/99 12:11 -------
this needs to be fixed for glibc 2.0 apps
Comment 2 Jeff Johnson 1999-06-17 20:09:59 EDT
*** 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 10:31:59 EDT
Which is the prefered / correct way of setting the control word,
__setfpucw or _FPU_SETCW ?
Comment 4 Cristian Gafton 1999-07-08 22:04:59 EDT
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.