Opened 12 years ago

Closed 12 years ago

#31585 closed defect (fixed)

erlang @R14B04_1 +ssl fails to upgrade with _bp_sched2ix undefined

Reported by: ralph@… Owned by: bfulgham@…
Priority: Normal Milestone:
Component: ports Version: 2.0.3
Keywords: Cc: mviamari@…, rinderknecht@…
Port: erlang

Description

Trying to upgrade erlang R14B04_1 on MacOS X 10.7.2 with Xcode 4.2 gives me the following undefined symbol problem:

:info:build /Developer/usr/bin/clang -o /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04/bin/i386-apple-darwin11.2.0/beam.smp \
:info:build 	-pagezero_size 0x10000000 -m64 -L/opt/local/lib -framework CoreFoundation -lz -arch x86_64 -pagezero_size 0x400000  obj/i386-apple-darwin11.2.0/opt/smp/erl_main.o		obj/i386-apple-darwin11.2.0/opt/smp/preload.o obj/i386-apple-darwin11.2.0/opt/smp/erl_pbifs.o		obj/i386-apple-darwin11.2.0/opt/smp/benchmark.o obj/i386-apple-darwin11.2.0/opt/smp/erl_alloc.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_mtrace.o obj/i386-apple-darwin11.2.0/opt/smp/erl_alloc_util.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_goodfit_alloc.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bestfit_alloc.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_afit_alloc.o obj/i386-apple-darwin11.2.0/opt/smp/erl_instrument.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_init.o obj/i386-apple-darwin11.2.0/opt/smp/erl_atom_table.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_table.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_ddll.o  	obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_guard.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_info.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_op.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_os.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_lists.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_trace.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_wrap.o obj/i386-apple-darwin11.2.0/opt/smp/erl_trace.o		obj/i386-apple-darwin11.2.0/opt/smp/copy.o obj/i386-apple-darwin11.2.0/opt/smp/utils.o		obj/i386-apple-darwin11.2.0/opt/smp/bif.o obj/i386-apple-darwin11.2.0/opt/smp/io.o 			obj/i386-apple-darwin11.2.0/opt/smp/erl_printf_term.o obj/i386-apple-darwin11.2.0/opt/smp/erl_debug.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_md5.o obj/i386-apple-darwin11.2.0/opt/smp/erl_message.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_process.o obj/i386-apple-darwin11.2.0/opt/smp/erl_process_dict.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_process_lock.o obj/i386-apple-darwin11.2.0/opt/smp/erl_port_task.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_arith.o obj/i386-apple-darwin11.2.0/opt/smp/time.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_time_sup.o obj/i386-apple-darwin11.2.0/opt/smp/external.o		obj/i386-apple-darwin11.2.0/opt/smp/dist.o obj/i386-apple-darwin11.2.0/opt/smp/binary.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_db.o obj/i386-apple-darwin11.2.0/opt/smp/erl_db_util.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_db_hash.o obj/i386-apple-darwin11.2.0/opt/smp/erl_db_tree.o		obj/i386-apple-darwin11.2.0/opt/smp/fix_alloc.o obj/i386-apple-darwin11.2.0/opt/smp/big.o			obj/i386-apple-darwin11.2.0/opt/smp/hash.o obj/i386-apple-darwin11.2.0/opt/smp/index.o		obj/i386-apple-darwin11.2.0/opt/smp/atom.o obj/i386-apple-darwin11.2.0/opt/smp/module.o		obj/i386-apple-darwin11.2.0/opt/smp/export.o obj/i386-apple-darwin11.2.0/opt/smp/register.o		obj/i386-apple-darwin11.2.0/opt/smp/break.o obj/i386-apple-darwin11.2.0/opt/smp/erl_async.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_lock_check.o obj/i386-apple-darwin11.2.0/opt/smp/erl_gc.o 		obj/i386-apple-darwin11.2.0/opt/smp/erl_lock_count.o obj/i386-apple-darwin11.2.0/opt/smp/erl_nmgc.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_posix_str.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bits.o 		obj/i386-apple-darwin11.2.0/opt/smp/erl_math.o obj/i386-apple-darwin11.2.0/opt/smp/erl_fun.o             obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_port.o obj/i386-apple-darwin11.2.0/opt/smp/erl_term.o 		obj/i386-apple-darwin11.2.0/opt/smp/erl_node_tables.o obj/i386-apple-darwin11.2.0/opt/smp/erl_monitors.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_process_dump.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_timer.o	obj/i386-apple-darwin11.2.0/opt/smp/erl_cpu_topology.o obj/i386-apple-darwin11.2.0/opt/smp/erl_drv_thread.o      obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_chksum.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_re.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_unicode.o obj/i386-apple-darwin11.2.0/opt/smp/packet_parser.o	obj/i386-apple-darwin11.2.0/opt/smp/safe_hash.o obj/i386-apple-darwin11.2.0/opt/smp/erl_zlib.o		obj/i386-apple-darwin11.2.0/opt/smp/erl_nif.o obj/i386-apple-darwin11.2.0/opt/smp/erl_bif_binary.o      obj/i386-apple-darwin11.2.0/opt/smp/erl_ao_firstfit_alloc.o obj/i386-apple-darwin11.2.0/opt/smp/beam_emu.o		obj/i386-apple-darwin11.2.0/opt/smp/beam_opcodes.o obj/i386-apple-darwin11.2.0/opt/smp/beam_load.o		obj/i386-apple-darwin11.2.0/opt/smp/beam_bif_load.o obj/i386-apple-darwin11.2.0/opt/smp/beam_debug.o		obj/i386-apple-darwin11.2.0/opt/smp/beam_bp.o obj/i386-apple-darwin11.2.0/opt/smp/beam_catches.o obj/i386-apple-darwin11.2.0/opt/smp/sys.o obj/i386-apple-darwin11.2.0/opt/smp/driver_tab.o obj/i386-apple-darwin11.2.0/opt/smp/unix_efile.o obj/i386-apple-darwin11.2.0/opt/smp/gzio.o obj/i386-apple-darwin11.2.0/opt/smp/elib_memmove.o obj/i386-apple-darwin11.2.0/opt/smp/sys_float.o obj/i386-apple-darwin11.2.0/opt/smp/sys_time.o obj/i386-apple-darwin11.2.0/opt/smp/erl_poll.kp.o obj/i386-apple-darwin11.2.0/opt/smp/erl_check_io.kp.o obj/i386-apple-darwin11.2.0/opt/smp/erl_poll.nkp.o obj/i386-apple-darwin11.2.0/opt/smp/erl_check_io.nkp.o obj/i386-apple-darwin11.2.0/opt/smp/erl_mseg.o obj/i386-apple-darwin11.2.0/opt/smp/erl_unix_sys_ddll.o obj/i386-apple-darwin11.2.0/opt/smp/erl_mtrace_sys_wrap.o obj/i386-apple-darwin11.2.0/opt/smp/erl_sys_common_misc.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_bif0.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_bif1.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_bif2.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_debug.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_gc.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_mode_switch.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_native_bif.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_stack.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_amd64.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_amd64_glue.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_amd64_bifs.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_x86_signal.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_x86_stack.o obj/i386-apple-darwin11.2.0/opt/smp/hipe_bif64.o obj/i386-apple-darwin11.2.0/opt/smp/efile_drv.o obj/i386-apple-darwin11.2.0/opt/smp/inet_drv.o obj/i386-apple-darwin11.2.0/opt/smp/zlib_drv.o obj/i386-apple-darwin11.2.0/opt/smp/ram_file_drv.o obj/i386-apple-darwin11.2.0/opt/smp/ttsl_drv.o -lutil -ldl -lm  -lncurses -L../lib/internal/i386-apple-darwin11.2.0  /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04/erts/emulator/zlib/obj/i386-apple-darwin11.2.0/opt/libz.a /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04/erts/emulator/pcre/obj/i386-apple-darwin11.2.0/opt/libepcre.a  -lethread -lerts_internal_r -lpthread   
:info:build Undefined symbols for architecture x86_64:
:info:build   "_bp_sched2ix", referenced from:
:info:build       _load_nif_2 in erl_nif.o
:info:build ld: symbol(s) not found for architecture x86_64
:info:build clang: error: linker command failed with exit code 1 (use -v to see invocation)
:info:build make[3]: *** [/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04/bin/i386-apple-darwin11.2.0/beam.smp] Error 1
:info:build make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04/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_ports_lang_erlang/erlang/work/erlang-R14B04/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_ports_lang_erlang/erlang/work/erlang-R14B04/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_ports_lang_erlang/erlang/work/erlang-R14B04'
:info:build shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/work/erlang-R14B04" && /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.install org.macports.build org.macports.destroot
:notice:build Log for erlang is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_erlang/erlang/main.log

Attachments (2)

Portfile-rrdtool.diff (1.5 KB) - added by hatfieldje@… 12 years ago.
patch with compiler change
erlang.portfile.patch (647 bytes) - added by vkuznet (Valentin Kuznetsov) 12 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: changed from macports-tickets@… to bfulgham@…
Port: erlang added

comment:2 Changed 12 years ago by mviamari@…

I've got the same issue. I found this on the github README for erlang-embedded. Hope it helps.

https://github.com/esl/erlang-embedded/blob/master/README_IOS.md


bp_sched2ix function not defined

Problem

A function was introduced in commit ff9531eb5e6aaa5a4802db0db5e0e850f4233702 (https://github.com/erlang/otp/commit/ff9531eb5e6aaa5a4802db0db5e0e850f4233702). This function creates problems only so far when linking for an arm-apple-darwin platform.

Issues while compiling: * erl_init.o * erl_bif_trace.o * erl_trace.o * bif.o * erl_process.o * erl_nif.o * beam_emu.o * beam_bif_load.o * beam_debug.o

beam/beam_bp.h:147: warning: inline function ‘bp_sched2ix’ declared but never defined

This leads to:

Undefined symbols:
  "_bp_sched2ix", referenced from:
        _load_nif_2 in erl_nif.o
        ld: symbol(s) not found
        collect2: ld returned 1 exit status
        make[3]: ***
  [/Users/uwe/dev/erlang-embedded/otp_src_R14B01/bin/arm-apple-darwin10/beam]
  Error 1
  make[2]: *** [opt] Error 2
  make[1]: *** [opt] Error 2
  make: *** [emulator] Error 2

Solution

Remove the -std=c99 flag from the CFLAG flag.

comment:3 Changed 12 years ago by mviamari@…

Cc: mviamari@… added

Cc Me!

comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: rinderknecht@… added

Has duplicate #31634.

comment:5 Changed 12 years ago by bernhard.valenti@…

Cc: bernhard.valenti@… added

Cc Me!

comment:6 Changed 12 years ago by hatfieldje@…

added this to the Portfile in the "platform darwin 11" section (as soon as I look into how to post a patch here, I will)

if {${configure.compiler} == "clang"} {
    configure.compiler llvm-gcc-4.2
}
configure.cflags-delete "-std=c99"

Changed 12 years ago by hatfieldje@…

Attachment: Portfile-rrdtool.diff added

patch with compiler change

comment:7 Changed 12 years ago by hatfieldje@…

to clarify, only the compiler change was needed. NOT the cflags change.

comment:8 Changed 12 years ago by gthb (Gunnlaugur Thor Briem)

That patch worked for me.

comment:9 in reply to:  8 Changed 12 years ago by mviamari@…

Worked for me as well, although I had to replace the -O2 cflag with of the -O0 cflag as noted in #30012

Changed 12 years ago by vkuznet (Valentin Kuznetsov)

Attachment: erlang.portfile.patch added

comment:10 Changed 12 years ago by vkuznet (Valentin Kuznetsov)

I combined this ticket with #31698 and made a combined patch, which allowed me to successfully build erlang. Everything works fine.

comment:11 Changed 12 years ago by gthb (Gunnlaugur Thor Briem)

This last patch worked for me. Thanks!

comment:12 Changed 12 years ago by mariosangiorgio@…

Can please someone give me some hint about how to apply patches?

comment:13 Changed 12 years ago by bernhard.valenti@…

Cc: bernhard.valenti@… removed

Cc Me!

comment:14 Changed 12 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.