|
From: Hans-Bernhard B. <br...@ph...> - 2004-04-16 14:02:03
|
On Fri, 16 Apr 2004, Hans-Bernhard Broeker wrote:
> Andris, nice to see you're still around, too... hadn't heard from
> you in quite a while...
>
> > Tried to build 4.0.0 for DJGPP on system that had ancient libgd (perhaps
> > 1.3) and libpng-1.2.5 installed. After running configure got libraries
> > in following order
> > -lz -lgd -lpng
> > As result there were unresolved references from libpng, as -lz should be
> > after -lpng. Of course I could use Makefile.dj2, but this problem
> > perhaps could appear also for some other system.
>
> That's of course a silly one. It probably won't happen to those platforms
> that have shared libraries with internal dependencies (ie: Linux).
Grrr... I *hate* it that this kind of stuff always pops up past the
last minute ;-(
I've succeeded in making a suitable packae only after hacking configure.in
and letting the DJGPP version of autoconf/automake regenerate pretty much
everything. The telltale symptom is this, at the end of 'configure':
Enable generation of JPEG files
Enable generation of PNG files
using old driver
Enable TTF fonts with gd driver
Enable pm3d
Enable filledboxes
I.e. it did find both libpng and libz (--> so old png.trm can be used),
but it failed to confirm GdImagePng() in GD (which quite definitely
does exists), because that link fails to have a -lz anywhere in it.
This is the compile/link line it tries to run (from config.log, linewraps
mine):
configure:9799: gcc -o conftest.exe -g -O2 -fno-inline-functions \
-I/dev/env/DJDIR/local/include conftest.c -lgd -lgrx20 -lpc \
-ljpeg -lfreetype -lpng >&5
But because there's no -lz, that fails:
e:/djgpp/local/lib/libpng.a(png.o)(.text+0x2f5):png.c: \
undefined reference to `_crc32'
[... and lots more ...]
Now, if I remember Ethan's comments about this issue from a while back
correctly, I think he was saying that the "obvious" fix to this (putting
-lz into the links by changing configure.in) would break on at least some
other platforms.
In the light of this, I think I won't put up another tarball right now.
The risk of it breaking other platforms is just too high. Instead, I'll
put a note into the DJGPP binary package's "README.dj2" file about the
little hacks to configure.in needed to fix this.
--
Hans-Bernhard Broeker (br...@ph...)
Even if all the snow were burnt, ashes would remain.
|