Re: [pcre-dev] Release candidate for 8.10

Top Page
Delete this message
Author: Philip Hazel
Date:  
To: Sheri
CC: pcre-dev
Subject: Re: [pcre-dev] Release candidate for 8.10
On Thu, 3 Jun 2010, Sheri wrote:

> Not getting any errors on the pcretest suite or our application's test
> run, but I did get this new and worrisome message during the Msys build:
>
> [ 93%] Building C object CMakeFiles/pcreposix.dir/pcreposix.obj
> Linking C shared library pcreposix.dll
> Info: resolving _pcre_free by linking to __imp__pcre_free (auto-import)
> Creating library file: libpcreposix.dll.a
> c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe:
> warning: auto-importing has been activated without --enable-auto-import
> specified on the command line.
> This should work unless it involves constant data structures referencing
> symbols from auto-imported DLLs.
> [ 93%] Built target pcreposix


What the heck does that mean? Anybody on this list know? Anything that
can be done to avoid it?

I wonder if this was caused by this change:

12. pcreposix.c included pcre.h before including pcre_internal.h. This caused a
    conflict in the definition of PCRE_EXP_DECL. I have removed the include of
    pcre.h as pcre_internal.h includes pcre.h itself. (This may be a bit of
    historical tidying that never got done.)


Please could you try inserting

#include "pcre.h"

in pcreposix.c immediately before the include of pcre_internal.h and see
if this makes the problem go away? Or maybe the include should come further up:

---------------------------------------------------------------------------

<========insert here (A)

/* Ensure that the PCREPOSIX_EXP_xxx macros are set appropriately for
compiling these functions. This must come before including pcreposix.h, where
they are set for an application (using these functions) if they have not
previously been set. */

#if defined(_WIN32) && !defined(PCRE_STATIC)
# define PCREPOSIX_EXP_DECL extern __declspec(dllexport)
# define PCREPOSIX_EXP_DEFN __declspec(dllexport)
#endif

<========or here? (B)

#include "pcre_internal.h"
#include "pcreposix.h"
---------------------------------------------------------------------------

In previous releases, it was inserted at (B). Perhaps the correct thing
is to have it at (A) rather than deleting it entirely. However, note
that I am kind of guessing...

Philip

--
Philip Hazel