find-sym attempts to figure out where one or more unresolved externals
you are seeing lives. These errors are common when porting C code from
one *ix to another.
It currently knows how to search in a variety of system libraries, and
system header files.
Later, it may also be able to search an application.
find-sym has two main modes of operation:
It can parse stdin for some "unresolved external" errors from
gcc (See the "-p" flag).
It can search for only a single symbol, specified on the command
line (See the "-s" flag).
BTW, find-sym has been ported to Linux (RHEL 3 and Fedora Core 3),
Solaris, AIX 5.1, IRIX, Tru64 and DragonFly BSD so far. If you
know sh/ksh/bash scripting, you'll probably find it fairly simple to
port. Just look for the case statements.
put it somewhere on your $PATH, EG $HOME/bin is probably on your
$PATH. If it's not, you can add it by editing your ~/.bashrc or
~/.cshrc, depending on what shell you use.
Make it executable:
chmod 755 $HOME/bin/find-sym
run "find-sym -s ldap_start_tls_s" (for example), or run find-sym
with no arguments for usage - EG, parsing messages from gcc for
The program will hopefully output some hints about what flags you
can add to your compile or link
The way that I've found most often works for adding such flags is
to put them in your "$CC" variable prior to running ./configure, EG,
when using sh/ksh/bash:
CC="gcc -L/usr/local/lib -lldap-whatever"
...or similar with setenv for csh/tcsh. You can do much the same thing
if find-sym suggests a -I instead, as well. If you've already run
./configure, you may want to "rm config.cache" before running it