On Sun, Feb 15, 2009 at 6:58 PM, rhabarber1848 <[email protected]> wrote: > Denys Vlasenko wrote: > >> Does attached patch help (instead of your proposal)? > > Hi, > > I tested uClibc SVN rev 25337 which includes your patch committed > as rev 25329: > http://lists.uclibc.org/pipermail/uclibc-cvs/2009-February/026000.html > > Unfortunately the bug is still present: > >> /root/tuxbox/work_uclibc2/image/cdk/lib/gcc/powerpc-tuxbox-linux-uclibc/3.4.6/../../../../powerpc-tuxbox-linux-uclibc/lib/nof/libm.so: > undefined reference to `__GI___isnanl' >> /root/tuxbox/work_uclibc2/image/cdk/lib/gcc/powerpc-tuxbox-linux-uclibc/3.4.6/../../../../powerpc-tuxbox-linux-uclibc/lib/nof/libm.so: > undefined reference to `__GI___isinfl'
__isinfX are declared here: bits/mathcalls.h __MATHDECL_PRIV (int,isinf,, (_Mdouble_ __value), (__const__)); and the macros are (in sanitized headers, produced by "make install"): # define __MATHDECL_PRIV(type, function,suffix, args, attrib) \ __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib); #define __MATHDECL_1(type, function,suffix, args) \ extern type __MATH_PRECNAME(function,suffix) args __THROW and __MATH_PRECNAME adds l, f, or nothing. My patch removed libm_hidden_proto() from __MATHDECL_PRIV: +#if defined _LIBC +# define __MATHDECL_PRIV(type, function,suffix, args, attrib) \ + __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib); \ libm_hidden_proto(__MATH_PRECNAME(__##function,suffix)) +#else +# define __MATHDECL_PRIV(type, function,suffix, args, attrib) \ + __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib); +#endif and I theorize you just didn't clean up old headers, so libm_hidden_proto() is still present in them, thus remapping the names to __GI_xxxx. Please try deleting and regenerating uclibc headers. If it does not help, find out which object file contains references to __GI___isinfl. Say, it's a file.o. Delete it, then run make to regenerate it. Copy gcc commandline which does recompile, replace -c with -E and run it. You may need to replace -o file.o with -o file.i This will generate preprocessed source "file.i" Send it to me. -- vda _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
