Re: [xml] libxml2-2.7.8 and MinGW



Roumen Petrov wrote:
Earnie wrote:
Earnie wrote:
Roumen Petrov wrote:
Earnie wrote:
Earnie wrote:
I've been building libxml2-2.7.8 and have been having a heck of
a time getting xmlcatalog to work with a shared DLL library.
I've finally confirmed that the issue is caused by optimizations
with -O2 or -O1. If I use -O0 the issue goes away. The effect is
the xmlIsPubidChar_tab array is seen by xmlcatalog to contain all
0x00 values. I'm using GCC-4.6.1 and binutils-2.21.53.20110804
as delivered by MinGW. I wanted give this list a report of what
I've found in the event others come by, they may have already.
hmm ,

Look like regression as it is fine with me for gcc/binutils: -
3.4.5/2.17.50 20070129 - 4.4.0/2.19.1

It was Kai Tietz who is active in GCC development for Windows and one of
its maintainers who pointed me to the issue resolution.

See http://thread.gmane.org/gmane.comp.gnu.mingw.user/38000 for the
discussion.
[SNIP]
Above like is fine to follow the thread .
I'm not against the patch
a) it will resolve linking issue if libxml2 is build with gcc (mingw)
and -nocommon flag.
b) it will resolve issue with new gnu compiler/linker
c) libxslt and xmlsec for instance use extern for mingw* compilers

Lets first finish discussion on mingw list as libxml and libxslt does
not use extern for cygwin compiler. If cygwin build is impacted then
complete patch must cover both woe compilers. Also  another patch for
libxslt is required .


As discussed on the MinGW list here are the patches for both libxml2 and
libxslt adorning dllexport with extern for both __CYGWIN__ and __MINGW32__.

During the discussion on the MinGW list we discovered the following bit
of information about dllexport:

From:
http://msdn.microsoft.com/en-us/library/y4h7bcy6.aspx

The use of dllexport implies a definition, while dllimport implies a
declaration. You must use the extern keyword with dllexport to force a
declaration; otherwise, a definition is implied.

-- 
Earnie
-- https://sites.google.com/site/earnieboyd/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]