Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[macOS Sonoma] cannot compile 26.2.*: undefined symbols _ei_MD5Final _ei_MD5Init _ei_MD5Update #7987

@paulswartz

Description

@paulswartz

Describe the bug
Compiling OTP 26.2 on macOS Sonoma (14.2.1 on an M1 Pro) fails with:

ld: Undefined symbols:
  _ei_MD5Final, referenced from:
      _gen_challenge in libei.a[2](ei_connect.o)
      _recv_challenge_reply in libei.a[2](ei_connect.o)
      _gen_digest in libei.a[2](ei_connect.o)
      _recv_challenge_ack in libei.a[2](ei_connect.o)
  _ei_MD5Init, referenced from:
      _gen_challenge in libei.a[2](ei_connect.o)
      _recv_challenge_reply in libei.a[2](ei_connect.o)
      _gen_digest in libei.a[2](ei_connect.o)
      _recv_challenge_ack in libei.a[2](ei_connect.o)
  _ei_MD5Update, referenced from:
      _gen_challenge in libei.a[2](ei_connect.o)
      _recv_challenge_reply in libei.a[2](ei_connect.o)
      _recv_challenge_reply in libei.a[2](ei_connect.o)
      _gen_digest in libei.a[2](ei_connect.o)
      _gen_digest in libei.a[2](ei_connect.o)
      _recv_challenge_ack in libei.a[2](ei_connect.o)
      _recv_challenge_ack in libei.a[2](ei_connect.o)
      ...
clang: error: linker command failed with exit code 1 (use -v to see invocation)

To Reproduce

> brew install make openssl@3 zlib
> export LDFLAGS="-L/opt/homebrew/Cellar/zlib/1.3/lib -L/opt/homebrew/Cellar/openssl@3/3.2.0_1/lib"
> export CPPFLAGS="-I/opt/homebrew/Cellar/zlib/1.3/include -I/opt/homebrew/Cellar/openssl@3/3.2.0_1/include"
> git checkout OTP-26.2
> ./configure --disable-jit
> gmake clean
> gmake erl_interface

Expected behavior
The build to succeed.

Affected versions

  • 26.2
  • 26.2.1
  • 25.3.2.8

Good versions:

  • 26.1.2
  • 25.3.2.7

Additional context
I ran git bisect OTP-26.2 OTP-26.1.2 and it looks like this was introduced in 609a562.

609a562ff60e5456739dfd62bb395b9083a78cba is the first bad commit
commit 609a562ff60e5456739dfd62bb395b9083a78cba
Author: Rickard Green <[email protected]>
Date:   Thu Nov 23 18:32:35 2023 +0100

    [erts, erl_interface] Replace MD5 implementation used

    Replaces the old MD5 implementations used in OTP with the one used in
    OpenSSL 3.1.4

Metadata

Metadata

Assignees

Labels

bugIssue is reported as a bugteam:VMAssigned to OTP team VM

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions