New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #32836 (new defect)

Opened 17 months ago

Last modified 10 months ago

erlang: build error when /opt/local/bin/gcc exists

Reported by: lothar@… Owned by: bfulgham@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc:
Port: erlang

Description (last modified by ryandesign@…) (diff)

Hi,

when I try to install the erlang port on Mac OS X Lion, I run into the following compile error (full log attached):

:info:build /opt/local/bin/gcc  -mdynamic-no-pic -Ipcre -m64 -pipe  -O3 -fomit-frame-pointer -arch x86_64 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B/erts/i386-apple-darwin11.2.0  -I/opt/local/include -D_XOPEN_SOURCE -DERTS_SMP -DHAVE_CONFIG_H -Wall -Wstrict-prototypes -Wmissing-prototypes -Wdeclaration-after-statement -DUSE_THREADS -D_THREAD_SAFE -D_REENTRANT -DPOSIX_THREADS  -Ii386-apple-darwin11.2.0/opt/smp -Ibeam -Isys/unix -Isys/common -Ii386-apple-darwin11.2.0 -Izlib  -Ipcre -Ihipe -I../include -I../include/i386-apple-darwin11.2.0 -I../include/internal -I../include/internal/i386-apple-darwin11.2.0 -c beam/beam_emu.c -o obj/i386-apple-darwin11.2.0/opt/smp/beam_emu.o
:info:build cc1: error: unrecognized command line option "-mdynamic-no-pic"
:info:build cc1: error: unrecognized command line option "-arch"
:info:build make[3]: *** [obj/i386-apple-darwin11.2.0/opt/smp/beam_emu.o] Error 1
:info:build make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B/erts/emulator'
:info:build make[2]: *** [opt] Error 2
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B/erts/emulator'
:info:build make[1]: *** [smp] Error 2
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B/erts'
:info:build make: *** [emulator] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B'
:info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/work/erlang-R15B" && /usr/bin/make -w all " returned error 2
:error:build Target org.macports.build returned: shell command failed (see log for details)
:debug:build Backtrace: shell command failed (see log for details)
    while executing
"command_exec build"
    (procedure "portbuild::build_main" line 8)
    invoked from within
"$procedure $targetname"
:info:build Warning: the following items did not execute (for erlang): org.macports.activate org.macports.build org.macports.destroot org.macports.install
:notice:build Log for erlang is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_erlang/erlang/main.log

To me it looks like a compiler problem. Might this be related to Ticket #31698?

Attachments

main.log (189.3 KB) - added by lothar@… 17 months ago.

Change History

Changed 17 months ago by lothar@…

comment:1 Changed 17 months ago by lothar@…

  • Cc lothar@… added

Cc Me!

comment:2 Changed 17 months ago by ryandesign@…

  • Owner changed from macports-tickets@… to bfulgham@…
  • Cc lothar@… removed
  • Port set to erlang
  • Description modified (diff)
  • Summary changed from Erlang compile error to erlang: build error when /opt/local/bin/gcc exists

The problem is that /opt/local/bin/gcc exists, and that erlang is using it. Presumably you have used "sudo port select gcc" to select a different compiler. (Which one?) The workaround is to use "sudo port select gcc" again to select the default compiler (or simply remove /opt/local/bin/gcc), then clean erlang and try again. The real fix will be to make erlang ensure it's UsingTheRightCompiler.

comment:3 Changed 17 months ago by ryandesign@…

The problem may be that numerous files in the erlang source distribution hardcode /opt/local, /usr/local and other locations we don't want to look in:

  • aclocal.m4
  • erts/aclocal.m4
  • erts/configure.in
  • erts/test/install_SUITE.erl
  • lib/erl_interface/aclocal.m4
  • lib/odbc/aclocal.m4
  • lib/odbc/configure.in
  • lib/wx/aclocal.m4

comment:4 Changed 17 months ago by lothar@…

Ok, I selected the default compiler with:

sudo port select gcc apple-gcc42

and the build succeeded.

comment:5 Changed 10 months ago by jmr@…

This appears to be erts/configure deciding that the compiler specified in CC can't handle jumptables, and then helpfully trying to find one that can and using that instead. It would be interesting to see the config.log for that.

Note: See TracTickets for help on using tickets.