php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #76745 sljitLir.c throws sigbus during compile
Submitted: 2018-08-15 03:35 UTC Modified: 2020-10-23 16:04 UTC
From: dclarke at blastwave dot org Assigned: cmb (profile)
Status: Not a bug Package: Compile Failure
PHP Version: 7.2.8 OS: Solaris 10
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please !
Your email address:
MUST BE VALID
Solve the problem:
42 + 31 = ?
Subscribe to this entry?

 
 [2018-08-15 03:35 UTC] dclarke at blastwave dot org
Description:
------------
Download sources and extract and run ./configure with no options.

Output from configure : 

checking for grep that handles long lines and -e... /usr/local/bin/grep
checking for egrep... /usr/local/bin/grep -E
checking for a sed that does not truncate output... /usr/local/bin/sed
checking build system type... sparc-sun-solaris2.10
checking host system type... sparc-sun-solaris2.10
checking target system type... sparc-sun-solaris2.10
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/developerstudio12.6/bin/cc accepts -g... yes
checking for /opt/developerstudio12.6/bin/cc option to accept ISO C89... none needed
checking how to run the C preprocessor... /opt/developerstudio12.6/bin/cc -E
checking for icc... no
checking for suncc... yes
checking whether /opt/developerstudio12.6/bin/cc and cc understand -c and -o together... yes
checking how to run the C preprocessor... /opt/developerstudio12.6/bin/cc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether ln -s works... yes
checking for system library directory... lib
checking whether to enable runpaths... yes
checking if compiler supports -R... yes
checking for gawk... /usr/local/bin/gawk
checking for bison... bison -y
checking for bison version... 2.7 (ok)
checking for re2c... re2c
checking for re2c version... 0.13.5 (ok)
checking whether to enable computed goto gcc extension with re2c... no
checking whether C compiler accepts -fvisibility=hidden... yes
checking whether to force non-PIC code in shared modules... no
checking whether /dev/urandom exists... yes
checking whether /dev/arandom exists... no
checking for global register variables support... no
checking whether atof() accepts NAN... no
checking whether atof() accepts INF... no
checking whether HUGE_VAL == INF... yes
checking whether HUGE_VAL + -HUGEVAL == NAN... no
checking for pthreads_cflags... -Kthread
checking for pthreads_lib... pthread

Configuring SAPI modules
checking for Apache 2.0 handler-module support via DSO through APXS... no
checking for setproctitle... no
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking for PS_STRINGS... no
checking for CLI build... yes
checking for embedded SAPI library support... no
checking for FPM build... no
checking for LiteSpeed support... no
checking for phpdbg support... yes
checking for phpdbg web SAPI support... no
checking for phpdbg debug build... no
checking whether termios.h defines TIOCGWINSZ... yes
checking for CGI build... yes
checking for socklen_t in sys/socket.h... yes
checking for sun_len in sys/un.h... no
checking whether cross-process locking is required by accept()... yes
checking for chosen SAPI module... none
checking for executable SAPI binaries...  cli phpdbg cgi

Running system checks
checking for sendmail... /usr/sbin/sendmail
checking whether system uses EBCDIC... no
checking whether byte ordering is bigendian... yes
checking whether writing to stdout works... This is the test message -- yes
checking for socket... no
checking for __socket... no
checking for socket in -lsocket... yes
checking for socketpair... yes
checking for htonl... yes
checking for gethostname... yes
checking for gethostbyaddr... no
checking for __gethostbyaddr... no
checking for gethostbyaddr in -lnsl... yes
checking for yp_get_default_domain... yes
checking for dlopen... yes
checking for sin in -lm... yes
checking for inet_aton... yes
checking for ANSI C header files... (cached) yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for dirent.h... yes
checking for ApplicationServices/ApplicationServices.h... no
checking for sys/param.h... yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... yes
checking for netinet/in.h... yes
checking for alloca.h... yes
checking for arpa/inet.h... yes
checking for arpa/nameser.h... yes
checking for assert.h... yes
checking for crypt.h... yes
checking for dns.h... no
checking for fcntl.h... yes
checking for grp.h... yes
checking for ieeefp.h... yes
checking for langinfo.h... yes
checking for limits.h... yes
checking for locale.h... yes
checking for monetary.h... yes
checking for netdb.h... yes
checking for poll.h... yes
checking for pwd.h... yes
checking for resolv.h... yes
checking for signal.h... yes
checking for stdarg.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for syslog.h... yes
checking for sysexits.h... yes
checking for sys/ioctl.h... yes
checking for sys/file.h... yes
checking for sys/mman.h... yes
checking for sys/mount.h... yes
checking for sys/poll.h... yes
checking for sys/resource.h... yes
checking for sys/select.h... yes
checking for sys/socket.h... yes
checking for sys/stat.h... (cached) yes
checking for sys/statfs.h... yes
checking for sys/statvfs.h... yes
checking for sys/vfs.h... yes
checking for sys/sysexits.h... no
checking for sys/varargs.h... yes
checking for sys/wait.h... yes
checking for sys/loadavg.h... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking for unix.h... no
checking for utime.h... yes
checking for sys/utsname.h... yes
checking for sys/ipc.h... yes
checking for dlfcn.h... yes
checking for assert.h... (cached) yes
checking for fopencookie... no
checking for broken getcwd... yes
checking for broken libc stdio... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... no
checking whether tzname is declared... yes
checking for tzname... yes
checking for missing declarations of reentrant functions... done
checking for fclose declaration... ok
checking for tm_gmtoff in struct tm... no
checking for struct flock... yes
checking for socklen_t... yes
checking size of size_t... 8
checking size of long long... 8
checking size of long long int... 8
checking size of long... 8
checking size of int... 4
checking size of intmax_t... 8
checking size of ssize_t... 8
checking size of ptrdiff_t... 8
checking size of short... 2
checking size of int... (cached) 4
checking size of long... (cached) 8
checking size of long long... (cached) 8
checking for int8... no
checking for int16... no
checking for int32... no
checking for int64... no
checking for int8_t... yes
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for uint8... no
checking for uint16... no
checking for uint32... no
checking for uint64... no
checking for uint8_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for u_int8_t... no
checking for u_int16_t... no
checking for u_int32_t... no
checking for u_int64_t... no
checking for __builtin_expect... yes
checking for __builtin_clz... no
checking for __builtin_ctzl... no
checking for __builtin_ctzll... no
checking for __builtin_smull_overflow... no
checking for __builtin_smulll_overflow... no
checking for __builtin_saddl_overflow... no
checking for __builtin_saddll_overflow... no
checking for __builtin_ssubl_overflow... no
checking for __builtin_ssubll_overflow... no
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_rdev... yes
checking for size_t... yes
checking for uid_t in sys/types.h... yes
checking for struct sockaddr_storage... yes
checking for field sa_len in struct sockaddr... no
checking for IPv6 support... yes
checking for vprintf... yes
checking for _doprnt... yes
checking for alphasort... yes
checking for asctime_r... yes
checking for chroot... yes
checking for ctime_r... yes
checking for cuserid... yes
checking for crypt... yes
checking for flock... no
checking for ftok... yes
checking for funopen... no
checking for gai_strerror... yes
checking for gcvt... yes
checking for getloadavg... yes
checking for getlogin... yes
checking for getprotobyname... yes
checking for getprotobynumber... yes
checking for getservbyname... yes
checking for getservbyport... yes
checking for gethostname... (cached) yes
checking for getrusage... yes
checking for gettimeofday... yes
checking for gmtime_r... yes
checking for getpwnam_r... yes
checking for getgrnam_r... yes
checking for getpwuid_r... yes
checking for grantpt... yes
checking for inet_ntoa... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for isascii... yes
checking for link... yes
checking for localtime_r... yes
checking for lockf... yes
checking for lchown... yes
checking for lrand48... yes
checking for memcpy... yes
checking for memmove... yes
checking for mkstemp... yes
checking for mmap... yes
checking for nl_langinfo... yes
checking for perror... yes
checking for poll... yes
checking for ptsname... yes
checking for putenv... yes
checking for realpath... yes
checking for random... yes
checking for rand_r... yes
checking for scandir... yes
checking for setitimer... yes
checking for setlocale... yes
checking for localeconv... yes
checking for setenv... yes
checking for setpgid... yes
checking for setsockopt... yes
checking for setvbuf... yes
checking for shutdown... yes
checking for sin... yes
checking for snprintf... yes
checking for srand48... yes
checking for srandom... yes
checking for statfs... yes
checking for statvfs... yes
checking for std_syslog... no
checking for strcasecmp... yes
checking for strcoll... yes
checking for strdup... yes
checking for strerror... yes
checking for strftime... yes
checking for strnlen... no
checking for strptime... yes
checking for strstr... yes
checking for strtok_r... yes
checking for symlink... yes
checking for tempnam... yes
checking for tzset... yes
checking for unlockpt... yes
checking for unsetenv... yes
checking for usleep... yes
checking for utime... yes
checking for vsnprintf... yes
checking for vasprintf... yes
checking for asprintf... yes
checking for nanosleep... no
checking for nanosleep in -lrt... yes
checking for getaddrinfo... yes
checking for __sync_fetch_and_add... no
checking for strlcat... yes
checking for strlcpy... yes
checking for explicit_bzero... no
checking for getopt... yes
checking for utime.h... (cached) yes
checking whether utime accepts a null argument... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for declared timezone... yes
checking for type of reentrant time-related functions... POSIX
checking for readdir_r... yes
checking for type of readdir_r... POSIX
checking for in_addr_t... yes
checking for crypt_r... no
checking whether to enable valgrind support... yes
checking for valgrind header... not found

General settings
checking whether to include gcov symbols... no
checking whether to include debugging symbols... no
checking layout of installed files... PHP
checking path to configuration file... DEFAULT
checking where to scan for configuration files... 
checking whether to enable PHP's own SIGCHLD handler... no
checking whether to explicitly link against libgcc... no
checking whether to enable short tags by default... yes
checking whether to enable dmalloc... no
checking whether to enable IPv6 support... yes
checking whether to enable DTrace support... no
checking how big to make fd sets... using system default

Configuring extensions
checking size of long... (cached) 8
checking size of int... (cached) 4
checking for int32_t... yes
checking for uint32_t... yes
checking for sys/time.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for stdint.h... (cached) yes
checking for dirent.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for unistd.h... (cached) yes
checking io.h usability... no
checking io.h presence... no
checking for io.h... no
checking for strtoll... yes
checking for atoll... yes
checking for strftime... (cached) yes
checking for gettimeofday... (cached) yes
checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
checking for xml2-config path... /usr/local/bin/xml2-config
checking whether libxml build works... yes
checking for OpenSSL support... no
checking for Kerberos support... no
checking whether to use system default cipher list instead of hardcoded value... no
checking for PCRE library to use... bundled
checking whether to enable PCRE JIT functionality... yes
checking whether to enable the SQLite3 extension... yes
checking bundled sqlite3 library... yes
checking for ZLIB support... no
checking if the location of ZLIB install directory is defined... no
checking whether to enable bc style precision math functions... no
checking for BZip2 support... no
checking whether to enable calendar conversion support... no
checking whether to enable ctype functions... yes
checking for cURL support... no
checking for QDBM support... no
checking for GDBM support... no
checking for NDBM support... no
checking for TCADB support... no
checking for LMDB support... no
checking for Berkeley DB4 support... no
checking for Berkeley DB3 support... no
checking for Berkeley DB2 support... no
checking for DB1 support... no
checking for DBM support... no
checking for CDB support... no
checking for INI File support... no
checking for FlatFile support... no
checking whether to enable DBA interface... no
checking whether to enable DOM support... yes
checking for xml2-config path... (cached) /usr/local/bin/xml2-config
checking whether libxml build works... (cached) yes
checking for ENCHANT support... no
checking whether to enable EXIF (metadata from images) support... no
checking for fileinfo support... yes
checking for strcasestr... no
configure: using libmagic strcasestr implementation
checking for utimes... yes
checking for strndup... no
checking whether to enable input filter support... yes
checking pcre install prefix... no
checking whether to enable FTP support... no
checking OpenSSL dir for FTP... no
checking for GD support... no
checking for the location of libwebp... no
checking for the location of libjpeg... no
checking for the location of libpng... no
checking for the location of libXpm... no
checking for FreeType 2... no
checking whether to enable JIS-mapped Japanese font support in GD... no
checking for GNU gettext support... no
checking for GNU MP support... no
checking for mhash support... no
checking whether to enable hash support... yes
checking whether byte ordering is bigendian... (cached) yes
checking size of short... (cached) 2
checking size of int... (cached) 4
checking size of long... (cached) 8
checking size of long long... (cached) 8
configure: WARNING: "Use SHA3 slow implementation on bigendian"
checking for iconv support... yes
checking for iconv... yes
checking if iconv is glibc's... no
checking if using GNU libiconv... 271yes
checking if iconv supports errno... yes
checking if iconv supports //IGNORE... yes
checking if your cpp allows macro usage in include lines... yes
checking for IMAP support... no
checking for IMAP Kerberos support... no
checking for IMAP SSL support... no
checking for Firebird support... no
checking whether to enable internationalization support... no
checking whether to enable JavaScript Object Serialization support... yes
checking for ANSI C header files... (cached) yes
checking for LDAP support... no
checking for LDAP Cyrus SASL support... no
checking whether to enable multibyte string support... no
checking whether to enable multibyte regex support... yes
checking whether to check multibyte regex backtrack... yes
checking for external libmbfl... no
checking for external oniguruma... no
checking for MySQLi support... no
checking whether to enable embedded MySQLi support... no
checking for specified location of the MySQL UNIX socket... no
checking for Oracle Database OCI8 support... no
checking for Adabas support... no
checking for SAP DB support... no
checking for Solid support... no
checking for IBM DB2 support... no
checking for ODBCRouter.com support... no
checking for Empress support... no
checking for Empress local access support... no
checking for Birdstep support... no
checking for a custom ODBC support... no
checking for iODBC support... no
checking for Easysoft ODBC-ODBC Bridge support... no
checking for unixODBC support... no
checking for DBMaker support... no
checking for any ODBC driver support... no
checking whether to enable Zend OPcache support... yes
checking whether to enable file based caching... yes
checking whether to enable copying PHP CODE pages into HUGE PAGES... yes
checking for mprotect... yes
checking for unistd.h... (cached) yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking for sysvipc shared memory support... yes
checking for mmap() using MAP_ANON shared memory support... yes
checking for mmap() using /dev/zero shared memory support... yes
checking for mmap() using shm_open() shared memory support... no
checking for mmap() using regular file shared memory support... yes
checking "whether flock struct is linux ordered"... "yes"
checking "whether flock struct is BSD ordered"... "no"
checking whether to enable pcntl support... no
checking whether to enable PDO support... yes
checking for PDO_DBLIB support via FreeTDS... no
checking for Firebird support for PDO... no
checking for MySQL support for PDO... no
checking Oracle OCI support for PDO... no
checking for ODBC v3 support for PDO... no
checking for PostgreSQL support for PDO... no
checking for sqlite 3 support for PDO... yes
checking for PDO includes... checking for PDO includes... /usr/local/build/php-7.2.8_SunOS5.10_sparc64vii+.001/ext
checking for usleep... (cached) yes
checking for nanosleep... (cached) yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for fdatasync in -lrt... yes
checking for PostgreSQL support... no
checking for phar archive support... yes
checking for phar openssl support... no
checking whether to enable POSIX-like functions... yes
checking sys/mkdev.h usability... yes
checking sys/mkdev.h presence... yes
checking for sys/mkdev.h... yes
checking for seteuid... yes
checking for setegid... yes
checking for setsid... yes
checking for getsid... yes
checking for setpgid... (cached) yes
checking for getpgid... yes
checking for ctermid... yes
checking for mkfifo... yes
checking for mknod... yes
checking for setrlimit... yes
checking for getrlimit... yes
checking for getlogin... (cached) yes
checking for getgroups... yes
checking for makedev... no
checking for initgroups... yes
checking for getpwuid_r... (cached) yes
checking for getgrgid_r... yes
checking for working ttyname_r() implementation... yes
checking for utsname.domainname... no
checking for PSPELL support... no
checking for libedit readline replacement... no
checking for readline support... no
checking for recode support... no
checking whether to enable PHP sessions... yes
checking for mm support... no
checking whether pwrite works... yes
checking whether pread works... yes
checking whether to enable shmop support... no
checking whether to enable SimpleXML support... yes
checking for xml2-config path... (cached) /usr/local/bin/xml2-config
checking whether libxml build works... (cached) yes
checking for SNMP support... no
checking OpenSSL dir for SNMP... no
checking whether to enable SOAP support... no
checking whether to enable sockets support... no
checking for sodium support... no
checking whether flush should be called explicitly after a buffered io... yes
checking for standard DES crypt... yes
checking for extended DES crypt... no
checking for MD5 crypt... yes
checking for Blowfish crypt... yes
checking for SHA512 crypt... yes
checking for SHA256 crypt... yes
checking whether the compiler supports __alignof__... yes
checking whether the compiler supports aligned attribute... yes
checking for getcwd... yes
checking for getwd... yes
checking for asinh... yes
checking for acosh... yes
checking for atanh... yes
checking for log1p... yes
checking for hypot... yes
checking for glob... yes
checking for strfmon... yes
checking for nice... yes
checking for fpclass... yes
checking for mempcpy... no
checking for strpncpy... no
checking for working POSIX fnmatch... yes
checking for fork... yes
checking if your OS can spawn processes with inherited handles... yes
checking for res_nsearch... no
checking for __res_nsearch... no
checking for res_nsearch in -lresolv... yes
checking for res_ndestroy... yes
checking for dns_search... no
checking for __dns_search... no
checking for dns_search in -lresolv... no
checking for __dns_search in -lresolv... no
checking for dns_search in -lbind... no
checking for __dns_search in -lbind... no
checking for dns_search in -lsocket... no
checking for __dns_search in -lsocket... no
checking for dn_expand... yes
checking for dn_skipname... yes
checking for res_search... yes
checking whether strptime() declaration fails... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for mblen... yes
checking for mbrlen... yes
checking for mbsinit... yes
checking for mbstate_t... yes
checking atomic.h usability... yes
checking atomic.h presence... yes
checking for atomic.h... yes
checking whether arc4random_buf is declared... no
checking for Argon2 support... no
checking whether to enable System V IPC support... no
checking whether to enable System V semaphore support... no
checking whether to enable System V shared memory support... no
checking for TIDY support... no
checking whether to enable tokenizer support... yes
checking whether to enable WDDX support... no
checking libexpat dir for WDDX... no
checking whether to enable XML support... yes
checking libexpat install dir... no
checking for xml2-config path... (cached) /usr/local/bin/xml2-config
checking whether libxml build works... (cached) yes
checking whether to enable XMLReader support... yes
checking for xml2-config path... (cached) /usr/local/bin/xml2-config
checking whether libxml build works... (cached) yes
checking for XMLRPC-EPI support... no
checking libexpat dir for XMLRPC-EPI... no
checking iconv dir for XMLRPC-EPI... no
checking whether to enable XMLWriter support... yes
checking for xml2-config path... (cached) /usr/local/bin/xml2-config
checking whether libxml build works... (cached) yes
checking for XSL support... no
checking whether to enable zend-test extension... no
checking for zip archive read/writesupport... no
checking pcre install prefix... no
checking libzip... no
checking whether to enable mysqlnd... no
checking whether to disable compressed protocol support in mysqlnd... yes

Configuring PEAR
checking whether to install PEAR... yes

Configuring Zend
checking for bison version... (cached) 2.7 (ok)
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for limits.h... (cached) yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for string.h... (cached) yes
checking for unistd.h... (cached) yes
checking for stdarg.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/time.h... (cached) yes
checking for signal.h... (cached) yes
checking for unix.h... (cached) no
checking for stdlib.h... (cached) yes
checking for dlfcn.h... (cached) yes
checking for size_t... (cached) yes
checking return type of signal handlers... void
checking for uint... yes
checking for ulong... yes
checking for int32_t... yes
checking for uint32_t... yes
checking for vprintf... (cached) yes
checking for _doprnt... (cached) yes
checking for working memcmp... yes
checking for working alloca.h... (cached) yes
checking for alloca... (cached) yes
checking for memcpy... (cached) yes
checking for strdup... (cached) yes
checking for getpid... yes
checking for kill... yes
checking for strtod... yes
checking for strtol... yes
checking for finite... yes
checking for fpclass... (cached) yes
checking for sigsetjmp... yes
checking whether sprintf is broken... no
checking whether isfinite is declared... yes
checking whether isnan is declared... yes
checking whether isinf is declared... yes
checking whether fp_except is defined... no
checking for usable _FPU_SETCW... no
checking for usable fpsetprec... no
checking for usable _controlfp... no
checking for usable _controlfp_s... no
checking whether FPU control word can be manipulated by inline assembler... no
checking whether double cast to long preserves least significant bits... no
checking for dlfcn.h... (cached) yes
checking whether dlsym() requires a leading underscore in symbol names... no
checking whether to enable thread-safety... no
checking whether to enable inline optimization for GCC... yes
checking whether to enable Zend debugging... no
checking for inline... inline
checking target system is Darwin... no
checking for MM alignment and log values... done
checking for memory allocation using mmap(MAP_ANON)... yes
checking for memory allocation using mmap("/dev/zero")... yes
checking for mremap... no
checking for sigaction... yes
checking whether to enable zend signal handling... yes

Configuring TSRM
checking for stdarg.h... (cached) yes
checking for sigprocmask... yes
checking how many arguments gethostbyname_r() takes... five

Configuring libtool
checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/ccs/bin/sparcv9/nm -p
checking how to recognize dependent libraries... pass_all
checking how to run the C++ preprocessor... /opt/developerstudio12.6/bin/CC -E
checking the maximum length of command line arguments... 786240
checking command to parse /usr/ccs/bin/sparcv9/nm -p output from /opt/developerstudio12.6/bin/cc object... failed
checking for objdir... .libs
checking for ar... /usr/ccs/bin/ar
checking for ranlib... ranlib
checking for strip... strip
checking for /opt/developerstudio12.6/bin/cc option to produce PIC... -KPIC
checking if /opt/developerstudio12.6/bin/cc PIC flag -KPIC works... yes
checking if /opt/developerstudio12.6/bin/cc static flag -Bstatic works... yes
checking if /opt/developerstudio12.6/bin/cc supports -c -o file.o... yes
checking whether the /opt/developerstudio12.6/bin/cc linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes

creating libtool
appending configuration tag "CXX" to libtool
checking whether the /opt/developerstudio12.6/bin/CC linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking for /opt/developerstudio12.6/bin/CC option to produce PIC... -KPIC
checking if /opt/developerstudio12.6/bin/CC PIC flag -KPIC works... yes
checking if /opt/developerstudio12.6/bin/CC static flag -Bstatic works... no
checking if /opt/developerstudio12.6/bin/CC supports -c -o file.o... yes
checking whether the /opt/developerstudio12.6/bin/CC linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
(cached) (cached) checking how to hardcode library paths into programs... immediate

Generating files
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
$

Run GNU gmake and in the final stage see a sigbus : 

.
.
.
Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
gmake: *** [Makefile:415: ext/phar/phar.phar] Bus Error (core dumped)
$

The generated core file reveals more : 

$ dbx ./sapi/cli/php time_1534302903-pid_17349-uid_16411-gid_20002-fid_php.per-process-core
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 8.2' in your .dbxrc
Reading php
core file header read successfully
Reading ld.so.1
Reading libresolv.so.2
Reading librt.so.1
Reading libm.so.2
Reading libnsl.so.1
Reading libsocket.so.1
Reading libz.so.1.2.8
Reading libxml2.so.2.9.2
Reading liblzma.so.5.2.1
Reading libpthread.so.1
Reading libiconv.so.2.6.0
Reading libc.so.1
Reading libaio.so.1
Reading libmd.so.1
Reading libc_psr.so.1
t@1 (l@1) program terminated by signal BUS (invalid address alignment)
Current function is set_jump
  641           jump->next = NULL;
(dbx) where                                                                                                                      
current thread: t@1
=>[1] set_jump(jump = 0x101e2915c, compiler = 0x101e280b0, flags = 0), line 641 in "sljitLir.c"
  [2] sljit_emit_jump(compiler = 0x101e280b0, type = 24), line 1320 in "sljitNativeSPARC_common.c"
  [3] mainloop_entry(common = 0xffffffff7fffd180, hascrorlf = 0), line 3372 in "pcre_jit_compile.c"
  [4] php__pcre_jit_compile(re = 0x101e27fd0, extra = 0x101e28030, mode = 0), line 11065 in "pcre_jit_compile.c"
  [5] php_pcre_study(external_re = 0x101e27fd0, options = 1, errorptr = 0xffffffff7fffd710), line 1630 in "pcre_study.c"
  [6] pcre_get_compiled_regex_cache(regex = 0xffffffff7d0c9220), line 548 in "php_pcre.c"
  [7] spl_dual_it_construct(execute_data = 0xffffffff7d01d480, return_value = 0xffffffff7fffdba0, ce_base = 0x101d2a1b0, ce_inner = 0x101d387b0, dit_type = DIT_RegexIterator), line 1563 in "spl_iterators.c"
  [8] zim_spl_RegexIterator___construct(execute_data = 0xffffffff7d01d480, return_value = 0xffffffff7fffdba0), line 1986 in "spl_iterators.c"
  [9] ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER(execute_data = 0xffffffff7d01d150), line 907 in "zend_vm_execute.h"
  [10] execute_ex(ex = 0xffffffff7d01c030), line 59739 in "zend_vm_execute.h"
  [11] zend_execute(op_array = 0xffffffff7d080380, return_value = (nil)), line 63776 in "zend_vm_execute.h"
  [12] zend_execute_scripts(type = 8, retval = (nil), file_count = 3, ... = 0x17d077120, ...), line 1496 in "zend.c"
  [13] php_execute_script(primary_file = 0xffffffff7fffedf8), line 2590 in "main.c"
  [14] do_cli(argc = 32, argv = 0x101c94b60), line 1011 in "php_cli.c"
  [15] main(argc = 32, argv = 0x101c94b60), line 1404 in "php_cli.c"
(dbx) list
  641           jump->next = NULL;
  642           jump->flags = flags;
  643           if (compiler->last_jump)
  644                   compiler->last_jump->next = jump;
  645           else
  646                   compiler->jumps = jump;
  647           compiler->last_jump = jump;
  648   }
  649   
  650   static SLJIT_INLINE void set_const(struct sljit_const *const_, struct sljit_compiler *compiler)
(dbx) print jump
jump = 0x101e2915c
(dbx) print *jump
*jump = {
    next  = 0x3e20246900000000
    addr  = 0
    flags = 151611750
    u     = {
        target = 539521908U
        label  = 0x2028737400000000
    }
}
(dbx) quit      
$ 

Not sure why jump->next = NULL would toss a sigbus but regardless here we are.


Expected result:
----------------
Expected a clean compile.

Actual result:
--------------
sigbus

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-08-23 13:55 UTC] list at xdrv dot co dot uk
Hello Dennis, this Bus Error is actually due to pcre.  sljitLir.c is part of pcre and a copy of pcre 8.41 is bundled with PHP in ext/pcre.

To start please look at PHP's file sapi/fpm/fpm/fpm_atomic.h:

#else /* #if (__sparcv9 || __sparcv9__) */
#error Sparc v8 and predecessors are not and will not be supported (see bug report 53310)
#endif /* #if (__sparcv9 || __sparcv9__) */

...which means we need to use -m64 and build a 64 bit sparc php, it's not clear to me if you were building 64 bit but you will have to.  Now look at pcre's code either stand alone or bundled with PHP under ext/pcre. The JIT part has defines for SLJIT_CONFIG_SPARC_32 and SLJIT_CONFIG_SPARC_64, I presume 32bit and 64bit compilation.   Form the files in directory sljit: 

#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
...
#else
    /* Both calls and BPr instructions shall not pass this point. */
#error "Implementation required"
#endif


and:

#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
#include "sljitNativeSPARC_32.c"
#else
#include "sljitNativeSPARC_64.c"
#endif

note file sljitNativeSPARC_64.c does not exist.  The configure and build process does not identify sparc 64 and compiles the 32 bit code, then crashes.  run "make test" (more accurately "MAKE=gmake gmake test") in a pcre build to see this.  The same is true in pcre2; PHP uses the older pcre.  Conclusion: do not use "--enable-jit" when building 64bit sparc pcre.


To work around this in PHP the flag we want on configure is:
    --with-pcre-jit=no




I use a non-bundled pcre so set "--with-pcre-regex=..." and "--with-pcre-dir=..." along with about 60 other flags.  Please thy this, I hope it help you.
 [2020-10-23 16:04 UTC] cmb@php.net
-Status: Open +Status: Not a bug -Assigned To: +Assigned To: cmb
 [2020-10-23 16:04 UTC] cmb@php.net
Indeed, this doesn't look like a PHP issue but rather is upstream
related.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 06:01:35 2024 UTC