pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/46867: Tk 8.5.12 does not build on Solaris



>Number:         46867
>Category:       pkg
>Synopsis:       Tk 8.5.12 does not build on Solaris
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Aug 28 12:00:01 +0000 2012
>Originator:     Jörn Clausen
>Release:        
>Organization:
University of Bielefeld
>Environment:
>Description:
The latest release of x11/tk (8.5.12nb1) does not link on Solaris 10:

gcc -O -I/usr/include -I/usr/pkgsrc/20120822/include -O -O -I/usr/include 
-I/usr/pkgsrc/20120822/include -pipe -I/usr/include 
-I/usr/pkgsrc/20120822/include  -L/usr/lib -Wl,-R/usr/lib 
-L/usr/pkgsrc/20120822/lib -Wl,-R/usr/pkgsrc/20120822/lib tkAppInit.o 
-L/pkgsrc/source/pkgsrc/x11/tk/work.pkgsrc-i86/tk8.5.12/unix -ltk85 
-Wl,-R/usr/pkgsrc/20120822/lib -L/usr/pkgsrc/20120822/lib -ltcl85  -lpthread 
-L/usr/pkgsrc/20120822/lib -Wl,-R/usr/pkgsrc/20120822/lib -lX11 -lXext  -ldl  
-lsocket -lnsl -lpthread -lm  -Wl,-R,/usr/pkgsrc/20120822/lib -o wish
ld: fatal: library -ltk85: not found
ld: fatal: File processing errors. No output written to wish
collect2: error: ld returned 1 exit status
*** Error code 1

The shared object is present, though:

$ ls -l ./work.pkgsrc-i86/tk8.5.12/unix/libtk8.5.so
-rwxr-xr-x   1 pkgsrc   software 1243932 Aug 28 12:51 
./work.pkgsrc-i86/tk8.5.12/unix/libtk8.5.so

Building the package outside pkgsrc, but referencing pkgsrc, succeeds:

$ env CPPFLAGS="-I/usr/pkgsrc/20120822/include" 
LDFLAGS="-L/usr/pkgsrc/20120822/lib -R/usr/pkgsrc/20120822/lib" ./configure 
--with-tcl=/usr/pkgsrc/20120822/lib
...
$ gmake
...
gcc -O  -pipe -I/usr/pkgsrc/20120822/include  -L/usr/pkgsrc/20120822/lib 
-R/usr/pkgsrc/20120822/lib  tkAppInit.o -L/pkgsrc/source/local/tk8.5.12/unix 
-ltk8.5 -Wl,-R/usr/pkgsrc/20120822/lib -L/usr/pkgsrc/20120822/lib -ltcl85  
-lpthread -L/usr/pkgsrc/20120822/lib -lX11 -Wl,-R/usr/pkgsrc/20120822/lib 
-L/usr/pkgsrc/20120822/lib -lXft   -ldl  -lsocket -lnsl -lpthread -lm  \
        -Wl,-R,/usr/pkgsrc/20120822/lib -o wish
$

I did not spot any significant differences between the two command lines. In 
both cases, the path leading to the shared object is referenced by -L.

The dependencies of the two shared objects are different, though. Successful 
stand-alone version:

$ ldd libtk8.5.so
        libpthread.so.1 =>       /lib/libpthread.so.1
        libX11.so.6 =>   /usr/pkgsrc/20120822/lib/libX11.so.6
        libXft.so.2 =>   /usr/pkgsrc/20120822/lib/libXft.so.2
        libdl.so.1 =>    /lib/libdl.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libm.so.2 =>     /lib/libm.so.2
        libgcc_s.so.1 =>         /usr/local/gcc/gcc-4.7.0/lib/libgcc_s.so.1
        libc.so.1 =>     /lib/libc.so.1
        libxcb.so.1 =>   /usr/pkgsrc/20120822/lib/libxcb.so.1
        libXau.so.6 =>   /usr/pkgsrc/20120822/lib/libXau.so.6
        libXdmcp.so.6 =>         /usr/pkgsrc/20120822/lib/libXdmcp.so.6
        libfontconfig.so.1 =>    /usr/pkgsrc/20120822/lib/libfontconfig.so.1
        libexpat.so.1 =>         /usr/pkgsrc/20120822/lib/libexpat.so.1
        libfreetype.so.6 =>      /usr/pkgsrc/20120822/lib/libfreetype.so.6
        libz.so.1 =>     /usr/pkgsrc/20120822/lib/libz.so.1
        libbz2.so.0 =>   /usr/pkgsrc/20120822/lib/libbz2.so.0
        libXrender.so.1 =>       /usr/pkgsrc/20120822/lib/libXrender.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1

Failed pkgsrc version:

$ ldd work.pkgsrc-i86/tk8.5.12/unix/libtk8.5.so
        libpthread.so.1 =>       /lib/libpthread.so.1
        libX11.so.6 =>   /usr/pkgsrc/20120822/lib/libX11.so.6
        libXext.so.0 =>  /usr/pkgsrc/20120822/lib/libXext.so.0
        libXext.so.0 (SUNW_1.1) =>       (version not found)
        libXext.so.0 (SUNWprivate) =>    (version not found)
        libdl.so.1 =>    /lib/libdl.so.1
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libm.so.2 =>     /lib/libm.so.2
        libgcc_s.so.1 =>         /usr/local/gcc/gcc-4.7.0/lib/libgcc_s.so.1
        libc.so.1 =>     /lib/libc.so.1
        libxcb.so.1 =>   /usr/pkgsrc/20120822/lib/libxcb.so.1
        libXau.so.6 =>   /usr/pkgsrc/20120822/lib/libXau.so.6
        libXdmcp.so.6 =>         /usr/pkgsrc/20120822/lib/libXdmcp.so.6
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1

Yet I don't see anything in the pkgsrc patches that looks suspicious. Any 
ideas???

 

Probably unrelated: I found this in the configure output of the pkgsrc version 
a little bit confusing:

checking for tclsh... 
/pkgsrc/source/pkgsrc/x11/tk/work.pkgsrc-i86/.buildlink/bin/tclsh8.5

I hope this does not end up in the binary...
>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index