Bug 481

Summary: Sudo 1.8.0 libraries failure
Product: Sudo Reporter: Radu Mihaescu <radu.d.mihaescu>
Component: SudoAssignee: Todd C. Miller <Todd.Miller>
Status: RESOLVED WORKSFORME    
Severity: high    
Priority: low    
Version: 1.8.0   
Hardware: Sun   
OS: All   

Description Radu Mihaescu 2011-03-09 08:10:10 MST
Hello,
I have a Solaris 10 system on which I compiled and installed Sudo 1.8.0.
I made the configure operation with the initial configure script and also with the last one you delivered for a reported bug a few days ago(Bug 477).
When I launch Sudo execution I get the following message (in both configure cases):

axadmin@m4000:~$/usr/local/bin/sudo MF-start
sudo: unable to dlopen /usr/local/libexec/sudoers.so: ld.so.1: sudo: fatal: libgcc_s.so.1: open failed: No such file or directory

The libraries are preent, but I thinks sudoers.so cannot be opened. See the libraries location, rights and owners:

61ksh# ls -l /usr/local/lib/libgcc_s.so.1
-rw-r--r--   1 bin      bin       794012 Aug  5  2002 /usr/local/lib/libgcc_s.so.1
axadmin@m4000:~$ls -lart /usr/lib/ld.so.1
lrwxrwxrwx   1 root     root          17 Mar  8 11:27 /usr/lib/ld.so.1 -> ../../laxadmin@m4000:~$ls -l /usr/local/libexec/sudoers.so
-rwxr-xr-x   1 root     root      221972 Mar  8 17:57 /usr/local/libexec/sudoers.soib/ld.so.1

Thanks for your help !
Comment 1 Todd C. Miller 2011-03-09 08:43:09 MST
This sounds like a configuration problem with the gcc spec file--gcc is not including the rpath to allow libgcc_s.so.1 to be found.  This is how it looks for the sudo binaries I build on Solaris:

$ ldd /usr/local/libexec/sudoers.so | grep gcc
        libgcc_s.so.1 =>         /usr/sfw/lib/libgcc_s.so.1

$ elfdump /usr/local/libexec/sudoers.so | grep PATH
       [9]  RUNPATH           0x102c              /usr/sfw/lib
      [10]  RPATH             0x102c              /usr/sfw/lib

This comes from the following entry in the gcc specs file:

*libgcc:
%{static|static-libgcc:-R/usr/sfw/lib -lgcc -lgcc_eh}%{!static:%{!static-libgcc:{!shared:%{!shared-libgcc:-R/usr/sfw/lib -lgcc -lgcc_eh}%{shared-libgcc:-R/usr/fw/lib -lgcc_s%M -lgcc}}%{shared:-R/usr/sfw/lib -lgcc_s%M}}}

You may be able to work around it by adding -Wl,-R/usr/local/lib to SUDOERS_LDFLAGS in plugins/sudoers/Makefile.  You'll have to do a "make clean; make" afterwards.
Comment 2 Radu Mihaescu 2011-03-11 07:45:57 MST
(In reply to comment #1)
> This sounds like a configuration problem with the gcc spec file--gcc is
> not including the rpath to allow libgcc_s.so.1 to be found.  This is
> how it looks for the sudo binaries I build on Solaris:
> 
> $ ldd /usr/local/libexec/sudoers.so | grep gcc
>         libgcc_s.so.1 =>         /usr/sfw/lib/libgcc_s.so.1
> 
> $ elfdump /usr/local/libexec/sudoers.so | grep PATH
>        [9]  RUNPATH           0x102c              /usr/sfw/lib
>       [10]  RPATH             0x102c              /usr/sfw/lib
> 
> This comes from the following entry in the gcc specs file:
> 
> *libgcc:
> %{static|static-libgcc:-R/usr/sfw/lib -lgcc
> -lgcc_eh}%{!static:%{!static-libgcc:{!shared:%{!shared-libgcc:-R/usr/sfw/lib
> -lgcc -lgcc_eh}%{shared-libgcc:-R/usr/fw/lib -lgcc_s%M
> -lgcc}}%{shared:-R/usr/sfw/lib -lgcc_s%M}}}
> 
> You may be able to work around it by adding -Wl,-R/usr/local/lib to
> SUDOERS_LDFLAGS in plugins/sudoers/Makefile.  You'll have to do a "make
> clean; make" afterwards.

Hello Todd,

Thanks a lot, your solution solved my libraries problem.