Re: [xml] undefined reference to / segfault on _imp__xmlFree in code::blocks on WinXP

2013-01-09 Thread Martin Schlemmer
 On 1/9/2013 at  4:59 PM, Martin Schlemmer wrote:

snip

 If its a later version of libxml with shared import library (ie. linking to 
 the DLL via the .dll.a import library - if built via ./configure  make; I 
 do not use)

This should have been: I do not use win32/Makefile.mingw or win32/configure.js)


Regards,
Martin



Vrywaringsklousule / Disclaimer:  
http://www.nwu.ac.za/it/gov-man/disclaimer.html 

___
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml


Re: [xml] undefined reference to / segfault on _imp__xmlFree in code::blocks on WinXP

2013-01-09 Thread Martin Schlemmer
[Resend as it seemed to have gotten lost]

 On 1/8/2013 at  5:29 PM, Eduard Budaca budaca.edu...@gmail.com wrote:
 I am using Code::Blocks with the GNU GCC compiler on Windows XP.
 I am currently learning to use libxml2 so I am trying the tutorials.
 Everything worked fine until trying xmlFree(), whick resulted in an
 undefined reference.
 After searching in the headers I found the #define IN_LIBXML fix, which
 resulted in a segfault.
 After trying a commit which required editing the xmlexports.h file, I got a
 segault again.
 
 So, since this bug has (apparently) been around for a while, I would like
 to know if there is a fix for it or a replacement for xmlFree()

Some questions:
- Where did you get the binaries for libxml
- What version of libxml
- Which import library are you linking to (shared/static)

If its a later version of libxml with shared import library (ie. linking to the 
DLL via the .dll.a import library - if built via ./configure  make; I do not 
use), it should just work, if its the static version (normally .a) , then you 
should define LIBXML_STATIC (-DLIBXML_STATIC to CFLAGS/CXXFLAGS). If its the 
latter case (static) and you did not define LIBXML_STATIC, then its *not a bug*.

If you built it yourself and used win32/Makefile.mingw, then you probably will 
run into issues, as it generates:

  libxml2.lib
  libxml2.a

which will cause problems (and probably *is a bug*), as the default search 
order for LD with MinGW is:

  libxml2.dll.a
  xml2.dll.a
  libxml2.a
  xml2.lib
  libxml2.dll
  xml2.dll
  xml2.lib

and will cause libxml2.a to be found first even with the shared import 
library present (libxml2.lib - rather a MSVC naming scheme than a GCC/LD 
one), and as you probably did *not* have LIBXML_STATIC defined, you are back to 
the undefined reference. In this case I guess you can just remove libxml2.a 
if you want to link to the DLL and not static, else add the define...

Also, I guess not using import libraries generated with gcc/binutils (ie. .LIB 
via MSVC) could cause other problems.


Regards,
Martin



Vrywaringsklousule / Disclaimer:  
http://www.nwu.ac.za/it/gov-man/disclaimer.html 

___
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml