Bug #60925 [Opn]: fpm_atomic.h says unknown processor (m68k)
| From: | aharvey@php.net | Date: | Tue, 31 Jan 2012 00:06:53 +0000 |
| Subject: | Bug #60925 [Opn]: fpm_atomic.h says unknown processor (m68k) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-166988@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=60925&edit=1
ID: 60925
Updated by: aharvey@php.net
Reported by: tg at debian dot org
Summary: fpm_atomic.h says unknown processor (m68k)
Status: Open
Type: Bug
Package: Compile Failure
Operating System: Linux
PHP Version: 5.3.9
Block user comment: N
Private report: N
New Comment:
Ah, I didn't know that, so no, no need on the vanilla tarball front. Thanks!
The fix here would be a patch for fpm_atomic.h implementing the same atomic
functions for m68k as the other fallback platforms in there, such as x86 and SPARC
v9. I'm not actually sure why 5.3.3-7 built at all, actually -- the only patch it
had over stock 5.3.3 (which had no support at all for m68k) was implementing
support for __sync_bool_compare_and_swap() if it existed, so it should have failed
with the same #error. Interesting.
Previous Comments:
------------------------------------------------------------------------
[2012-01-30 16:52:13] tg at debian dot org
configure:12302: checking if gcc supports __sync_bool_compare_and_swap
configure:12319: m68k-linux-gnu-gcc -o conftest -O2 -Wall -fsigned-char -fno-strict-aliasing
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -gstabs -fvisibility=hidden conftest.c -lrt >&5
/tmp/ccmCFUbp.o: In function `main':
conftest.c:48: undefined reference to `__sync_bool_compare_and_swap_4'
conftest.c:49: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
configure:12319: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define __EXTENSIONS__ 1
| #define _ALL_SOURCE 1
| #define _GNU_SOURCE 1
| #define _POSIX_PTHREAD_SEMANTICS 1
| #define _TANDEM_SOURCE 1
| #define HAVE_DEV_URANDOM 1
| #define HAVE_SETENV 1
| #define HAVE_CLEARENV 1
| #define HAVE_ERRNO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_UIO_H 1
| #define HAVE_SYS_SELECT_H 1
| #define HAVE_SYS_SOCKET_H 1
| #define HAVE_SYS_TIME_H 1
| #define HAVE_ARPA_INET_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_PRCTL 1
| #define HAVE_CLOCK_GETTIME 1
| #define HAVE_PTRACE 1
| #define PROC_MEM_FILE "mem"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| int variable = 1;
| return (__sync_bool_compare_and_swap(&variable, 1, 2)
| && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;
|
| ;
| return 0;
| }
configure:12329: result: no
------------------------------------------------------------------------
[2012-01-30 16:39:04] tg at debian dot org
gcc version 4.6.2 (Debian 4.6.2-12)
I know for sure it does NOT support __sync_* atomic builtins;
on m68k, gcc-4.7 will introduce them, and a backport is not
likely (I looked at it, but it depends on mach-indep changes
that arenât in 4.6 and I fear to break other things by that).
Several other architectures also do not have support for them
(but I can only sort-of speak for m68k at the moment).
Do I still need to try building a vanilla tarball with this
information?
------------------------------------------------------------------------
[2012-01-30 12:24:51] aharvey@php.net
This isn't a regression in PHP as such, as the Debian 5.3.3-7 package had a
patch specifically to use gcc's atomic builtins where available. A modified
version of that patch was brought upstream in the fix for bug #52407 and
released in 5.3.4.
Can you please try building a vanilla PHP tarball? It would also be helpful to
get the version of gcc you're running and the bit of config.log including and
immediately following the line "checking if gcc supports
__sync_bool_compare_and_swap".
------------------------------------------------------------------------
[2012-01-29 19:31:04] tg at debian dot org
Description:
------------
/tmp/buildd/php5-5.3.9/sapi/fpm/fpm/fpm_atomic.h:142:2: error: #error Unsupported processor. Please
open a bug report (bugs.php.net).
This is on:
Linux ara5.mirbsd.org 3.2.0-1+m68k.1-atari #1 Mon Jan 23 06:44:50 UTC 2012 m68k GNU/Linux
php5_5.3.3-7 compiled, so this is a regression.
Test script:
---------------
dpkg-buildpackage -rfakeroot -B
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60925&edit=1