#48708 [Fbk->Opn]: Year can't be displayed on big endian system

[email protected] ("l_faillie at yahoo dot com")
Newsgroups php.bugs
Message-ID <[email protected]>
 ID:               48708
 User updated by:  l_faillie at yahoo dot com
 Reported By:      l_faillie at yahoo dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Date/time related
 Operating System: All
 PHP Version:      5.2.10
 New Comment:

Unfortunately, no better luck :(

In file included from
/web/temp/php5.2-200906282230/ext/date/lib/parse_tz.c:34:
/web/temp/php5.2-200906282230/ext/date/lib/timezonedb.h:5910: internal
compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.netbsd.org/Misc/send-pr.html> for instructions.
gmake: *** [ext/date/lib/parse_tz.lo] Error 1


Previous Comments:
------------------------------------------------------------------------

[2009-06-28 22:33:30] [email protected]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

Derick linked to the wrong snapshot.

I've fixed this already.

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

[2009-06-28 20:00:25] l_faillie at yahoo dot com

Unfortunately, I'm not able to compile latest 5.3 due to GCC bug this
time :
gcc: Internal error: Killed (program cc1)
Please submit a full bug report.
See <URL:http://www.netbsd.org/Misc/send-pr.html> for instructions.
gmake: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1

I'm planing to upgrade my system in coming weeks (during my holidays)
implying a new GCC but it's not before at least 1 month.

As a workaround of this bug, I'm suggesting doing year display as
integer as it was on 5.2.9.

Bye

Laurent

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

[2009-06-27 20:59:45] [email protected]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.3-latest.tar.gz
 
For Windows:

  http://windows.php.net/snapshots/

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

[2009-06-27 16:04:36] l_faillie at yahoo dot com

In ext/date/php_date.c, t->y (years) are stored as wide_int which is
'long long int' 64 bits but vararg or main/snprintf.c retrieve it as
'long int' (32 bits).

As consequence, on big endian system, only upper part is take in
account and contains only 0. 

Tested on NetBSD / Sparc system but I guess reproducible on all big
endian system (IBM, sparc, 68000, ...).

Bye the way, what is the need having 64b years which as been introduced
w/ 5.2.10 ?

Bye

Laurent

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

[2009-06-27 15:58:02] l_faillie at yahoo dot com

Description:
------------
In ext/date/php_date.c, years are stored as 64b integers but displayed
using "%04ld" (32b integers). Only work on little endian system

Reproduce code:
---------------
echo date('Y y o');

"0000 09 2009".

Expected result:
----------------
"2009 09 2009"

Actual result:
--------------
"0000 09 2009"


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


-- 
Edit this bug report at http://bugs.php.net/?id=48708&edit=1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.