Cross-compiling PHP

Discussion in 'Installation/Configuration' started by bkent, May 11, 2010.

  1. bkent

    bkent New Member

    Hi

    I'm a bit of a newbie with this stuff, so I'm not 100% sure where to post this.

    Anyway I have a mini arm based PC for which I am trying to compile a php binary in cgi-mode, which supports sqlite.

    I am trying to cross compile from a Ubuntu PC.

    My code is as follows (from the unzipped PHP directory):

    $ export CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
    $ export CXX=/usr/local/arm/3.4.1/bin/arm-linux-cpp
    $ ./configure --host=i386-linux-gnu --prefix=/usr/home/ben/Desktop/php_bin --enable-ftp --target=arm --without-pear --disable-simplexml --disable-mbregex --enable-sockets --enable-pdo --with-pdo-sqlite --with-sqlite3 --disable-all
    $ make
    $ make install

    It runs through the ./configure fine until the make command, where it falls over with the following error:

    .....Zend/zend_objects_API.lo Zend/zend_default_classes.lo Zend/zend_execute.lo sapi/cgi/cgi_main.lo sapi/cgi/fastcgi.lo main/internal_functions.lo -lcrypt -lcrypt -lrt -lm -lcrypt -lcrypt -o sapi/cgi/php-cgi ext/date/lib/parse_date.o: could not read symbols: Input/output error collect2: ld returned 1 exit status
    make: *** [sapi/cgi/php-cgi] Error 1

    I went into to php-5.3.2/ext/date/lib and sure enough the parse_date.o file hangs the OS when I try and open it.

    I re-downloaded the php 5.3.2 tarball, (thinking it could be a corrupt download) and php-5.3.2/ext/date/lib/parse_date.o doesn't exist, and I get the same error anyway.

    I've been researching online a bit and .o files are made during installations....

    If anyone can see what I'm doing wrong I'd be eternally grateful!
     
  2. id10t

    id10t Member

    Before you start compiling I'd check the debian releases to see if there is a binary for your architecture already...
     
  3. bkent

    bkent New Member

    OK cheers for that, id10t. The delay in my response represents me looking through the Debian releases and trying to apply them to my little arm-based PC.

    It opens up a whole other can of worms , as I have found 2 packages for the arm architecture, one php5-cgi, and one php5-sqlite.

    The package names if you're interested are:

    php5-cgi_5.2.0+dfsg-8+etch16_arm.deb

    and

    php5-sqlite_5.2.0+dfsg-8+etch16_arm.deb


    Now, I've tried my best to get the cgi binary running as per my example php cgi from the manufacturers of the arm-PC, and I just can't.

    I believe the php5-sqlite is going to be an addon - and that the pdo_sqlite.so and sqlite.so need to be placed in some kind of shared /lib/ directory.

    So it's no surprise that I can't get the two packages working in conjunction.

    Anyway I can't seem to find any documentation on how to use the packages debian, so if you can throw any light on this then please do!
     
  4. falko

    falko Super Moderator Howtoforge Staff

    Why don't you use apt to install the .deb packages?
     

Share This Page