public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* undefined reference to `png_write_destroy' when linking with libpng-1.0.8-1.tar.gz from Charles Wilson
@ 2000-09-14  4:03 Dr. Volker Zell
  2000-09-14 16:07 ` Charles Wilson
  0 siblings, 1 reply; 2+ messages in thread
From: Dr. Volker Zell @ 2000-09-14  4:03 UTC (permalink / raw)
  To: Cygnus

Hi

System:   WinNT 4.0/SP3 - 196 MB Ram
          Cygwin 1.1.4
           - everything mounted binary,
           - CYGWIN = tty title binmode ntea nontsec

          plus all the contrib libraries from Charles Wilson.

I get the following when compiling

  o netpbm-9.8 - http://download.sourceforge.net/netpbm/

gcc -c -I.. -I../ppm -I../pgm -I../pbm -I../shhopt -I/usr/include -I/usr/include -I/usr/include -I../urt -pedantic -O3 -Wall -Wno-uninitialized  -o pnmtopng.o pnmtopng.c
gcc  -o pnmtopng pnmtopng.o `../libopt libpnm.a ../ppm/libppm.a ../pgm/libpgm.a ../pbm/libpbm.a ` \
  -L/usr/lib -lpng -lz -lm 
pnmtopng.o(.text+0x39ce):pnmtopng.c: undefined reference to `png_write_destroy'
collect2: ld returned 1 exit status
make[1]: *** [pnmtopng] Error 1

and also the following errors when compiling

  o gimp-1.0.4 - ftp://ftp.gimp.org/pub/gimp/v1.0/v1.0.4/

/bin/sh ../../libtool --mode=link gcc  -g -O2 -Wall -s -o png  png.o ../../libgimp/libgimpui.la		../../libgimp/libgimp.la		-L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lXext -lX11 -lm -lipc					-lpng -lz					-lm 
gcc -g -O2 -Wall -s -o png png.o ../../libgimp/.libs/libgimpui.a ../../libgimp/.libs/libgimp.a -L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lXext -lX11 -lm -lipc -lpng -lz -lm
png.o: In function `load_image':
/gnu/src/gimp-1.0.4/plug-ins/png/png.c:601: undefined reference to `png_read_destroy'
png.o: In function `save_image':
/gnu/src/gimp-1.0.4/plug-ins/png/png.c:794: undefined reference to `png_write_destroy'
collect2: ld returned 1 exit status

Both symbols are defined in the static libpng.a library but not in the libpng.dll.a.

Any hints why ?

Ciao
  Volker


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: undefined reference to `png_write_destroy' when linking with libpng-1.0.8-1.tar.gz from Charles Wilson
  2000-09-14  4:03 undefined reference to `png_write_destroy' when linking with libpng-1.0.8-1.tar.gz from Charles Wilson Dr. Volker Zell
@ 2000-09-14 16:07 ` Charles Wilson
  0 siblings, 0 replies; 2+ messages in thread
From: Charles Wilson @ 2000-09-14 16:07 UTC (permalink / raw)
  To: Dr. Volker Zell; +Cc: Cygnus

I haven't downloaded netpbm myself, but it looks like png_write_destroy
&tc. are being misdefined in whatever header files are included by
pngtopng.c (or gimp/png.c).  The reason I say this, is because the
missing link should be to '_imp__png_write_destroy'.

Three possible reasons:
1. netpbm / gimp may have their own versions of png header files (bad
bad bad...) which do not contain the appropriate declspec() / PNG_STATIC
definitions

2. you may have old versions of png.h/pngconf.h somewhere that do not
contain the appropriate declspec() definitions, and the compiler is
finding those old versions instead of the new ones in /usr/include. 
Possibly old cygutils stuff in /usr/local/include?

3. I screwed up the headers in the official png package.  I'll check
this one, you check the other two. :-)

 AHA! It is #3.  But that's because png_write_destroy / png_read_destroy
have been removed as external functions, and are only called from inside
the library:

-------------------------------------------
/* free any memory used in info_ptr struct (old method - NOT DLL
EXPORTED) */
extern void png_write_destroy_info PNGARG((png_infop info_ptr));

/* free any memory used in png_ptr struct (old method - NOT DLL
EXPORTED) */
extern void png_write_destroy PNGARG((png_structp png_ptr));
-------------------------------------------

Now that I think about it, I remember some discussion on png-develop
that you are never ever ever supposed to mess with the info_ptr in
client code.  If you do, you (somehow) screw up the internals of
libpng.  So, netpbm and gimp are broken and need to be updated.

--Chuck


"Dr. Volker Zell" wrote:
> 
> Hi
> 
> System:   WinNT 4.0/SP3 - 196 MB Ram
>           Cygwin 1.1.4
>            - everything mounted binary,
>            - CYGWIN = tty title binmode ntea nontsec
> 
>           plus all the contrib libraries from Charles Wilson.
> 
> I get the following when compiling
> 
>   o netpbm-9.8 - http://download.sourceforge.net/netpbm/
> 
> gcc -c -I.. -I../ppm -I../pgm -I../pbm -I../shhopt -I/usr/include -I/usr/include -I/usr/include -I../urt -pedantic -O3 -Wall -Wno-uninitialized  -o pnmtopng.o pnmtopng.c
> gcc  -o pnmtopng pnmtopng.o `../libopt libpnm.a ../ppm/libppm.a ../pgm/libpgm.a ../pbm/libpbm.a ` \
>   -L/usr/lib -lpng -lz -lm
> pnmtopng.o(.text+0x39ce):pnmtopng.c: undefined reference to `png_write_destroy'
> collect2: ld returned 1 exit status
> make[1]: *** [pnmtopng] Error 1
> 
> and also the following errors when compiling
> 
>   o gimp-1.0.4 - ftp://ftp.gimp.org/pub/gimp/v1.0/v1.0.4/
> 
> /bin/sh ../../libtool --mode=link gcc  -g -O2 -Wall -s -o png  png.o ../../libgimp/libgimpui.la         ../../libgimp/libgimp.la                -L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lXext -lX11 -lm -lipc                                   -lpng -lz                                       -lm
> gcc -g -O2 -Wall -s -o png png.o ../../libgimp/.libs/libgimpui.a ../../libgimp/.libs/libgimp.a -L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lXext -lX11 -lm -lipc -lpng -lz -lm
> png.o: In function `load_image':
> /gnu/src/gimp-1.0.4/plug-ins/png/png.c:601: undefined reference to `png_read_destroy'
> png.o: In function `save_image':
> /gnu/src/gimp-1.0.4/plug-ins/png/png.c:794: undefined reference to `png_write_destroy'
> collect2: ld returned 1 exit status
> 
> Both symbols are defined in the static libpng.a library but not in the libpng.dll.a.
> 
> Any hints why ?
> 
> Ciao
>   Volker
> 
> --
> Want to unsubscribe from this list?
> Send a message to cygwin-unsubscribe@sourceware.cygnus.com

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2000-09-14 16:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-09-14  4:03 undefined reference to `png_write_destroy' when linking with libpng-1.0.8-1.tar.gz from Charles Wilson Dr. Volker Zell
2000-09-14 16:07 ` Charles Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).