Asdf install erlang 25.2 failing, unsure of cause, on Mac OSX Monterey 12.5.1 M1 Pro

Hi all,

We recently upgraded from erlang 23.2.7 to 25.2, the rest of the team had no issue running asdf install, but I’ve been consistently running into errors. Most recently I tried setting the kerl flags, and now getting a rather cryptic output. Would love any help you’d be able to provide.

The output:

[aaggarwal:...roadcast-work/broadcast-api]$ export KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=$(brew --prefix openssl@1.1)"                                                                                                          
asdf install erlang 25.2
elixir 1.13.4-otp-25 is already installed
asdf_25.2 is not a kerl-managed Erlang/OTP installation
The asdf_25.2 build has been deleted
Extracting source code
Building Erlang/OTP 25.2 (asdf_25.2), please wait...
APPLICATIONS DISABLED (See: /Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_build_25.2.log)
 * jinterface     : Java compiler disabled by user

Build failed.
gmake[5]: Leaving directory '/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/megaco/src/flex'
gmake[4]: *** [/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/make/ opt] Error 2
gmake[4]: Leaving directory '/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/megaco/src/flex'
gmake[3]: *** [/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/make/ opt] Error 2
gmake[3]: Leaving directory '/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/megaco/src'
gmake[2]: *** [/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/make/ opt] Error 2
gmake[2]: Leaving directory '/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/megaco'
gmake[1]: *** [/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/make/ opt] Error 2
gmake[1]: Leaving directory '/Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib'
gmake: *** [Makefile:518: libs] Error 2

Please see /Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_build_25.2.log for full details.

The build log doesn’t add much more information, can post that in the thread if it helps.

Running this on MacOSX Monterey 12.5.1 on Apple M1. The terminal is a rosetta terminal and should have everything linked and installed. Here is a list of the brew formulae currently on the machine.

[aaggarwal:...roadcast-work/broadcast-api]$ brew list                                                                                                                                                                                        (main)
==> Formulae
asdf			elasticsearch-full	glib			krb5			libreadline-java	libxdmcp		little-cms2		openssl@3		railway
autoconf		fontconfig		gmp			libffi			libtiff			libxext			lz4			pcre			readline
automake		fop			graphite2		libgcrypt		libtool			libxml2			lzo			pcre2			unixodbc
ca-certificates		freetype		harfbuzz		libgpg-error		libx11			libxrender		m4			pixman			xorgproto
cairo			gettext			icu4c			libical			libxau			libxslt			openjdk			postgresql		xz
coreutils		giflib			jpeg-turbo		libpng			libxcb			libyaml			openssl@1.1		postgresql@14		zstd

Any help would be appreciated, thank you!

Paste of the output in the log /Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/co -

By chance updated your OS recently? Maybe completely unrelated, but a lot of people with Macs have had weird errors pop up, because Xcode needs you to set certain permissions… Even if you don’t use Xcode.

Worth to check it out, if you haven’t already.

Tried that one, unfortunately hasn’t worked for me. uninstalled and reinstalled xcode

asdf-erlang is great until it breaks, then it’s a huge timesink to debug.

You will probably have more success using kerl directly.

For example:

Set KERL_DEFAULT_INSTALL_DIR (I use ~/.kerl/installs/), then:

kerl build 25.2 25.2
kerl install 25.2

Then put this in your profile:

. $(kerl path 25.2)/activate
1 Like

This seems to be the issue (segmentation fault):

/bin/sh: line 1: 91925 Segmentation fault: 11  erlc -W -Werror +debug_info -DENABLE_MEGACO_FLEX_SCANNER=true -DMEGACO_REENTRANT_FLEX_SCANNER=true -Dmegaco_parser_inline -pa /Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/et/ebin -pa /Users/aaggarwal/.asdf/plugins/erlang/kerl-home/builds/asdf_25.2/otp_src_25.2/lib/megaco/ebin +'{parse_transform,sys_pre_attributes}' +'{attribute,insert,app_vsn,"megaco-4.4.2"}' -I../../include -o../../ebin megaco_flex_scanner.erl

It looks like you’re compiling in Rosetta (x86_64) mode instead of in ARM mode. Is this on purpose? I’d retry with ARM, I’ve noted people have had segfaults when using the wrong architecture on M1, though I don’t have M1 myself so I don’t have experience.

EDIT: Further looking at your OpenSSL location, it seems your Homebrew is installed in x86_64 mode (install location is /usr/local for macOS Intel, /opt/homebrew for Apple Silicon). I’d recommend reinstalling homebrew and the rest of the tooling, making sure you are in Apple Silicon mode in the terminal.

This issue seems to be related: OTP 24 compilation error on macOS Big Sur 11.3.1 · Issue #207 · asdf-vm/asdf-erlang · GitHub

This comment seems extra helpful: OTP 24 compilation error on macOS Big Sur 11.3.1 · Issue #207 · asdf-vm/asdf-erlang · GitHub

So does this comment here on the forum: Segmentation fault after update elixir and erlang - #25 by kartheek

Definitely correct, I’m trying to keep everything in x86_64 since most things don’t play nice with ARM just yet and most of my team still uses older macbooks. I was able to install erlang 23.2 this way, is there a workaround to keep using rosetta?

ah unfortunately the kerl build step still failed for the same reasons, I definitely agree this has been a massive pain but will get through it eventually!

@Nicd was correct, our team was trying to use Rosetta as much as we could but unfortunately asdf does not play nice with rosetta terminals. deleteing asdf, brew, and anything downloaded by either, then reinstalling on an arm terminal fixed the issue. Hope this helps!

From personal experience - ARM is pretty smooth sailing for my team. We don’t do anything special and it works for folks on Intel as well. Only thing we do is - find docker images that are built with both architectures for things like Postgres, Rabbit, etc.

1 Like

Issue arises only when data is migrated from intel based mac to arm based mac. Both work flawlessly without migration.