Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Mar 2006 21:44:18 +0200
From:      Thomas-Martin Seck <tmseck-lists@netcologne.de>
To:        "[LoN]Kamikaze" <LoN_Kamikaze@gmx.de>
Cc:        freebsd-ports@freebsd.org
Subject:   Re: USE_GCC vs. packaging
Message-ID:  <20060329194418.GC2956@hardy.tmseck.homedns.org>
In-Reply-To: <442AD29F.5070807@gmx.de>
References:  <200603291801.k2TI1HLG021666@hardy.tmseck.homedns.org> <442AD29F.5070807@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
* [LoN]Kamikaze (LoN_Kamikaze@gmx.de):

> The issue has been discussed before, the problem that a lang/gccXX
> package is only a dependency if it was used for building. Previous
> builds linked those libraries statically into programs causing larger
> binaries, but also making the built package independent from the compiler.

No, static vs. dynamic does not seem be the problem. I suspect that the
linker now behaves different, pulling in dependencies it did not pull in
before.

This is from a fltk-dillo where both fltk2 and dillo where built with
gcc-3.4.6_20060221:

% file /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi: ELF 32-bit LSB
executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 4.9.2,
dynamically linked (uses shared libs), stripped

% ldd /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi:
        libglib-12.so.3 => /usr/local/lib/libglib-12.so.3 (0x280a5000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x280c7000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x28185000)
        libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x2818d000)
        libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x28190000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x281a1000)
        libm.so.2 => /usr/lib/libm.so.2 (0x281af000)
        libc_r.so.4 => /usr/lib/libc_r.so.4 (0x281ca000)
        libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0x28281000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x282ae000)
        libc.so.4 => /usr/lib/libc.so.4 (0x282b6000)
        libXThrStub.so.6 => /usr/X11R6/lib/libXThrStub.so.6 (0x28350000)
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x28352000)
        libz.so.2 => /usr/lib/libz.so.2 (0x283b7000)
        libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x283c4000)

This version of fltk-dillo can be distributed via a package and runs
without issues on a vanilla 4.11 system.

This is from a fltk-dillo where both fltk2 and dillo where built with
the latest gcc-3.4.6 from ports:

% ldd /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi: ELF 32-bit LSB
executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 4.9.2,
dynamically linked (uses shared libs), stripped

% ldd /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi:
        libglib-12.so.3 => /usr/local/lib/libglib-12.so.3 (0x280a4000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x280c6000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x28184000)
        libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x2818c000)
        libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x2818f000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x281a0000)
        libstdc++.so.6 => /usr/local/lib/gcc/i386-portbld-freebsd4.11/3.4.6/libstdc++.so.6 (0x281ae000)
        libm.so.2 => /usr/lib/libm.so.2 (0x28230000)
        libgcc_s.so.1 => /usr/local/lib/gcc/i386-portbld-freebsd4.11/3.4.6/libgcc_s.so.1 (0x2824b000)
        libc_r.so.4 => /usr/lib/libc_r.so.4 (0x28253000)
        libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0x2830a000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x28337000)
        libc.so.4 => /usr/lib/libc.so.4 (0x2833f000)
        libXThrStub.so.6 => /usr/X11R6/lib/libXThrStub.so.6 (0x283d9000)
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x283db000)
        libz.so.2 => /usr/lib/libz.so.2 (0x28440000)
        libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x2844d000)

This version of fltk-dillo can no longer be distributed via a package
because the runtime dependency information for gcc34 is missing from the
package. I do not care why the lang/gcc ports behave the way they do,
but I do care about packaging being broken.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060329194418.GC2956>