Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:46615 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 14813 invoked from network); 10 Jan 2010 11:40:19 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Jan 2010 11:40:19 -0000 Authentication-Results: pb1.pair.com smtp.mail=chris_se@gmx.net; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=chris_se@gmx.net; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.net designates 213.165.64.20 as permitted sender) X-PHP-List-Original-Sender: chris_se@gmx.net X-Host-Fingerprint: 213.165.64.20 mail.gmx.net Received: from [213.165.64.20] ([213.165.64.20:42414] helo=mail.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A2/A4-12956-3ACB94B4 for ; Sun, 10 Jan 2010 06:40:19 -0500 Received: (qmail invoked by alias); 10 Jan 2010 11:40:16 -0000 Received: from p54A163C5.dip.t-dialin.net (EHLO chris-se.dyndns.org) [84.161.99.197] by mail.gmx.net (mp069) with SMTP; 10 Jan 2010 12:40:16 +0100 X-Authenticated: #186999 X-Provags-ID: V01U2FsdGVkX1/MSucZ/wTMIrTFG8sTrxPYv14WZh5s7GS8a3tW33 oUwOV5gX1RTyVn Received: from [192.168.100.100] (unknown [192.168.100.100]) by chris-se.dyndns.org (Postfix) with ESMTP id 02CF9449C; Sun, 10 Jan 2010 12:40:13 +0100 (CET) Message-ID: <4B49BC90.7050605@gmx.net> Date: Sun, 10 Jan 2010 12:40:00 +0100 User-Agent: Thunderbird 2.0.0.21 (X11/20090302) MIME-Version: 1.0 To: Antony Dovgal CC: Moshe Doron , internals@lists.php.net References: <4B49AE43.2000201@daylessday.org> In-Reply-To: <4B49AE43.2000201@daylessday.org> X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Y-GMX-Trusted: 0 X-FuHaFi: 0.61 Subject: Re: [PHP-DEV] php for android From: chris_se@gmx.net (Christian Seiler) Hi, > If you remove that, there are only two parts that seem to be really ARM-specific: > 2) a patch for zend_float.h > Both of them are not clear to me, would you care to explain why are they needed? Since I'm responsible for zend_float.h: When running ./configure directly without telling it to use a cross compiler and later manually patching the build system, exactly this kind of thing becomes necessary. If the local CPU is either x86 or x86_64, which ./configure thinks is the target, checks for the presence of certain FPU instructions will indicate that they are there, thus configure sets different constants. On ARM, however, the FPU is different [2] and with the constant defined, compilation will fail. When doing this properly with a cross compiler [1], ./configure checks should be able to determine that the FPU doesn't have these kind of instructions (and doesn't need them, they are only required for x86 / x86_64 without SSE) and the constants will not be set automatically. So the patch for zend_float.h is *not* necessary for ARM when using cross-compilation correctly or when compiling it on ARM natively... Regards, Christian [1] Something like: CC= LD= ./configure --target=arm-linux ... --target=arm-linux is necessary to tell configure that its using a cross compiler. [2] In some ARMs at least it's completely software based.