USE_GCC vs. packaging

Thomas-Martin Seck tmseck-lists at
Tue Mar 28 22:55:17 UTC 2006

Hi all,

I am currently working on updating www/dillo to 0.8.6. As part of the
transition from gtk1 to fltk2, dillo-0.8.6 will contain a download gui
based on fltk2 (thankfully not required for dillo to work, so it will
be a non-default option). This required me to do a port of fltk2 (to be
submitted within the next days). Unfortunately, current fltk2 snapshots
need gcc 3.x to compile, so the fltk2 port utilizes USE_GCC=3.4+.

Compiling fltk2 with gcc 3.4+ implies that I need to build dillo with
gcc 3.4+, too in order to get it linked correctly - fltk2 is a C++
library. So, if the user would like to build with fltk support, I need
set USE_GCC=3.4+ in www/dillo, too in that case. 

When I ran a test build in a 4.x jail today using gcc 3.4.6 release
($FreeBSD: ports/lang/gcc34/Makefile,v 1.238 2006/03/26 18:08:14 gerald Exp $)
I was surprised that this part of dillo now depends on gcc 3.4+ at

$ ldd /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi: => /usr/local/lib/ (0x280a4000) => /usr/X11R6/lib/ (0x280c6000) => /usr/X11R6/lib/ (0x28184000) => /usr/X11R6/lib/ (0x2818c000) => /usr/X11R6/lib/ (0x2818f000) => /usr/X11R6/lib/ (0x281a0000) =>
(0x281ae000) => /usr/lib/ (0x28230000) =>
(0x2824b000) => /usr/lib/ (0x28253000) => /usr/X11R6/lib/
(0x2830a000) => /usr/X11R6/lib/ (0x28337000) => /usr/lib/ (0x2833f000) => /usr/X11R6/lib/ (0x283d9000) => /usr/local/lib/ (0x283db000) => /usr/lib/ (0x28440000) => /usr/local/lib/ (0x2844d000)

A package built using this binary will fail unless and are installed, too.

However, I then built fltk2/dillo after deinstalling gcc 3.4.6 and
installing the gcc-3.4.6_20060221 snapshot and got the following:

$ ldd /usr/local/libexec/dillo/dpi/downloads/downloads.dpi
/usr/local/libexec/dillo/dpi/downloads/downloads.dpi: => /usr/local/lib/ (0x280a5000) => /usr/X11R6/lib/ (0x280c7000) => /usr/X11R6/lib/ (0x28185000) => /usr/X11R6/lib/ (0x2818d000) => /usr/X11R6/lib/ (0x28190000) => /usr/X11R6/lib/ (0x281a1000) => /usr/lib/ (0x281af000) => /usr/lib/ (0x281ca000) => /usr/X11R6/lib/
(0x28281000) => /usr/X11R6/lib/ (0x282ae000) => /usr/lib/ (0x282b6000) => /usr/X11R6/lib/ (0x28350000) => /usr/local/lib/ (0x28352000) => /usr/lib/ (0x283b7000) => /usr/local/lib/ (0x283c4000)

This binary is runtime independent of gcc or rather g++. Was this ever

So my question is: is USE_GCC to be fixed to generate a runtime
dependency at package building time now that (at least) gcc34 behaves
this way? (I did not check the other gcc ports but I suppose they now
all show the symptoms I tried to outline above.)

More information about the freebsd-ports mailing list