This bug is still present.  The problem is that while this patch:

  debian/patches/106-strptime_xopen.patch

is well-intentioned, it doesn't work.  The problem with this:

-----------------
+#include "php.h"
 #if HAVE_STRPTIME
 #define _XOPEN_SOURCE
 #endif
   :
 #include <time.h>
-----------------

is that php.h itself includes <time.h> so by the time _XOPEN_SOURCE is
set, it's too late, since the latere inclusion of <time.h> won't have
any effect anymore.

The attached patch fixes the problem and should have no ill effect on
other platforms.  Note that both _XOPEN_SOURCE and _BSD_SOURCE need to
be defined because with _XOPEN_SOURCE alone, type "ulong" does NOT get
declared, which then causes problems in zend_hash.h.  Fun, fun.

Regards,

  --david
--
Mosberger Consulting LLC, http://www.mosberger-consulting.com/
--- ext/standard/datetime.c-orig	2006-03-20 08:20:54.000000000 -0800
+++ ext/standard/datetime.c	2006-03-20 08:13:05.000000000 -0800
@@ -20,6 +20,9 @@
 
 /* $Id: datetime.c,v 1.134.2.2 2006/01/01 12:50:14 sniper Exp $ */
 
+#define _XOPEN_SOURCE	/* needed to get strptime() declared */
+#define _BSD_SOURCE		/* needed to get ulong declared */
+
 #include "php.h"
 #include "zend_operators.h"
 #include "datetime.h"

Reply via email to