512vincent / pdsh

Automatically exported from code.google.com/p/pdsh
GNU General Public License v2.0
0 stars 0 forks source link

Unsatisfied code symbol 'rcmd_opt_set' on HP-UX 11.23 #18

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I built pdsh-2.25 on HP-UX 11i v2 using the HP C/aC++ compiler.  But when I 
attempt to execute pdsh the following occurs:

/u06/pdsh-2.25/bin/pdsh  date
/usr/lib/hpux32/dld.so: Unsatisfied code symbol 'rcmd_opt_set' in load module 
'/u06/pdsh-2.25/lib/pdsh/sshcmd.so'.
Killed

wilma:/home/root/pdsh-2.25# /u06/pdsh-2.25/bin/pdsh  -V
pdsh-2.25 (+readline)
rcmd modules: ssh
misc modules: machines,dshgroup

This is what I used:

./configure   --prefix /u06/pdsh-2.25 \
              --with-dshgroups \
              --with-readline  \
              --with-machines  \
              --with-ssh       \
              --without-rsh    \
              --without-exec   \
              CFLAGS="-O -I/usr/local/include -I/usr/include"  \
              LDFLAGS="-L/usr/local/lib/hpux32 -L/usr/lib/hpux32" \
              LIBS="-lcext"

Any clues, hints, incantations appreciated.  config.log attached.

Original issue reported on code.google.com by bwir...@gmail.com on 19 Apr 2011 at 1:16

Attachments:

GoogleCodeExporter commented 8 years ago
rcmd_opt_set() is a symbol that the pdsh binary needs to provide to the dlopened
module. I think there are other symbols that are provided by the pdsh binary
itself to the underlying modules, so I don't think this is a case where the
symbols from pdsh aren't global or are otherwise hidden from the loaded modules.
I have seen some linkers that "throw away" symbols that are unused when they
link a final executable, and since rcmd_opt_set isn't used by pdsh itself, it
could be that the HPUX linker is not including this symbol in the final binary.

Unfortunately I don't think I have access to an HPUX system to test this theory,
and I don't know HPUX very well at all. If you have an nm program that is 
similar
to the version on linux, then you could try seeing if there is a dynamic symbol
called rcmd_opt_set in pdsh with the command:

grondo@atlas1 ~ >nm -D /usr/bin/pdsh | grep rcmd_opt_set
0000000000409660 T rcmd_opt_set

If there isn't an rcmd_opt_set symbol, then we'll have to figure out the
right linker flags to get all symbols included in the final pdsh executable 
(for example, on AIX it is -Wl,-bexpall)

If there is an rcmd_opt_set symbol, then we might have to do some advanced
debugging to determine why that symbol is not visible to the sshcmd.so module.

mark

Original comment by mark.gro...@gmail.com on 19 Apr 2011 at 1:59

GoogleCodeExporter commented 8 years ago
You are correct - the HPUX compiler needed a "-Wl,-E" option to get the symbol 
added to the symbol dictionary.  Now pdsh works fine.

Thanks!! 

Original comment by bwir...@gmail.com on 19 Apr 2011 at 4:22

GoogleCodeExporter commented 8 years ago
This issue was closed by revision r1317.

Original comment by mark.gro...@gmail.com on 19 Apr 2011 at 5:09

GoogleCodeExporter commented 8 years ago
Thanks for finding the solution so quickly. I added a special case similar
to AIX in configure (committed to svn). If you have a chance, it would be
greatly appreciated if you could check out the pdsh trunk and do a test build.
You could even run 'make check' after the build to run the full test suite ;-)

Original comment by mark.gro...@gmail.com on 19 Apr 2011 at 5:12

GoogleCodeExporter commented 8 years ago
I'll be glad to test as soon as I figure out how to download the source without 
an svn client. ;-) 

Original comment by bwir...@gmail.com on 20 Apr 2011 at 12:18

GoogleCodeExporter commented 8 years ago
Oh, yeah, that could be a problem. I tarred up the svn trunk and
put it here, hopefully it works for you:

http://dl.dropbox.com/u/19213925/pdsh-2.25%2Br1319.tar.gz

Original comment by mark.gro...@gmail.com on 20 Apr 2011 at 1:22