Edit report at https://bugs.php.net/bug.php?id=73609&edit=1
ID: 73609
Updated by: bukka@php.net
Reported by: spam2 at rhsoft dot net
Summary: "run-tests.php" don't respect configuration
-Status: Not a bug
+Status: Re-Opened
Type: Bug
-Package: Dynamic loading
+Package: OpenSSL related
Operating System: Linux
PHP Version: 7.0.14
Assigned To: bukka
Block user comment: N
Private report: N
New Comment:
Actually you are right, the build system supports that so it should be probably a bug. Re-opening.
Previous Comments:
------------------------------------------------------------------------
[2017-04-30 19:44:21] spam2 at rhsoft dot net
What do you try to tell me with "it's not supported" obviously it is besides the test
suite since we are running builds with openssl.so as shared extension for many months in production
with php 7.0 and 7.1
------------------------------------------------------------------------
[2017-04-30 19:10:40] bukka@php.net
Sorry for the late reply (forgot about this one...). Ah I see what you mean. That's not
supported (openssl as shared extension). I will close this one as it's not a bug and and the
comments are a bit confusing.
I think it will be best to open a new feature request as I have already seen a similar request and
already closed it as not a bug. So it probably makes sense to have a feature / change request for it
as it might be useful for some users. Please open it and clarify that you want to be able to compile
openssl ext as a shared extension.
Thanks
------------------------------------------------------------------------
[2017-03-18 10:41:30] spam2 at rhsoft dot net
and you did build openssl as shared extension instead bundeled in the php binary?
[builduser@testserver:~]$ cat /rpmbuild/SPECS/php.spec
Version: 7.1.3
# command 'rpmbuild -bb php.spec --with production' will tune for current hardware while
default stays 'sandybridge'
# macro 'php_debug_build' is global (/home/builduser/.rpmmacros) and re-used for
pecl-builds while 'debug_build' is local
%global dist fc%fedora.%(echo $(/usr/bin/date +%Y%m%d.%H%M)).rh
%global phpver 7
%global runselftest 0
%global pgo_build 1
%global lto_build 0
%global break_build 0
%global debug_build 0
%global extension_dir %{_libdir}/%{name}/modules
%if %{?_with_production:1}%{!?_with_production:0}
%global mtune native
%global php_native_release 1
%else
%global mtune sandybridge
%global php_native_release 0
%endif
%if %php_debug_build
%global _include_minidebuginfo 1
%global RH_GCC_DEBUG_OPTION "-g3"
%global RH_CONFIGURE_DEBUG_OPTION "enable-debug"
%global RH_STRIP_BINARY 0
%global pgo_build 0
%global lto_build 0
%else
%if %debug_build
%global _include_minidebuginfo 1
%global RH_GCC_DEBUG_OPTION "-g3"
%global RH_CONFIGURE_DEBUG_OPTION "enable-debug"
%global RH_STRIP_BINARY 0
%global pgo_build 0
%global lto_build 0
%else
%global _include_minidebuginfo 0
%global RH_GCC_DEBUG_OPTION "-g0"
%global RH_CONFIGURE_DEBUG_OPTION "disable-debug"
%global RH_STRIP_BINARY 1
%endif
%endif
%if %lto_build
%global RH_LTO_CONFIGURE_OPTION "disable-gcc-global-regs"
%else
%global RH_LTO_CONFIGURE_OPTION "enable-gcc-global-regs"
%endif
Summary: PHP - CFLAGS: '-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune}
-mtune=%{mtune} -D_FORTIFY_SOURCE=2 -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts
-floop-block -floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fopenmp
-fsemantic-interposition -fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing
-ftree-loop-distribution -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im
-ftree-loop-ivcanon -fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv -g0
-minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno -fno-lto
-fuse-ld=gold -fuse-linker-plugin -fprofile-use -Wformat -Werror=format-security
-Wno-stack-protector -Wstrict-aliasing -Wa,--noexecstack'
Name: php
Release: 1.%{php_native_release}.%{?dist}.%{mtune}
License: PHP/Zend/BSD
Group: Development/Languages
URL: https://secure.php.net/
Source0: php-%{version}.tar.xz
Source1: opcache-zendoptimizer.php
Source2: php-httpd-dummy.conf
Source3: php-disabled-autotests.txt
Source4: php-test-dirs.txt
Source5: php-debug.ini
Patch1: php-realpath-cache-openbasedir.patch
Patch2: php-70-systzdata.patch
Patch3: php-71-systzdata.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: binutils
BuildRequires: bison
BuildRequires: bzip2-devel
BuildRequires: curl-devel
BuildRequires: cyrus-sasl-devel
BuildRequires: freetype-devel
BuildRequires: gcc-c++
BuildRequires: gd-devel
BuildRequires: gettext-devel
BuildRequires: httpd-devel
BuildRequires: krb5-devel
BuildRequires: libc-client-devel
BuildRequires: libedit-devel
BuildRequires: libicu-devel
BuildRequires: libjpeg-turbo-devel
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
BuildRequires: libtidy-devel
BuildRequires: libtool-ltdl-devel
BuildRequires: libxml2-devel
BuildRequires: libzip-devel
BuildRequires: openssl-devel
BuildRequires: pam-devel
BuildRequires: pcre-devel
BuildRequires: perl
BuildRequires: postfix
BuildRequires: re2c
BuildRequires: zlib-devel
Provides: mod_%{name}
Requires: %{name}-common
%description
PHP Scripting Language
%package common
Summary: common files
%package cli
Summary: command-line interface for php
Requires: %{name}-common
Provides: %{name}-cgi
%package devel
Summary: files needed for building extensions
Requires: autoconf, automake, pcre-devel, re2c, %{name}-cli
%package bcmath
Summary: bcmath
%package bz2
Summary: bz2
%package calendar
Summary: calendar
%package ctype
Summary: ctype
%package curl
Summary: curl
%package dom
Summary: dom
%package exif
Summary: exif
%package fileinfo
Summary: fileinfo
%package gd
Summary: gd
%package gettext
Summary: gettext
%package hash
Summary: hash
%package iconv
Summary: iconv
%package imap
Summary: imap
%package intl
Summary: intl
%package json
Summary: json
%package mbstring
Summary: mbstring
%package mysqli
Summary: mysqli
%package opcache
Summary: opcache
%package openssl
Summary: openssl
%package pcntl
Summary: pcntl
%package pdo
Summary: pdo
%package phar
Summary: phar
%package posix
Summary: posix
%package readline
Summary: readline
%package session
Summary: session
%package simplexml
Summary: simplexml
%package soap
Summary: soap
%package sockets
Summary: socket
%package tidy
Summary: tidy
%package tokenizer
Summary: tokenizer
%package xmlreader
Summary: xmlreader
%package xmlwriter
Summary: xmlwriter
%package zip
Summary: zip
# https://bugzilla.redhat.com/show_bug.cgi?id=1371549
%description bcmath
%description bz2
%description calendar
%description cli
%description common
%description ctype
%description curl
%description devel
%description dom
%description exif
%description fileinfo
%description gd
%description gettext
%description hash
%description iconv
%description imap
%description intl
%description json
%description mbstring
%description mysqli
%description opcache
%description openssl
%description pcntl
%description pdo
%description phar
%description posix
%description readline
%description session
%description simplexml
%description soap
%description sockets
%description tidy
%description tokenizer
%description xmlreader
%description xmlwriter
%description zip
%prep
%setup -q -n php-%{version}
%patch1 -p1 -b .realpath
%if "%{version}" >= "7.1.0"
%patch3 -p1 -b .systzdata-71
%else
%patch2 -p1 -b .systzdata-70
%endif
# generate 'data_file.c' from bundeled libmagic with current system data
# /usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc >
ext/fileinfo/data_file.c
# drop windows specific headers and fix bogus permissions
rm -f TSRM/tsrm_win32.h TSRM/tsrm_config.w32.h Zend/zend_config.w32.h ext/mysqlnd/config-win.h
ext/standard/winver.h main/win32_internal_function_disabled.h main/win95nt.h
find . -name \*.[ch] -exec chmod 644 {} \;
# delete known failing or skipped tests
%if %runselftest
xargs rm -f < %{SOURCE3}
rm -rf ext/openssl/tests/
%else
xargs rm -rf < %{SOURCE4}
%endif
%build
# force use of system libtool and regenerate configure scripts
libtoolize --force --copy --quiet
cat aclocal --print-ac-dir/{libtool,ltoptions,ltsugar,ltversion,lt~obsolete}.m4 >
build/libtool.m4
touch configure.in
./buildconf --force
# compiler and linker flags
%if %lto_build
RH_LTO_FLAGS="-flto -fno-fat-lto-objects -fuse-ld=gold -fuse-linker-plugin"
%else
RH_LTO_FLAGS="-fno-lto -fuse-ld=gold -fuse-linker-plugin"
%endif
%if %debug_build
export CFLAGS="-m64 -O0 %{RH_GCC_DEBUG_OPTION} -fno-lto"
%else
%if %php_debug_build
export CFLAGS="-m64 -O0 %{RH_GCC_DEBUG_OPTION} -fno-lto"
%else
%if %pgo_build
export CFLAGS="-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune} -mtune=%{mtune}
-D_FORTIFY_SOURCE=2 -fgraphite-identity -fipa-pta -fira-loop-pressure -fivopts -floop-block
-floop-unroll-and-jam -fmerge-all-constants -fomit-frame-pointer -fopenmp -fsemantic-interposition
-fstack-protector --param=ssp-buffer-size=8 -fstrict-aliasing -ftree-loop-distribution
-ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-im -ftree-loop-ivcanon
-fvariable-expansion-in-unroller -fvect-cost-model=unlimited -fwrapv %{RH_GCC_DEBUG_OPTION}
-minline-all-stringops -pipe -fno-align-labels -fno-exceptions -fno-gcse -fno-math-errno
$RH_LTO_FLAGS -Wformat -Werror=format-security -Wno-stack-protector -Wstrict-aliasing
-Wa,--noexecstack"
%else
export CFLAGS="-m64 -O3 -mfpmath=sse -mavx -msse2avx -march=%{mtune} -mtune=%{mtune}
-D_FORTIFY_SOURCE=2 -fivopts -fmerge-all-constants -fomit-frame-pointer -fopenmp -fstack-protector
--param=ssp-buffer-size=8 -fstrict-aliasing -fwrapv -fno-align-labels -fno-exceptions -fno-gcse
-fno-gcse-after-reload -fno-inline-functions -fno-ipa-cp -fno-ipa-cp-clone -fno-ipa-pta
-fno-math-errno -fno-peel-loops -fno-predictive-commoning -fno-semantic-interposition
-fno-tree-loop-distribute-patterns -fno-tree-loop-distribution -fno-tree-loop-if-convert
-fno-tree-loop-if-convert-stores -fno-tree-loop-im -fno-tree-loop-ivcanon -fno-unroll-loops
-fno-unswitch-loops -fno-variable-expansion-in-unroller %{RH_GCC_DEBUG_OPTION}
-minline-all-stringops -pipe $RH_LTO_FLAGS -Wformat -Werror=format-security -Wno-stack-protector
-Wstrict-aliasing -Wa,--noexecstack"
%endif
%endif
%endif
export CC="gcc $CFLAGS"
export CXXFLAGS="$CFLAGS"
export CXX="gcc $CFLAGS"
export SH_LDFLAGS="-Wl,--as-needed -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Wl,-z,nodump
$CFLAGS"
export LDFLAGS="$SH_LDFLAGS -pie -fPIE"
# define extension directory
export EXTENSION_DIR=%{extension_dir}
# configure build process
./configure --quiet \
--host=x86_64-redhat-linux \
--build=x86_64-redhat-linux \
--target=x86_64-redhat-linux \
--prefix=%{_prefix} \
--program-prefix= \
--libdir=%{_libdir}/%{name} \
--disable-all \
--enable-bcmath=shared \
--enable-calendar=shared \
--enable-cli \
--enable-ctype=shared \
--enable-dom=shared \
--enable-exif=shared \
--enable-fileinfo=shared \
--enable-filter \
--enable-gd-native-ttf \
--enable-hash=shared \
--enable-huge-code-pages \
--enable-inline-optimization \
--enable-intl=shared \
--enable-json=shared \
--enable-libxml \
--enable-mbregex \
--enable-mbstring=shared \
--enable-mysqlnd \
--enable-opcache=shared \
--enable-pcntl=shared \
--enable-pdo=shared \
--enable-phar=shared \
--enable-posix=shared \
--enable-re2c-cgoto \
--enable-session=shared \
--enable-shared \
--enable-simplexml=shared \
--enable-soap=shared \
--enable-sockets=shared \
--enable-tokenizer=shared \
--enable-xml \
--enable-xmlreader=shared \
--enable-xmlwriter=shared \
--enable-zip=shared \
--with-apxs2=%{_bindir}/apxs \
--with-bz2=shared,%{_prefix} \
--with-config-file-path=%{_sysconfdir} \
--with-config-file-scan-dir=%{_sysconfdir}/%{name}.lounge.d \
--with-curl=shared,%{_prefix} \
--with-freetype-dir=%{_prefix} \
--with-gd=shared,%{_prefix} \
--with-gettext=shared,%{_prefix} \
--with-iconv=shared \
--with-imap-ssl=%{_prefix} \
--with-imap=shared,%{_prefix} \
--with-kerberos=%{_prefix} \
--with-layout=GNU \
--with-libdir=%{_lib} \
--with-libedit=shared,%{_prefix} \
--with-libxml-dir=%{_prefix} \
--with-libzip=%{_prefix} \
--with-mysql-sock=%{_sharedstatedir}/mysql/mysql.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl=shared,%{_prefix} \
--with-pcre-jit \
--with-pcre-regex=%{_prefix} \
--with-pdo-mysql=shared,mysqlnd \
--with-pic \
--with-system-ciphers \
--with-system-tzdata \
--with-tidy=shared,%{_prefix} \
--with-zlib \
--with-zlib-dir=%{_prefix} \
--disable-cgi \
--disable-dmalloc \
--disable-dtrace \
--disable-gcov \
--disable-gd-jis-conv \
--disable-ipv6 \
--disable-mysqlnd-compression-support \
--disable-opcache-file \
--disable-phpdbg \
--disable-rpath \
--disable-short-tags \
--disable-static \
--%{RH_LTO_CONFIGURE_OPTION} \
--%{RH_CONFIGURE_DEBUG_OPTION}
if test $? != 0; then
tail -500 config.log
: configure failed
exit 1
fi
# build php with 'profile-guided-optimization' when enabled
%if %pgo_build
make %{?_smp_mflags} prof-gen
/usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD
make prof-clean
make %{?_smp_mflags} prof-use
%else
make %{?_smp_mflags}
%endif
# run profiling code for debug builds
%if %debug_build
/usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD valgrind
%endif
# stop rpmbuild and output infos for usage of the temporary binaries
%if %break_build
cp %{SOURCE5} "$PWD/php-debug.ini" > /dev/null
EXTENSION_DIR="$PWD/modules"
sed -i "s@__EXTENSION_DIR__@$EXTENSION_DIR@" "$PWD/php-debug.ini"
echo -e "\n\n\e[1;31mBREAK-BUILD ENABLED\e[0m\n\n\e[1;32mPLEASE RUN:\e[0m export
PHP_INI_SCAN_DIR=$PWD\n\e[1;32mCLI-BINARY:\e[0m $PWD/sapi/cli/php\n\e[1;32mAPACHE-MODULE:\e[0m
$PWD/libs/libphp7.so\n\e[1;32mWEBSERVER: \e[0m http://localhost:9000\n"
/usr/bin/bash /rpmbuild/PHP-PGO/profile.sh --php_build $PWD --webserveronly 1
exit 1
%endif
# run test-suite when enabled
%if %runselftest
ulimit -s 32712
unset TZ LANG LC_ALL
export LANG="C" TEST_PHP_EXECUTABLE="$PWD/sapi/cli/php"
EXTENSION_DIR="$PWD/modules" PHP_INI_SCAN_DIR="$PWD/modules"
PHP_INI_PATH="$PWD/tmp-php.ini" NO_INTERACTION=1 MALLOC_CHECK_=2
MYSQL_TEST_HOST="localhost" MYSQL_TEST_SOCKET="/var/lib/mysql/mysql.sock"
MYSQL_TEST_PORT="3306" MYSQL_TEST_USER="php_autotest"
MYSQL_TEST_PASSWD="php_autotest" MYSQL_TEST_DB="php_autotest"
PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=php_autotest"
PDO_MYSQL_TEST_SOCKET="/var/lib/mysql/mysql.sock"
PDO_MYSQL_TEST_USER="php_autotest" PDO_MYSQL_TEST_PASS="php_autotest"
PDO_MYSQL_TEST_ENGINE="MyISAM"
cp %{SOURCE5} "$PWD/tmp-php.ini" > /dev/null
sed -i "s@__EXTENSION_DIR__@$EXTENSION_DIR@" "$PWD/tmp-php.ini"
$TEST_PHP_EXECUTABLE -n -c $PWD/tmp-php.ini $PWD/run-tests.php -n -c $PWD/tmp-php.ini
find /var/www/sessiondata -user builduser -delete
%endif
%install
install -m 0755 -d %{buildroot}%{_sysconfdir} %{buildroot}%{_sysconfdir}/httpd/conf
%{buildroot}%{_libdir}/httpd/modules %{buildroot}%{_datadir}/%{name}
install -m 0644 %{SOURCE1} %{buildroot}%{_datarootdir}/%{name}/zendoptimizer.php
install -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/httpd/conf/httpd.conf
INSTALL_ROOT=%{buildroot} make install
# remove unpackaged files
rm -rf %{buildroot}%{extension_dir}/*.a %{buildroot}%{_bindir}/{phptar} %{buildroot}%{_datadir}/pear
%{buildroot}%{_libdir}/libphp%{phpver}.la %{buildroot}%{_mandir} %{buildroot}%{_sysconfdir}/httpd
%{buildroot}%{_bindir}/phar %{buildroot}%{_bindir}/phar.phar
# strip binaries for non-debug builds
%if %RH_STRIP_BINARY
strip -s --strip-unneeded %{buildroot}%{_libdir}/httpd/modules/libphp%{phpver}.so
%{buildroot}%{extension_dir}/*.so %{buildroot}%{_bindir}/php
%endif
%files
%attr(755,root,root) %{_libdir}/httpd/modules/libphp%{phpver}.so
%files common
%dir %{_datadir}/%{name}
%dir %{_libdir}/%{name}
%dir %{extension_dir}
%files bcmath
%{extension_dir}/bcmath.so
%files bz2
%{extension_dir}/bz2.so
%files calendar
%{extension_dir}/calendar.so
%files cli
%{_bindir}/php
%files ctype
%{extension_dir}/ctype.so
%files curl
%{extension_dir}/curl.so
%files devel
%{_bindir}/php-config
%{_bindir}/phpize
%{_includedir}/php
%{_libdir}/%{name}/build
%files dom
%{extension_dir}/dom.so
%files exif
%{extension_dir}/exif.so
%files fileinfo
%{extension_dir}/fileinfo.so
%files gd
%{extension_dir}/gd.so
%files gettext
%{extension_dir}/gettext.so
%files hash
%{extension_dir}/hash.so
%files iconv
%{extension_dir}/iconv.so
%files imap
%{extension_dir}/imap.so
%files intl
%{extension_dir}/intl.so
%files json
%{extension_dir}/json.so
%files mbstring
%{extension_dir}/mbstring.so
%files mysqli
%{extension_dir}/mysqli.so
%files opcache
%{extension_dir}/opcache.so
%{_datarootdir}/%{name}/zendoptimizer.php
%files openssl
%{extension_dir}/openssl.so
%files pcntl
%{extension_dir}/pcntl.so
%files pdo
%{extension_dir}/pdo.so
%{extension_dir}/pdo_mysql.so
%files phar
%{extension_dir}/phar.so
%files posix
%{extension_dir}/posix.so
%files readline
%{extension_dir}/readline.so
%files session
%{extension_dir}/session.so
%files simplexml
%{extension_dir}/simplexml.so
%files soap
%{extension_dir}/soap.so
%files sockets
%{extension_dir}/sockets.so
%files tidy
%{extension_dir}/tidy.so
%files tokenizer
%{extension_dir}/tokenizer.so
%files xmlreader
%{extension_dir}/xmlreader.so
%files xmlwriter
%{extension_dir}/xmlwriter.so
%files zip
%{extension_dir}/zip.so
%changelog
* Tue Mar 14 2017 Reindl Harald <h.reindl@thelounge.net>
- update to PHP 7.0.17
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=73609
--
Edit this bug report at https://bugs.php.net/bug.php?id=73609&edit=1