Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:52829 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 84232 invoked from network); 3 Jun 2011 01:06:17 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Jun 2011 01:06:17 -0000 Authentication-Results: pb1.pair.com header.from=christopher.jones@oracle.com; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=christopher.jones@oracle.com; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain oracle.com from 148.87.113.121 cause and error) X-PHP-List-Original-Sender: christopher.jones@oracle.com X-Host-Fingerprint: 148.87.113.121 rcsinet10.oracle.com Linux 2.6 Received: from [148.87.113.121] ([148.87.113.121:60087] helo=rcsinet10.oracle.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 45/90-12176-78338ED4 for ; Thu, 02 Jun 2011 21:06:16 -0400 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by rcsinet10.oracle.com (Switch-3.4.2/Switch-3.4.2) with ESMTP id p5316BVF019126 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 3 Jun 2011 01:06:12 GMT Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p5316ADd002824 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Fri, 3 Jun 2011 01:06:10 GMT Received: from abhmt009.oracle.com (abhmt009.oracle.com [141.146.116.18]) by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p53165jb017758 for ; Thu, 2 Jun 2011 20:06:05 -0500 Received: from [130.35.68.31] (/130.35.68.31) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 02 Jun 2011 18:06:04 -0700 Message-ID: <4DE8337B.8040605@oracle.com> Date: Thu, 02 Jun 2011 18:06:03 -0700 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7 MIME-Version: 1.0 To: internals@lists.php.net References: <4DCFA0BF.5080202@lerdorf.com> In-Reply-To: <4DCFA0BF.5080202@lerdorf.com> Content-Type: multipart/mixed; boundary="------------070207030801030905010402" X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090205.4DE83385.0002:SCFMA922111,ss=1,fgs=0 Subject: Re: [PHP-DEV] autoconf 2.60+ support From: christopher.jones@oracle.com (Christopher Jones) --------------070207030801030905010402 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 05/15/2011 02:45 AM, Rasmus Lerdorf wrote: > As you may have noticed, I have fixed the autoconf stuff to work with autoconf 2.60+ in PHP_5_4 and trunk. In the past I have tried to make it support both <2.60 and >=2.60 at the same time and it never worked. autoconf 2.60 was released in June 2006, so > nearly 5 years ago and it is in every modern distro at this point. Most distros also have the ability to run older versions concurrently so you should be able to build 5.3 and 5.4 on the same system. On Ubuntu I have to set PHP_AUTOCONF to autoconf2.59 > before running ./buildconf in 5.3, for example. With 5.4 you should no longer need to do that. > > Let me know if there are any autoconf-related problems and we will get them tracked down. > > -Rasmus > Rasmus, We should make PHP 5.4 support autoconf 2.59 by not calling AC_PRESERVE_HELP_ORDER when using autoconf < 2.60. This would allow PECL extensions to install on Oracle Linux 5.6 & RHEL 5.6 using the standard tool chain. These OSes have autoconf 2.59 without AC_PRESERVE_HELP_ORDER (i.e. autoconf doesn't appear to be 2.59c, see [1]). Currently 'pecl install abc' immediately fails. Anyone on more up to date distros (e.g. Oracle Linux 6.1) will have a autoconf 2.60+ which will support AC_PRESERVE_HELP_ORDER. So there is no functionality lost for most people. On PHP_5_4 I changed the build checks to accept 2.59+ and added ifdefs similar to http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/configure.in?r1=291410&r2=291409&pathrev=291410 The build seems fine both with the system autoconf 2.59 and a hand built 2.68. There are 'configure --help' order differences between the two, and some new options given when using autoconf 2.68. I think this is acceptable for this edge case. A patch for PHP_5_4 is attached. It drops the overall autoconf requirement to 2.59, allowing both PECL installs and buildconf to work. Chris References: [1] http://lists.gnu.org/archive/html/autoconf/2006-04/msg00085.html -- Email: christopher.jones@oracle.com Tel: +1 650 506 8630 Blog: http://blogs.oracle.com/opal/ --------------070207030801030905010402 Content-Type: text/plain; name="autoconf.patch.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="autoconf.patch.txt" Index: scripts/phpize.m4 =================================================================== --- scripts/phpize.m4 (revision 311741) +++ scripts/phpize.m4 (working copy) @@ -1,8 +1,8 @@ dnl This file becomes configure.in for self-contained extensions. -AC_PREREQ(2.60) +AC_PREREQ(2.59) AC_INIT(config.m4) -AC_PRESERVE_HELP_ORDER +ifdef([AC_PRESERVE_HELP_ORDER], [AC_PRESERVE_HELP_ORDER], []) PHP_CONFIG_NICE(config.nice) Index: configure.in =================================================================== --- configure.in (revision 311741) +++ configure.in (working copy) @@ -8,9 +8,9 @@ dnl Basic autoconf + automake initialization, generation of config.nice. dnl ------------------------------------------------------------------------- -AC_PREREQ(2.60) +AC_PREREQ(2.59) AC_INIT(README.SVN-RULES) -AC_PRESERVE_HELP_ORDER +ifdef([AC_PRESERVE_HELP_ORDER], [AC_PRESERVE_HELP_ORDER], []) PHP_CONFIG_NICE(config.nice) Index: build/buildcheck.sh =================================================================== --- build/buildcheck.sh (revision 311741) +++ build/buildcheck.sh (working copy) @@ -28,18 +28,18 @@ PHP_AUTOCONF='autoconf' fi -# autoconf 2.60 or newer +# autoconf 2.59 or newer ac_version=`$PHP_AUTOCONF --version 2>/dev/null|head -n 1|sed -e 's/^[^0-9]*//' -e 's/[a-z]* *$//'` if test -z "$ac_version"; then echo "buildconf: autoconf not found." -echo " You need autoconf version 2.60 or newer installed" +echo " You need autoconf version 2.59 or newer installed" echo " to build PHP from SVN." exit 1 fi IFS=.; set $ac_version; IFS=' ' -if test "$1" = "2" -a "$2" -lt "60" || test "$1" -lt "2"; then +if test "$1" = "2" -a "$2" -lt "59" || test "$1" -lt "2"; then echo "buildconf: autoconf version $ac_version found." -echo " You need autoconf version 2.60 or newer installed" +echo " You need autoconf version 2.59 or newer installed" echo " to build PHP from SVN." exit 1 else --------------070207030801030905010402--