undefined reference to `__ctype_b'

Gunnar Lindberg <[email protected]> Thu, 23 Feb 2006 12:44:48 +0100 (MET)
Newsgroups gmane.comp.security.virus.vtools
Message-ID <[email protected]>
I had to re-build sophie the other day:
/usr/local/lib/libsavi.so: undefined reference to `__ctype_b'
/usr/local/lib/libsavi.so: undefined reference to `__ctype_tolower'

My 0.01c is that the recent version of libsavi is based on a version
of libc that contains more stuff that my libc does.

Now, the "kocher" way would be to replace or upgrade libc, which is
non-trivial. Since the old binary has served well also with the
recent libsavi I assumed that this is just an ld hickup and instead
applied the kludge you see below.

	Gunnar Lindberg

*** sophie_init.c.ORIG  Tue Jan 27 17:04:34 2004
--- sophie_init.c       Thu Feb 16 09:09:13 2006
***************
*** 1,6 ****
--- 1,15 ----
  #include "sophie.h"
  #include "sophie_syslog.h"
  
+ __ctype_b()
+ {
+     fprintf(stderr, "__ctype_b() @ sophie_init.c\n");
+ }
+ __ctype_tolower()
+ {
+     fprintf(stderr, "__ctype_tolower @ sophie_init.c\n");
+ }
+ 
  #define       STRNCMP(A, B, X)        (strncasecmp(A, B, X) == 0)
  
  static int show_config_details(CISavi3 *pSAVI, CIEngineConfig *pConfig);