[parisc-linux] comparison of function pointers

John David Anglin dave@hiauly1.hia.nrc.ca
Sat, 14 Dec 2002 22:02:23 -0500 (EST)


GCC 3.3 and later has a new function __canonicalize_funcptr_for_compare
in libgcc.a for comparing function pointers.  There are routines in glibc
that compare function pointers and therefore depend on the presence
of this function if glibc is built with gcc-3.3 or later.  These
are gconv_open.o, signal.o, sigvec.o, sysv_signal.o, sigset.o, malloc.o
sleep.o, getaddrinfo.o, svc.o, svc_simple.o.

Earlier versions of gcc don't have the function.  Thus, if you try to
use an earlier version of gcc with a library built with gcc-3.3 or later,
the routine won't be present in libgcc.  One solution might be to add
__canonicalize_funcptr_for_compare to glibc.  This might be a good idea
as it depends closely on the implementation of the dynamic linker
interface in glibc for function calls.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)