Bug 5978 - Erlang does not build for arm in 2013.02-rc3
Summary: Erlang does not build for arm in 2013.02-rc3
Status: RESOLVED WORKSFORME
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: unspecified
Hardware: PC Linux
: P5 major
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-27 14:59 UTC by Timofei Bolshakov
Modified: 2013-10-30 22:21 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Timofei Bolshakov 2013-02-27 14:59:38 UTC
I was trying to build Erlang int the latest RC (2013.02-rc3) for arm.
It did not recognize the platform correctly and, as a result, did not build.
Here is an excerpt from the log file:
________________________________________________________________________
>>> host-erlang R15B01 Patching libtool
>>> host-erlang R15B01 Configuring
(cd /root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/ && rm -rf config.cache; PATH=/root/buildroot-2013.02-rc3/output/host/bin:/root/buildroot-2013.02-rc3/output/host/usr/bin:/usr/lib/git-core:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin AR="/usr/bin/ar" AS="/usr/bin/as" LD="/usr/bin/ld" NM="/usr/bin/nm" CC="/root/buildroot-2013.02-rc3/output/host/usr/bin/ccache /usr/bin/gcc" GCC="/root/buildroot-2013.02-rc3/output/host/usr/bin/ccache /usr/bin/gcc" CXX="/root/buildroot-2013.02-rc3/output/host/usr/bin/ccache /usr/bin/g++" CPP="/usr/bin/cpp" CPPFLAGS="-I/root/buildroot-2013.02-rc3/output/host/usr/include" CFLAGS="-O2 -I/root/buildroot-2013.02-rc3/output/host/usr/include" CXXFLAGS="-O2 -I/root/buildroot-2013.02-rc3/output/host/usr/include" LDFLAGS="-L/root/buildroot-2013.02-rc3/output/host/lib -L/root/buildroot-2013.02-rc3/output/host/usr/lib -Wl,-rpath,/root/buildroot-2013.02-rc3/output/host/usr/lib" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG="/root/buildroot-2013.02-rc3/output/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_LIBDIR="/root/buildroot-2013.02-rc3/output/host/usr/lib/pkgconfig:/root/buildroot-2013.02-rc3/output/host/usr/share/pkgconfig" PERLLIB="/root/buildroot-2013.02-rc3/output/host/usr/lib/perl" LD_LIBRARY_PATH="/root/buildroot-2013.02-rc3/output/host/usr/lib:" CFLAGS="-O2 -I/root/buildroot-2013.02-rc3/output/host/usr/include" LDFLAGS="-L/root/buildroot-2013.02-rc3/output/host/lib -L/root/buildroot-2013.02-rc3/output/host/usr/lib -Wl,-rpath,/root/buildroot-2013.02-rc3/output/host/usr/lib"  ./configure --prefix="/root/buildroot-2013.02-rc3/output/host/usr" --sysconfdir="/root/buildroot-2013.02-rc3/output/host/etc" --enable-shared --disable-static --disable-gtk-doc --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --without-javac )
Ignoring the --cache-file argument since it can cause the system to be erroneously configured
Disabling caching
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
                             !!!!!!!!!!!!!!!!!
checking for gcc... /root/buildroot-2013.02-rc3/output/host/usr/bin/ccache /usr/bin/gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
________________________________________________________________________

Exactly the same happen in RC1 (that was my main reason to switch to RC3).
Comment 1 Peter Korsgaard 2013-02-27 15:05:53 UTC
(In reply to comment #0)
> I was trying to build Erlang int the latest RC (2013.02-rc3) for arm.
> It did not recognize the platform correctly and, as a result, did not build.
> Here is an excerpt from the log file:
> ________________________________________________________________________
> >>> host-erlang R15B01 Patching libtool
> >>> host-erlang R15B01 Configuring

As the comment says, this is erlang for the host (which is a dependency of erlang for the target).

You didn't paste any error message, what exactly is not working?

> (cd /root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/ && rm -rf

Please don't build as root!
Comment 2 Thomas Petazzoni 2013-02-27 15:06:03 UTC
The log you've copy/pasted shows the configuration step of the host-erlang package, i.e when we build Erlang for your development PC. Therefore, it is perfectly normal that the detected host platform is i686-pc-linux-gnu.

Could you instead post the real build failure you're seeing?
Comment 3 Timofei Bolshakov 2013-02-27 16:56:52 UTC
1. Sorry for misunderstanding - I will provide exact failure as soon as my current build will finish.

2. I build as root because I am building on separate VM, which was created solely for buildroot - this way I can archive / transfer / backup image + toolchain easier.
Comment 4 Timofei Bolshakov 2013-02-27 20:32:26 UTC
So, it looks like it does not have zlib in the host environment ...
I installed it on the host machine, but it does not help.
______________________________________________________________________________
bj/i686-pc-linux-gnu/opt/smp/erl_lock_check.o obj/i686-pc-linux-gnu/opt/smp/erl_gc.o 		obj/i686-pc-linux-gnu/opt/smp/erl_lock_count.o obj/i686-pc-linux-gnu/opt/smp/erl_nmgc.o		obj/i686-pc-linux-gnu/opt/smp/erl_posix_str.o obj/i686-pc-linux-gnu/opt/smp/erl_bits.o 		obj/i686-pc-linux-gnu/opt/smp/erl_math.o obj/i686-pc-linux-gnu/opt/smp/erl_fun.o             obj/i686-pc-linux-gnu/opt/smp/erl_bif_port.o obj/i686-pc-linux-gnu/opt/smp/erl_term.o 		obj/i686-pc-linux-gnu/opt/smp/erl_node_tables.o obj/i686-pc-linux-gnu/opt/smp/erl_monitors.o	obj/i686-pc-linux-gnu/opt/smp/erl_process_dump.o obj/i686-pc-linux-gnu/opt/smp/erl_bif_timer.o	obj/i686-pc-linux-gnu/opt/smp/erl_cpu_topology.o obj/i686-pc-linux-gnu/opt/smp/erl_drv_thread.o      obj/i686-pc-linux-gnu/opt/smp/erl_bif_chksum.o obj/i686-pc-linux-gnu/opt/smp/erl_bif_re.o		obj/i686-pc-linux-gnu/opt/smp/erl_unicode.o obj/i686-pc-linux-gnu/opt/smp/packet_parser.o	obj/i686-pc-linux-gnu/opt/smp/safe_hash.o obj/i686-pc-linux-gnu/opt/smp/erl_zlib.o		obj/i686-pc-linux-gnu/opt/smp/erl_nif.o obj/i686-pc-linux-gnu/opt/smp/erl_bif_binary.o      obj/i686-pc-linux-gnu/opt/smp/erl_ao_firstfit_alloc.o obj/i686-pc-linux-gnu/opt/smp/erl_thr_queue.o	obj/i686-pc-linux-gnu/opt/smp/erl_sched_spec_pre_alloc.o obj/i686-pc-linux-gnu/opt/smp/beam_emu.o		obj/i686-pc-linux-gnu/opt/smp/beam_opcodes.o obj/i686-pc-linux-gnu/opt/smp/beam_load.o		obj/i686-pc-linux-gnu/opt/smp/beam_bif_load.o obj/i686-pc-linux-gnu/opt/smp/beam_debug.o		obj/i686-pc-linux-gnu/opt/smp/beam_bp.o obj/i686-pc-linux-gnu/opt/smp/beam_catches.o obj/i686-pc-linux-gnu/opt/smp/sys.o obj/i686-pc-linux-gnu/opt/smp/driver_tab.o obj/i686-pc-linux-gnu/opt/smp/unix_efile.o obj/i686-pc-linux-gnu/opt/smp/gzio.o obj/i686-pc-linux-gnu/opt/smp/elib_memmove.o obj/i686-pc-linux-gnu/opt/smp/sys_float.o obj/i686-pc-linux-gnu/opt/smp/sys_time.o obj/i686-pc-linux-gnu/opt/smp/erl_poll.kp.o obj/i686-pc-linux-gnu/opt/smp/erl_check_io.kp.o obj/i686-pc-linux-gnu/opt/smp/erl_poll.nkp.o obj/i686-pc-linux-gnu/opt/smp/erl_check_io.nkp.o obj/i686-pc-linux-gnu/opt/smp/erl_mseg.o obj/i686-pc-linux-gnu/opt/smp/erl_unix_sys_ddll.o obj/i686-pc-linux-gnu/opt/smp/erl_mtrace_sys_wrap.o obj/i686-pc-linux-gnu/opt/smp/erl_sys_common_misc.o obj/i686-pc-linux-gnu/opt/smp/hipe_bif0.o obj/i686-pc-linux-gnu/opt/smp/hipe_bif1.o obj/i686-pc-linux-gnu/opt/smp/hipe_bif2.o obj/i686-pc-linux-gnu/opt/smp/hipe_debug.o obj/i686-pc-linux-gnu/opt/smp/hipe_gc.o obj/i686-pc-linux-gnu/opt/smp/hipe_mode_switch.o obj/i686-pc-linux-gnu/opt/smp/hipe_native_bif.o obj/i686-pc-linux-gnu/opt/smp/hipe_stack.o obj/i686-pc-linux-gnu/opt/smp/hipe_x86.o obj/i686-pc-linux-gnu/opt/smp/hipe_x86_glue.o obj/i686-pc-linux-gnu/opt/smp/hipe_x86_bifs.o obj/i686-pc-linux-gnu/opt/smp/hipe_x86_signal.o obj/i686-pc-linux-gnu/opt/smp/hipe_x86_stack.o  obj/i686-pc-linux-gnu/opt/smp/efile_drv.o obj/i686-pc-linux-gnu/opt/smp/inet_drv.o obj/i686-pc-linux-gnu/opt/smp/zlib_drv.o obj/i686-pc-linux-gnu/opt/smp/ram_file_drv.o obj/i686-pc-linux-gnu/opt/smp/ttsl_drv.o  -lutil -ldl -lm   -lncurses -L../lib/internal/i686-pc-linux-gnu  /root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/erts/emulator/zlib/obj/i686-pc-linux-gnu/opt/libz.a /root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/erts/emulator/pcre/obj/i686-pc-linux-gnu/opt/libepcre.a  -lethread -lerts_internal_r -lpthread  -lrt 
obj/i686-pc-linux-gnu/opt/smp/erl_bif_chksum.o: In function `adler32_combine_3':
erl_bif_chksum.c:(.text+0x134): undefined reference to `adler32_combine64'
obj/i686-pc-linux-gnu/opt/smp/erl_bif_chksum.o: In function `crc32_combine_3':
erl_bif_chksum.c:(.text+0x20e): undefined reference to `crc32_combine64'
obj/i686-pc-linux-gnu/opt/smp/zlib_drv.o: In function `zlib_ctl':
zlib_drv.c:(.text+0x31c): undefined reference to `adler32_combine64'
zlib_drv.c:(.text+0x3e0): undefined reference to `crc32_combine64'
collect2: ld returned 1 exit status
make[4]: *** [/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/bin/i686-pc-linux-gnu/beam.smp] Error 1
make[4]: Leaving directory `/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/erts/emulator'
make[3]: *** [opt] Error 2
make[3]: Leaving directory `/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/erts/emulator'
make[2]: *** [smp] Error 2
make[2]: Leaving directory `/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/erts'
make[1]: *** [emulator] Error 2
make[1]: Leaving directory `/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01'
make: *** [/root/buildroot-2013.02-rc3/output/build/host-erlang-R15B01/.stamp_built] Error 2
Comment 5 Thomas Petazzoni 2013-05-26 11:23:23 UTC
I've just tested building erlang for ARM with the latest Buildroot, and it builds fine here. I've tested both a dynamic library build and a static library build, and both went fine.

Could you post the Buildroot .config that exhibits the problem? Also, do you have zlib installed on your host machine? And its development files?
Comment 6 Arnout Vandecappelle 2013-05-27 20:42:37 UTC
Looks to me like host-erlang should either depend on host-zlib, or set the --disable-shared-zlib option.
Comment 7 Thomas Petazzoni 2013-05-27 20:45:48 UTC
I had a look at this before replying, and the build I tested have been done on a machine where the zlib development files are not installed. host-erlang automatically detects that zlib is not available, and builds its own copy of it. So I concluded that this could not have been the origin of the bug.
Comment 8 Arnout Vandecappelle 2013-05-28 19:38:28 UTC
Hm, indeed --enable-shared-zlib defaults to no, so that can't be it.

I also haven't been able to reproduce.

Timofei, can you attach the failing .config?
Comment 9 Timofei Bolshakov 2013-05-28 20:04:14 UTC
Well - I was building it 3 month ago on buildroot-2013.02-rc3 ...
Today / tomorrow I will try to reproduce it on the that buildroot and then attach the .config. Sorry for being slow ...
Comment 10 Thomas Petazzoni 2013-10-30 22:21:24 UTC
The bug report never provided the .config, and I've again tested that Erlang builds fine for ARM. Moreover, it's been a while since we haven't had an autobuilder failure on erlang, as far as I can remember.

While there might probably be an issue, the bug report hasn't provided enough detail to investigate. Feel free to reopen with more details (at the minimum the tested Buildroot version *and* configuration file). Thanks!