Pierre Joye in php.pecl.dev (Tue, 12 Aug 2014 13:06:49 +0200):
>>>See this patch by Anatol (4 days old)
>>>http://git.php.net/?p=php-src.git;a=commitdiff;h=7189039d650de1417e4e580865b1e77b39e3da55
>
>is it not what Anatol fixed in core recently?

I applied Anatol's fix to <win32/php_stdint.h> and to a number of
extensions that had their own copy of it (qb, av, ffmpeg). So this fix
was not enough.

Anatol's fix seems to aim this loading order:
1. <stdint.h>
2. <win32/php_stdint.h>
The fatal errors for php_http.dll were caused by loading the 2 headers
the other way around!

>Also using the php_stdint.h header should solve that automatically.

Any call to <stdint.h> of VC11 after calling <win32/php_stdint.h> leads
to fatal errors in PHP 5.5 now. After a long debugging session I tracked
it down to FOREACH_HASH_KEYVAL in ext/http/http_misc.h. That macro
somehow loads <stdint.h> and was causing the fatal errors.

Without changing VC11's stdint.h (which I did for debugging) I could
only think of one way to prevent it from loading. stdint.h starts with:

/* stdint.h standard header */
#pragma once
#ifndef _STDINT
#define _STDINT

So, by defining _STDINT you can prevent it from loading. I changed
<win32/php_stdint.h>:

 #ifndef _MSC_STDINT_H_ // [
 #define _MSC_STDINT_H_
+#define _STDINT
 
 #if _MSC_VER > 1000
 #pragma once

I do not know if this has more consequences. If <win32/php_stdint.h> is
a full replacement for <stdint.h> this should not cause troubles. My PHP
5.5.16RC1 worked flawlessly with the exception of php_event.dll. But
that was a SSL issue, because I have been trying to get that to work (by
compiling the libevent libswith OpenSSL support).

New build at
https://phpdev.toolsforresearch.com/php-5.5.16RC1-nts-Win32-VC11-x86.zip
See the phpinfo.htm inside the zip for the details of the build.

Jan

NB: I will ask the maintainer of php_qb.ddl and php_av.dll to call
<win32/php_stdint.h> if possible in stead of loading his own copy.
php_ffmpeg.dll is not maintained anymore and I seem to be the only one
that is compiling it for Windows, so that will not be a problem at all.

-- 
PECL development discussion Mailing List (http://pecl.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to