Am 24.05.2017 um 18:30 schrieb Remi Collet:
Le 24/05/2017 à 17:21, li...@rhsoft.net a écrit :
frankly get out of my sight with composer
i maintain the whole webstacke for many years at my own (rpm packages)
and so the Fedora repos have excluded anything relevant to PHP - trying
to build composer by just download the src.rpm ends in a ton of build
dependencies, bootsrap stuff because of cyclic dependencies, frameworks
nobody needs and wants in environments where 3rd party code is
discouraged because it becomes a problem sooner or later in case of
upgrades and so composer is just a red flag for me until a PHP build
spits out a /usr/bin/composer binary which is self contained
I definitively don't understand your point.
why?
If you want composer, you will ALWAYS need Symfony (and some other
pieces). Composer is symfony app.
and here the problem starts
i DO NOT want Symfony because i don't have a need for any 3rd party
software just because i don't have "fire and forget" projects - i have
*one* project for a lifetime which covers all
* frameworks
* abstraction layers
* on top a CMS
* on top of the CMS customer sites
* on top of the CMS admin backaneds for dns/epp/httpd/mail...
* and since the framework as well as the CMS support CLI mode
a ton of automation for maintain services, cms-tasks, cleanups
and all needed admin staff for the whole infrastructure
from the moment on a introdcue 3rd party frameworks i am no longer free
to build PHP as i like it and the version i want
stripped down to a minimum and only enable and compile needed
extensions, package everything as loadable extensions and manage the
whole stuff with rpm-meta-packages
the only acceptable things here are PHAR files like phpdoc
[harry@srv-rhsoft:~]$ php -n -m
[PHP Modules]
Core
date
filter
libxml
pcre
Reflection
SPL
standard
and frankly i would love to anyhting above and *especially* standard as
loadable extensions instead have it in /usr/bin/php *and*
/usr/lib64/httpd/modules/libphp7.so compiled beause, well, we run also
native system services written in PHP which could have a smaller footprint
if ou need some ideas for teh Fedora "rpm.spec" take a look at the
attachment :-)
Version: 7.1.5
# 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 rpmsuffix native
%global php_native_release 1
%else
%global mtune sandybridge
%global rpmsuffix 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 -fdevirtualize-speculatively -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}.%{rpmsuffix}
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, automake, binutils, bison, bzip2-devel, curl-devel, cyrus-sasl-devel, freetype-devel, gcc-c++
BuildRequires: gd-devel, gettext-devel, httpd-devel, krb5-devel, libc-client-devel, libedit-devel, libicu-devel
BuildRequires: libjpeg-turbo-devel, libpng-devel, libstdc++-devel, libtidy-devel, libtool-ltdl-devel, libxml2-devel
BuildRequires: libzip-devel, openssl-devel, pam-devel, pcre-devel, perl, postfix, re2c, 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 xml
Summary: xml
%package xmlreader
Summary: xmlreader
%package xmlwriter
Summary: xmlwriter
%package zip
Summary: zip
%package zlib
Summary: zlib
# 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 xml
%description xmlreader
%description xmlwriter
%description zip
%description zlib
%prep
export LANG=C
%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
# rebuild 'data_file.c' from current system libmagic starting with PHP 7.2 and when /usr/bin/php is installed
%if "%{version}" >= "7.2.0"
if [ -f /usr/bin/php ]; then
/usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc > ext/fileinfo/data_file.c
fi
%endif
# generate zend-vm when /usr/bin/php is installed
%if "%{version}" >= "7.2.0"
if [ -f /usr/bin/php ]; then
/usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=HYBRID
fi
%else
if [ -f /usr/bin/php ]; then
/usr/bin/php Zend/zend_vm_gen.php --with-vm-kind=CALL
fi
%endif
# 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
export LANG=C
# 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 -fdevirtualize-speculatively -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 \
--host=x86_64-redhat-linux \
--build=x86_64-redhat-linux \
--target=x86_64-redhat-linux \
--prefix=%{_prefix} \
--program-prefix= \
--libdir=%{_libdir}/%{name} \
--disable-all \
--disable-dependency-tracking \
--enable-bcmath=shared \
--enable-calendar=shared \
--enable-cli \
--enable-ctype=shared \
--enable-dom=shared \
--enable-exif=shared \
--enable-fileinfo=shared \
--enable-filter \
--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=shared \
--enable-opcache=shared \
--enable-opcache-jit \
--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=shared \
--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=shared \
--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:9001\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
export LANG=C
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
%{extension_dir}/mysqlnd.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 xml
%{extension_dir}/xml.so
%files xmlreader
%{extension_dir}/xmlreader.so
%files xmlwriter
%{extension_dir}/xmlwriter.so
%files zip
%{extension_dir}/zip.so
%files zlib
%{extension_dir}/zlib.so
%changelog
* Mon May 15 2017 Reindl Harald <h.rei...@thelounge.net>
- call 'Zend/zend_vm_gen.php' in case a php-install is avalibale on the buildmachine
* Thu May 11 2017 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.19
- make generate 'ext/fileinfo/data_file.c' from system libmagic conditional for PHP >= 7.2.0
- /usr/bin/php ext/fileinfo/create_data_file.php /usr/share/misc/magic.mgc > ext/fileinfo/data_file.c
- https://bugs.php.net/bug.php?id=74573 and https://bugs.php.net/bug.php?id=67516
* Tue May 9 2017 Reindl Harald <h.rei...@thelounge.net>
- add '--enable-opcache-jit' to configure for tests with experimental jit-branch
- build 'mysqlnd.so' as shared extension
- build 'xml.so' as shared extension
- build 'zlib.so' as shared extension
* Thu Apr 13 2017 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.18
* Tue Mar 14 2017 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.17
* Thu Feb 16 2017 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.16
* Wed Jan 18 2017 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.15
* Tue Jan 17 2017 Reindl Harald <h.rei...@thelounge.net>
- add '-fdevirtualize-speculatively -fgraphite-identity -floop-block -floop-unroll-and-jam' to compiler flags
- remove openssl-tests because https://bugs.php.net/bug.php?id=73609 makes me sick
- add fedora systzdata-patches
- add '-fstrict-aliasing -Wstrict-aliasing' to compiler-flags
- add '--enable-huge-code-pages' to configure
- build 'readline' as loadable extension (interactive shell)
* Sun Jan 8 2017 Reindl Harald <h.rei...@thelounge.net>
- command 'rpmbuild -bb php.spec --with production' will tune for current hardware while default to 'sandybridge'
- build-cpu-architecture is now part of the package-version to move optimized builds to different repos
- remove all optimizations when 'debug_build' is enabled and add 'valgrind' param to 'profile.sh'-call
- add '-ftree-loop-im' and '-fvariable-expansion-in-unroller' to compiler flags
* Tue Dec 27 2016 Reindl Harald <h.rei...@thelounge.net>
- build 'intl' as loadable extension
- add 'libicu-devel' to build-requires
- run profiling-script after compile a debug-build to fetch memleak-warnings
- build 'bz2' as loadable extension
* Thu Dec 8 2016 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.14
* Thu Nov 10 2016 Reindl Harald <h.rei...@thelounge.net>
- update to PHP 7.0.13
* Sat Nov 5 2016 Reindl Harald <h.rei...@thelounge.net>
- added patch to enable 'realpath_cache' with enabled 'open_basedir'
we disable 'symlink' and 'link' for years and so CVE-2006-5178 has no point
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-5178
* Sat Oct 15 2016 Reindl Harald <h.rei...@thelounge.net>
- macro 'lto_build' enables link-time-optimization which increases build memory-usage combined with
profile-guided-optimization dramatically but may improve performance for production builds
adds '--disable-gcc-global-regs' to configure-flags
adds '-flto -fno-fat-lto-objects -fuse-ld=gold -fuse-linker-plugin' to compiler and linker flags
* Sat Oct 1 2016 Reindl Harald <h.rei...@thelounge.net>
- macro 'break_build' starts a webserver on port 9001 with the temporary mod_php
- script '/rpmbuild/PHP-PGO/profile.sh' supports as second param 'onlywebserver'
instead profiling and kill it afterwards so we can use it's generate-logic for
'httpd.conf' and 'php.ini' with current locations in the working directory
- remove '-funroll-loops' from compiler-flags - enabled for pgo-builds by '-fprofile-use'
- add '-fno-exceptions -fvect-cost-model=unlimited -fipa-pta -fsemantic-interposition' to compiler flags
- add '-fwrapv' to compiler flags to avoid https://bugs.php.net/bug.php?id=71201
* Thu Sep 29 2016 Reindl Harald <h.rei...@thelounge.net>
- change PGO sequence to use "make prof-gen; profile.sh; make prof-clean; make prof-use"
- remove "-Wno-coverage-mismatch" from compiler flags
- https://bugs.php.net/bug.php?id=73111
- add '-fmerge-all-constants' to compiler flags
* Sat Sep 24 2016 Reindl Harald <h.rei...@thelounge.net>
- add '-fno-align-labels -fno-gcse' to compiler flags
https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Note: When compiling a program using computed gotos, a GCC extension, you may get better
run-time performance if you disable the global common subexpression elimination pass by
adding -fno-gcse to the command line
* Fri Sep 23 2016 Reindl Harald <h.rei...@thelounge.net>
- remove 'ftp', 'xmlrpc' and 'xslt' from build
- rework call of test-suite to use default-settings instead cloned /etc/php.ini
- removed useless options from configure now that we build with system-gd
* Wed Sep 21 2016 Reindl Harald <h.rei...@thelounge.net>
- define 'break_build' and local 'debug_build' macros to stop before tests and packaging
- ship a 'debug-ini.php' with extensions and 'extension_dir' in the working directory
- now we can use the built binaries without installing them on the system
- usecase: temporary debug-builds or tests without running the whole build-process
- output tells the needed env-export and how to call the binary
export PHP_INI_SCAN_DIR=/home/builduser/rpmbuild/BUILD/php-7.0.11
CLI-BINARY: /home/builduser/rpmbuild/BUILD/php-7.0.11/sapi/cli/php
* Sun Sep 18 2016 Reindl Harald <h.rei...@thelounge.net>
- use 'profile-guided-optimization' instead of 'link-time-optimization' for memory/optimize-balance
- define 'pgo_build' macro to disable 'profile-guided-optimization' temporary
- we run scripted requests from a temporary webserver between make-stages to profile our application
- benchmark our cms-system shows 7 percent higher performance for php7
- see: https://software.intel.com/en-us/blogs/2015/10/09/pgo-let-it-go-php
- link with 'nodump' for enhanced security
- remove 'mcrypt' from build (if-you-are-typing-the-word-mcrypt-into-your-code-you-are-doing-it-wrong)
- move all extensions to sub-packages for minimzed dependencies
- add '-fivopts -ftree-loop-if-convert -ftree-loop-if-convert-stores -ftree-loop-ivcanon' to compiler flags
- explicit export of 'CC' environment variable with CFLAGS for optimized builds
- use system-gd and disable some autotests (now supported without patches)
- use system-libzip (now supported without patches)
- remove skipped and failing autotests to keep focus on new regressions
- cleanup spec-file to build more or less 'vanilla' php with own optimizations
- add 'php-httpd-dummy.conf' as temporary 'httpd.conf' at build-time for 'apxs' without hacks
- add 're2c' to build-requires and '--enable-re2c-cgoto' to configure
- build all extensions loadable to share them between httpd and cli
- cleanup configure options
- start with '--disable-all' and enable used features
- build without unused modules - improves time for build and selftest
- add '--disable-opcache-file' for smaller builds because we only use the shm-cache
- add '-fno-math-errno -fira-loop-pressure -ftree-loop-distribution' to compiler flags
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php