Le 13 oct. 07 à 15:42, Boey Maun Suang a écrit :


On 10/11/07, Martin Stadler <[EMAIL PROTECTED]> wrote:

Error: Target org.macports.build returned: shell command " cd "/opt/
local/var/macports/build/
_opt_local_var_macports_sources_rsync.macports.org_release_ports_grap hic
s_pngmeta/work/pngmeta-1.11" && make all " returned error 2
Command output: gcc -DPACKAGE=\"pngmeta\" -DVERSION=\"1.11\" -
DHAVE_LIBZ=1 -DHAVE_LIBPNG=1 -DHAVE_PNG_CREATE_READ_STRUCT=1 -
DHAVE_PNG_GET_TEXT=1  -I. -I.    -I/opt/local/include  -O2 -I/opt/
local/include -I/opt/local/include -c pngmeta.c
gcc  -O2 -I/opt/local/include -I/opt/local/include -L/opt/local/lib -
o pngmeta  pngmeta.o  -lpng -lz  -L/opt/local/include -L/opt/local/
include -lpng -L/opt/local/lib -lm -L/opt/local/lib
/usr/bin/ld: Undefined symbols:
_png_IDAT
_png_IEND
_png_IHDR
<snip />

After some experimentation and much puzzlement, it seems that it's a failure on the part of the upstream developers to account for Mac OS X conventions (not that I blame them if they've never received feedback from Mac OS X build attempts).

The source seems to be require being statically against libpng and libz, but the default on Mac OS X is to link dynamically (the output above is it trying and failing; don't ask me why it doesn't work). The normal solution of passing the -static flag to gcc doesn't work (because up to 10.4, Mac OS X doesn't provide the necessary files -- see the gcc man page), but putting the paths to the static libraries in place of the -l flags does (i.e. replacing "-lz" with "${prefix}/lib/libz.a" and "-lpng" with "${prefix}/lib/ libpng.a"). The program then passes its internal "make check".

I can't see a nice way to patch the problem ourselves, though (I did the above on the command line), so it would probably be best to ask the upstream developer to fix this.

Kind regards,


Maun Suang

--
Boey Maun Suang (Boey is my surname)
Email: boeyms at macports dot org


From experimentation on my side, it seems more likely that pngmeta is simply outdated: png_IDAT and all seems to be global arrays, which are now disabled by default in libpng as they are no longer used.

--
Anthony Ramine, the infamous MacPorts Trac slave.
[EMAIL PROTECTED]


_______________________________________________
macports-users mailing list
macports-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/macports-users

Reply via email to