comparison of function pointers
A message that is not in the archive (sent off-list or not yet received): 20021213192039.GB12890@systemhalted
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
Signature · 2 lines
J. David Anglin [email protected] National Research Council of Canada (613) 990-0752 (FAX: 952-6605)