Re: Re: [ANNOUNCEMENT] pecl_http-2.1.0RC2 (beta) Released.
| From: | Jan Ehrhardt | Date: | Tue, 12 Aug 2014 16:39:55 +0000 |
| Subject: | Re: Re: [ANNOUNCEMENT] pecl_http-2.1.0RC2 (beta) Released. | ||
| References: | 1 2 3 4 5 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-12168@lists.php.net to get a copy of this message | ||
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.