Where is liberl_interface.a in OTP-23?

While OTP-22 has 4 files in erl_interface-3.13.2,

$ ls -l erlang/lib/erl_interface-3.13.2/lib/
Permissions Size User   Date Modified Name
.r--r--r--  235k jechol  1 Jan  1970  libei.a
.r--r--r--  230k jechol  1 Jan  1970  libei_st.a
.r--r--r--   89k jechol  1 Jan  1970  liberl_interface.a
.r--r--r--   89k jechol  1 Jan  1970  liberl_interface_st.a

OTP-23 has only 2 files in

$ ls -l erlang/lib/erl_interface-4.0.1/lib
Permissions Size User   Date Modified Name
.r--r--r--  258k jechol  1 Jan  1970  libei.a
.r--r--r--  253k jechol  1 Jan  1970  libei_st.a

This breaks one of my project dependency https://github.com/potatosalad/erlang-keccakf1600 during linking process with following error.

ld: library not found for -lerl_interface

Where can I find liberl_interface.a in OTP-23?

Doesn’t erl_interface got removed in OTP 23? Check changelog.

Yes, it has been replaced by ei, which also has a slightly different API AFAIR…

1 Like

There are forks of https://github.com/potatosalad/erlang-keccakf1600 that fix the build on OTP 23

And if you just want SHA-3 then crypto supports it natively if your OpenSSL implementation supports it.