__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.
*** 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
*** 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.
Which is the prefered / correct way of setting the control word, __setfpucw or _FPU_SETCW ?
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.