php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #48579 Another build failure
Submitted: 2009-06-17 08:48 UTC Modified: 2009-06-17 08:55 UTC
From: hannes dot magnusson at gmail dot com Assigned:
Status: Closed Package: Compile Failure
PHP Version: 5.3CVS-2009-06-17 (snap) OS: FreeBSD 4.11
Private report: No CVE-ID: None
 [2009-06-17 08:48 UTC] hannes dot magnusson at gmail dot com
Description:
------------
-bash-2.05b$ uname -a
FreeBSD pb11.pair.com 4.11-STABLE FreeBSD 4.11-STABLE #1: Tue May  3 13:17:19 EDT 2005     root@pb11.pair.com:/usr/obj/usr/src/sys/NEWPB11  i386
-bash-2.05b$ gcc -v
Using builtin specs.
gcc version 2.95.4 20020320 [FreeBSD]


Reproduce code:
---------------
./configure --disable-fileinfo

Actual result:
--------------
ext/standard/formatted_print.o: In function `php_formatted_print':
/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:96: undefined reference to `zend_error_noreturn'
/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:103: undefined reference to `zend_error_noreturn'
/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:96: undefined reference to `zend_error_noreturn'
/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:103: undefined reference to `zend_error_noreturn'
/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:96: undefined reference to `zend_error_noreturn'
ext/standard/formatted_print.o:/usr/home/bjori/php5.3-200906170630/ext/standard/formatted_print.c:103: more undefined references to `zend_error_noreturn' follow
*** Error code 1


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-06-17 08:53 UTC] rasmus@php.net
Well, this particular failure on fbsd4 is because I added a check for __GNUC__ >= 3 in this zend.c code:

#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn));
#endif

But, this also means that it is broken on all those compilers.  There should be an #else clause there that doesn't use the __attribute__ hack.  That is the real problem as far as I can see.
 [2009-06-17 08:55 UTC] rasmus@php.net
ah never mind, the #else is in the header file.  Need to add the check there too.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Wed Jul 16 08:01:29 2025 UTC