We have moved our forum to GitHub Discussions. For questions about Phalcon v3/v4/v5 you can visit here and for Phalcon v6 here.

Trouble with compiling on Ubuntu 14.04

Hi! I can compile Phalcon.so(( File does not generate.

SSH console:

Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

[email protected]:~/cphalcon/build# sudo ./install

Warning: Unspecified QEMU CPU model.

Please consider upgrading QEMU or configuring it to use a specific model.

find . -name *.gcno -o -name *.gcda | xargs rm -f

find . -name *.lo -o -name *.o | xargs rm -f

find . -name *.la -o -name *.a | xargs rm -f

find . -name *.so | xargs rm -f

find . -name .libs -a -type d|xargs rm -rf

rm -f libphp.la modules/ libs/

Cleaning..

Configuring for:

PHP Api Version: 20121113

Zend Module Api No: 20121212

Zend Extension Api No: 220121212

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for a sed that does not truncate output... /bin/sed

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking how to run the C preprocessor... gcc -E

checking for icc... no

checking for suncc... no

checking whether gcc and cc understand -c and -o together... yes

checking for system library directory... lib

checking if compiler supports -R... no

checking if compiler supports -Wl,-rpath,... yes

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking target system type... x86_64-unknown-linux-gnu

checking for PHP prefix... /usr

checking for PHP includes... -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib

checking for PHP extension directory... /usr/lib/php5/20121212

checking for PHP installed headers prefix... /usr/include/php5

checking if debug is enabled... no

checking if zts is enabled... no

checking for re2c... no

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.

checking for gawk... gawk

checking whether to enable phalcon framework... yes, shared

checking whether byte ordering is bigendian... no

checking for ext/igbinary/igbinary.h... no

checking whether HAVE_BUNDLED_PCRE is declared... no

checking whether HAVE_JSON is declared... no

checking whether HAVE_PHP_SESSION is declared... yes

checking for ext/session/php_session.h... yes

checking whether HAVE_HASH_EXT is declared... yes

checking for ext/hash/php_hash.h... yes

checking whether to include code coverage symbols... no

checking how to print strings... printf

checking for a sed that does not truncate output... (cached) /bin/sed

checking for fgrep... /bin/grep -F

checking for ld used by gcc... /usr/bin/ld

checking if the linker (/usr/bin/ld) is GNU ld... yes

checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B

checking the name lister (/usr/bin/nm -B) interface... BSD nm

checking whether ln -s works... yes

checking the maximum length of command line arguments... 1572864

checking whether the shell understands some XSI constructs... yes

checking whether the shell understands "+="... yes

checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop

checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop

checking for /usr/bin/ld option to reload object files... -r

checking for objdump... objdump

checking how to recognize dependent libraries... pass_all

checking for dlltool... no

checking how to associate runtime and link libraries... printf %s\n

checking for ar... ar

checking for archiver @FILE support... @

checking for strip... strip

checking for ranlib... ranlib

checking for gawk... (cached) gawk

checking command to parse /usr/bin/nm -B output from gcc object... ok

checking for sysroot... no

checking for mt... mt

checking if mt is a manifest tool... no

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking for dlfcn.h... yes

checking for objdir... .libs

checking if gcc supports -fno-rtti -fno-exceptions... no

checking for gcc option to produce PIC... -fPIC -DPIC

checking if gcc PIC flag -fPIC -DPIC works... yes

checking if gcc static flag -static works... yes

checking if gcc supports -c -o file.o... yes

checking if gcc supports -c -o file.o... (cached) yes

checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes

checking whether -lc should be explicitly linked in... no

checking dynamic linker characteristics... GNU/Linux ld.so

checking how to hardcode library paths into programs... immediate

checking whether stripping libraries is possible... yes

checking if libtool supports shared libraries... yes

checking whether to build shared libraries... yes

checking whether to build static libraries... no

configure: creating ./config.status

config.status: creating config.h

config.status: executing libtool commands

/bin/bash /root/cphalcon/build/64bits/libtool --mode=compile gcc -I. -I/root/cphalcon/build/64bits -DPHP_ATOM_INC -I/root/cphalcon/build/64bits/include -I/root/cphalcon/build/64bits/main -I/root/cphalcon/build/64bits -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DPHALCON_RELEASE -DHAVE_CONFIG_H -O2 -finline-functions -fomit-frame-pointer -fvisibility=hidden -c /root/cphalcon/build/64bits/phalcon.c -o phalcon.lo

libtool: compile: gcc -I. -I/root/cphalcon/build/64bits -DPHP_ATOM_INC -I/root/cphalcon/build/64bits/include -I/root/cphalcon/build/64bits/main -I/root/cphalcon/build/64bits -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DPHALCON_RELEASE -DHAVE_CONFIG_H -O2 -finline-functions -fomit-frame-pointer -fvisibility=hidden -c /root/cphalcon/build/64bits/phalcon.c -fPIC -DPIC -o .libs/phalcon.o

mooooore time...

gcc: internal compiler error: Killed (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See file:///usr/share/doc/gcc-4.8/README.Bugs for instructions. make: *** [phalcon.lo] Error 1



98.9k

This happens because the VPS does not have enough memory to compile Phalcon. Try this to change the GCC limits in the VPS: https://hostingfu.com/article/compiling-with-gcc-on-low-memory-vps



3.5k
edited Jul '14

i created /etc/make.conf with CFLAGS="$CFLAGS --param ggc-min-expand=0 --param ggc-min-heapsize=8192". rebooted the server. but, I get the same result((

server on DigitalOcean, 512MB Ram. I tried to resize to 2GB ram

Do you have a more logs about compiling?



3.5k

Nope. Writes same thing

The link on this thread no longer works, but I was having the same issue as this, and was able to resolve using the answer here:

https://stackoverflow.com/questions/19761226/how-to-compile-ruby-with-rvm-on-a-low-memory-system

Create a temporary 512MB swap file:

sudo mkdir -p /var/cache/swap/
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=512
sudo chmod 0600 /var/cache/swap/swap0
sudo mkswap /var/cache/swap/swap0 
sudo swapon /var/cache/swap/swap0