Skip to content

Cannot build Erlang/OTP 22.3.4.1 on Apple M1 Silicon #221

Closed
@peake100

Description

@peake100

Hello!

I am having a hard time getting Erlang/OTP 22.3.4.1 to install on Apple Silicon. Here is my system info:

Hardware Overview:

  Model Name:	MacBook Pro
  Model Identifier:	MacBookPro17,1
  Chip:	Apple M1
  Total Number of Cores:	8 (4 performance and 4 efficiency)
  Memory:	16 GB
  System Firmware Version:	6723.140.2
  OS Loader Version:	6723.140.2
  Serial Number (system):	C02G93G7Q05N
  Activation Lock Status:	Disabled

System Software Overview:

  System Version:	macOS 11.6 (20G165)
  Kernel Version:	Darwin 20.6.0
  Boot Volume:	Macintosh HD
  Boot Mode:	Normal
  Secure Virtual Memory:	Enabled
  System Integrity Protection:	Enabled
  Time since boot:	1 day 4:54

I have a .tool-versions with the following contents:

erlang 22.3.4.1
elixir 1.10.3
nodejs 14.15.4

I have tried a few different approaches. First, I tried simply using asdf install, and got the following:

elixir 1.10.3 is already installed
asdf_22.3.4.1 is not a kerl-managed Erlang/OTP installation
The asdf_22.3.4.1 build has been deleted
Extracting source code
Building Erlang/OTP 22.3.4.1 (asdf_22.3.4.1), please wait...
Configure failed.
checking size of int... 0
checking size of long... 0
checking size of long long... 0
checking size of __int64... 0
checking size of __int128_t... 0
checking whether byte ordering is bigendian... no
checking whether double word ordering is middle-endian... yes
configure: error: cannot build emulator since no thread library was found
ERROR: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_src_22.3.4.1/erts/configure failed!
./configure: line 343: kill: (-36793) - No such process

Okay, no problem, I can try using Rosetta emulation by running arch -x86_64 zsh before running asdf install. I did that for a different project using erlang 23.3.1, and it worked great. Except here I get:

elixir 1.10.3 is already installed
asdf_22.3.4.1 is not a kerl-managed Erlang/OTP installation
The asdf_22.3.4.1 build has been deleted
Extracting source code
Building Erlang/OTP 22.3.4.1 (asdf_22.3.4.1), please wait...
            APPLICATIONS DISABLED (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * jinterface     : Java compiler disabled by user
 * odbc           : ODBC library - link check failed

APPLICATIONS INFORMATION (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * wx             : Can not link the wx driver, wx will NOT be useable

DOCUMENTATION INFORMATION (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * documentation  : 
 *                  fop is missing.
 *                  Using fakefop to generate placeholder PDF files.

Build failed.
      _get_rsa_public_key in rsa.o
  "_RSA_size", referenced from:
      _pkey_crypt_nif in pkey.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [../priv/lib/x86_64-apple-darwin20.6.0/crypto.so] Error 1
make[3]: *** [opt] Error 2
make[2]: *** [opt] Error 2
make[1]: *** [opt] Error 2
make: *** [libs] Error 2

Looks like a linking error against an x86 lib.

I poked around a little online, and gave it one last try (in non-Rosetta mode) using:

KERL_CONFIGURE_OPTIONS="--enable-m64-build --without-javac" asdf install

And got this:

elixir 1.10.3 is already installed
asdf_22.3.4.1 is not a kerl-managed Erlang/OTP installation
The asdf_22.3.4.1 build has been deleted
Extracting source code
Building Erlang/OTP 22.3.4.1 (asdf_22.3.4.1), please wait...
APPLICATIONS DISABLED (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * jinterface     : Java compiler disabled by user
 * odbc           : ODBC library - link check failed

APPLICATIONS INFORMATION (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * wx             : Can not link the wx driver, wx will NOT be useable

DOCUMENTATION INFORMATION (See: /Users/bpeake/.asdf/plugins/erlang/kerl-home/builds/asdf_22.3.4.1/otp_build_22.3.4.1.log)
 * documentation  : 
 *                  fop is missing.
 *                  Using fakefop to generate placeholder PDF files.

^[[CBuild failed.
 ERLC	../ebin/hipe_consttab.beam
 ERLC	../ebin/hipe_gensym.beam
/bin/sh: line 1: 80774 Segmentation fault: 11  erlc -W +debug_info -DUSE_ESOCK=true -Werror +warn_export_vars +warn_missing_spec +warn_untyped_record -o../ebin hipe_consttab.erl
make[3]: *** [../ebin/hipe_consttab.beam] Error 139
make[3]: *** Waiting for unfinished jobs....
/bin/sh: line 1: 80775 Segmentation fault: 11  erlc -W +debug_info -DUSE_ESOCK=true -Werror +warn_export_vars +warn_missing_spec +warn_untyped_record -o../ebin hipe_gensym.erl

Any thoughts? Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions