pkgsrc-Bugs archive

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

pkg/47322: pkgsrc/print/cups update for LIBS_SSP to include -libssp for solaris

>Number:         47322
>Category:       pkg
>Synopsis:       pkgsrc/print/cups update for LIBS_SSP to include -libssp for 
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 13 16:35:00 +0000 2012
>Originator:     Richard PALO
>Release:        pkgsrc trunk
SunOS devzone 5.11 oi_151a7 i86pc i386 i86pc Solaris

although cups will "build" and "install", other programs linking to any cups 
shared library using libssp_nonshared.a will fail with 'error symbol 
__stack_chk_guard not found' unless cups links at the same time with
an example program that fails is gutenprint-lib:

 ldd  -d /opt/pkg/lib/ =>  /opt/pkg/lib/ =>  /opt/pkg/lib/ =>    /lib/64/ =>        /opt/pkg/lib/ =>  /opt/pkg/lib/ =>  /opt/pkg/lib/ =>       /lib/64/ =>     /lib/64/ =>         /opt/pkg/lib/ =>        /opt/pkg/lib/ =>      /opt/pkg/lib/ =>         /opt/pkg/lib/ =>       /opt/pkg/lib/ =>    /lib/64/ =>         /opt/pkg/lib/ =>  /opt/pkg/lib/ =>  /opt/pkg/lib/ =>       /opt/pkg/lib/ =>      /opt/pkg/lib/ =>        /opt/pkg/lib/ =>        /lib/64/ =>   /lib/64/ =>        /lib/64/ =>       /opt/pkg/lib/ =>    /opt/pkg/lib/ =>  /opt/pkg/lib/ =>     /opt/pkg/lib/ =>         /opt/pkg/gcc47/lib/amd64/ =>     /lib/64/ =>    /lib/64/ =>    /lib/64/ =>         /opt/pbulk/gcc47/lib/amd64/
        symbol not found: __stack_chk_guard             
        symbol not found: __stack_chk_guard             

From what I can gather, normally the gcc compiler should do 'the right thing' 
when -fstack-protect is passed, but thanks to a hint gleaned here 
in addition to -lssp_nonshared, -lssp needs to be there as well.

Apparently a compiler problem, and a moving target, because I noticed that the 
pkgsrc Makefile for cups had this entry for SunOS: CONFIGURE_ENV+= 

after applying the following, (and deinstalling fully cups), I was able to 
rebuild cups and get over this problem in gutenprint:

richard@devzone:~/src/pkgsrc/print/cups$ cvs diff
Index: Makefile
RCS file: /cvsroot/pkgsrc/print/cups/Makefile,v
retrieving revision 1.193
diff -u -p -r1.193 Makefile
--- Makefile    8 Oct 2012 13:45:36 -0000       1.193
+++ Makefile    13 Dec 2012 16:29:15 -0000
@@ -70,7 +70,8 @@ CONFIGURE_ENV+=               DSOFLAGS=${LDFLAGS:M*:Q
 .include ""
 .if ${OPSYS} == "SunOS"
-CONFIGURE_ENV+=                LIBS_SSP=-lssp_nonshared
+LIBS_SSP =             -lssp_nonshared -lssp
+CONFIGURE_ENV+=                LIBS_SSP=${LIBS_SSP:M*:Q}
 LIBS.SunOS+=           -liconv

Home | Main Index | Thread Index | Old Index