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

Bug#531821: cups: fails to cross build no -lssp_nonshared found



On Thu, 04 Jun 2009 13:36:58 +0200
Peter Korsgaard <jacmet@sunsite.dk> wrote:

> >>>>> "Neil" == Neil Williams <codehelp@debian.org> writes:
> 
>  Neil> Package: buildd.emdebian.org
>  Neil> Severity: important
> 
>  Neil> cups now fails to cross-build, even with gccross support. It
>  Neil> seems to be related to the stack protection that is being
>  Neil> identified during the cross-build but is not available at link
>  Neil> time. Build log attached.
> 
> That sounds related to
> http://git.buildroot.net/buildroot/tree/package/cups/cups-fix-stack-protector-check.patch

Thanks for the hint. I note you found it in 1.3.9 and Debian (therefore
Emdebian) would be on 1.3.10 - the gap is because the Emdebian systems
are being audited and the autobuilders are not currently running, so
the last successful version was 1.3.8.

Thing is, 1.3.8 worked, without the patch.

        AC_TRY_COMPILE(,,
                OPTIM="$OPTIM -fstack-protector"
                AC_MSG_RESULT(yes),
                AC_MSG_RESULT(no))
        CFLAGS="$OLDCFLAGS"

Same in 1.3.7.

Also, the stack protection should have been fixed in gcc-4.3 

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=469517#24

This, in turn, raises the spectre that patching the m4 test (although
it does appear to allow the build to proceed) will merely produce
binaries that seg fault on arm or armel.

With this change, cups still fails to cross-build, it just fails
somewhere else:

sfnt.c: In function ‘otf_subset’:
sfnt.c:1201: warning: unused variable ‘iB’
make[3]: Leaving directory `/opt/emdebian/trunk/c/cups/trunk/cups-1.3.10/filter/fontembed'
Linking texttopdf...
fontembed/libfontembed.a: could not read symbols: File format not recognized
collect2: ld returned 1 exit status
make[2]: *** [texttopdf] Error 1
make[2]: Leaving directory `/opt/emdebian/trunk/c/cups/trunk/cups-1.3.10/filter'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/opt/emdebian/trunk/c/cups/trunk/cups-1.3.10'
make: *** [debian/stamp-makefile-build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

That, in turn, is because fontembed/ is being built with the native
compiler, not the cross-compiler:

filter$ file error.o
error.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped

$ file fontembed/dynstring.o 
fontembed/dynstring.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

So that would never work.

PDF filters can be disabled or we'll have to work out how to pass the
right CC to the Makefile in the filter directory.

> Which is now in upstream svn (http://www.cups.org/str.php?L3198).

With the comment:

Moving this to CUPS 1.4; don't want to potentially destabilize 1.3.x...

:-(

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

Attachment: pgpPpKPpb7spo.pgp
Description: PGP signature


Reply to: