Forum: CFEngine Help
Subject: Community 3.2.3 HP-UX 11.11 libpromises link problems
Author: mvpel
Link to topic: https://cfengine.com/forum/read.php?3,24735,24735#msg-24735

It's unable to find a few different functions.

  CCLD   cf-know
libtool: link: warning: this platform does not like uninstalled shared libraries
libtool: link: warning: `cf-know' will be relinked during installation
/usr/ccs/bin/ld: Unsatisfied symbols:
   HashIteratorInit (first referenced in manual.o) (code)
   CF_OCCUR (first referenced in cfknow.o) (data)
   HashIteratorNext (first referenced in manual.o) (code)
   NameVersion (first referenced in manual.o) (code)
   PrintVersionBanner (first referenced in cfknow.o) (code)
   CF_TOPICS (first referenced in cfknow.o) (data)
collect2: ld returned 1 exit status
gmake[2]: ***  Error 1
gmake[2]: Leaving directory `/home/pelletm/src/cfengine-3.2.3/src'
gmake[1]: ***  Error 2
gmake[1]: Leaving directory `/home/pelletm/src/cfengine-3.2.3/src'
gmake: ***  Error 1
gbrhpq$
-----

The PrintVersionBanner function is in src/generic_agent.c, and that file is in 
the .libs directory:

gbrhpq$ ls -ls .libs/*generic*
 432 -rw-r--r--   1 pelletm    tty         213947 Feb  6 10:57 
libpromises_la-generic_agent.o
gbrhpq$

It looks like it's supposed to be in the libpromises library:

gbrhpq$ grep generic_agent.o *
libpromises_la-generic_agent.lo:pic_object='.libs/libpromises_la-generic_agent.o'
gbrhpq$

Does the following nm output mean that the libpromises.sl.1.0 file has 
PrintVersionBanner in it?

gbrhpq$ nm -b libpromises.sl.1.0 | grep PrintVersionBanner
PrintVersionBanner  |    398996|extern|entry  |
PrintVersionBanner  |    399048|extern|code   |$CODE$
PrintVersionBanner  |    866840|uext  |stub   |
gbrhpq$

And it looks like the cf-know CCLD knows to include libpromises:

...
echo "  CCLD  " cf-know;/bin/sh ../libtool --silent --tag=CC   --mode=link gcc 
-g -Wreturn-type -Wmissing-prototypes -Wuninitialized   -D_REENTRANT -pthread 
-g -O2    -I/usr/local/include -I/usr/local/include     -D_REENTRANT -pthread 
-g -O2    -I/usr/local/include -I/usr/local/include      -L/usr/local/lib 
-R/usr/local/lib -L/usr/local/lib64 -L/usr/local/lib     -o cf-know cfknow.o 
manual.o libpromises.la -lpthread -lrt -lm      -lpcre  -ldb -lcrypto     -lc
gbrhpq$

So I'm not quite sure what's going on here. Maybe something about libtool with 
which I'm not familiar? Maybe I should try using GNU LD rather than the HP-UX 
/usr/ccs/bin/ld?

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to