Re: weird error with nmh

From: Ian FREISLICH <ianf_at_clue.co.za>
Date: Mon, 25 Jun 2007 08:08:49 +0200
Gary Jennejohn wrote:
> I'm using exmh with nmh on a freshly installed AMD64-current:
> 	7.0-CURRENT FreeBSD 7.0-CURRENT #4: Sat Jun 23 19:29:01 CEST
> 2007
> 
> nmh uses its own version of strcasecmp() because in many cases it
> passes NULL pointers to it and must check for that.
> 
> However, somehow the version in libc gets used rather than the version
> from nmh and calling e.g. repl results in a SIGSEGV because the NULL
> pointer is dereferenced.
> 
> I was forced to rename the routine to nmhstrcasecmp() all over the
> place. After that repl works.
> 
> My question - why isn't the version in nmh overriding the version in
> libc? Am I misunderstanding something here?

I traced this problem to the recent gcc import and then ran out of
time to debug further.  Glad that you've got furter than I did.

It seems that strcasemp is defined in the repl binary:
08061abb T strcasecmp
         U strcat_at__at_FBSD_1.0
         U strchr_at__at_FBSD_1.0
         U strcmp_at__at_FBSD_1.0
         U strcpy_at__at_FBSD_1.0
         U strdup_at__at_FBSD_1.0
         U strerror_at__at_FBSD_1.0

So I'm really not sure why the linker is choosing libc's version
over this one.


Ian

--
Ian Freislich
Received on Mon Jun 25 2007 - 04:09:08 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC