-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OTP 24.0 unable to find crypto OpenSSL lib #4821
Comments
The build was failed. I've edited the base article of this issue. |
I've noticed there was a massive change in b354ab8 between 24.0-rc3 and 24.0. I couldn't figure out the details of the changes. |
Same issue using
I was able to build one of the RCs without any problems as well. |
Yes, 24.0-rc3 was buildable. |
@jj1bdx I have no idea why Please attach the |
@LouisMT Please attach the |
I'm running into the same problem, I'm on latest master:
|
Thanks to @rickard-green 's help on the mailing list, I get to the point where I see the error reported here.
|
same issue on macOS Big Sur 11.3.1 using
|
It seems like a lot of the runs fail due to configure not knowing how to run the C preprocessor. I'm not sure this is the case for all of you. If you set |
CC was empty for me:
|
Getting the exact same output as #4821 (comment) but on Mojave. No particular environment/configuration. |
and it produced the following errors:
|
@wojtekmach Those errors are expected if you don't pass |
Digging further, it looks to me like the use of |
For those who just want something working, this worked for me: EGREP=egrep CC=clang CPP="clang -E" KERL_USE_AUTOCONF=0 KERL_CONFIGURE_OPTIONS="--disable-hipe --disable-sctp --enable-darwin-64bit --enable-kernel-poll --enable-shared-zlib --enable-smp-support --enable-threads --enable-wx --with-ssl=$(brew --prefix openssl) --without-docs --without-javac --without-jinterface --without-odbc" asdf install erlang 24.0 You can probably get away with dropping |
yup, I can also confirm the following worked for me:
|
This worked for me:
|
Thanks all for logs and other info! I can reproduce this issue when using autoconf version 2.70 and 2.71. When using these autoconf versions, crypto's We have not detected this issue with autoconf 2.70/2.71, since all our machines in our lab use autoconf 2.69 (and in some cases even older autoconf versions). All our machines successfully performs the check for Since the results got this weird when using autoconf 2.70/2.71 with crypto's Please, report if you get any issues with autoconf 2.69. |
@richcarl I have autoconf 2.69 and I'm getting the same error.
|
@lpgauth It would be interesting to see the |
|
This is not the same error. It looks like you are passing your own
Since these are passed, these will be used when checking if it is possible to link against Also why do you set |
BTW the |
Thanks for all the analysis and efforts. About setting |
Hi, I also install OTP 24.0 from I tried it as follows: ./configure --with-ssl=/usr/local/opt/openssl@1.1 Autoconf is here: % autoconf --version
autoconf (GNU Autoconf) 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by David J. MacKenzie and Akim Demaille. |
Regarding the autoconf 2.70/2.71 issue. From autoconf 2.70 release note:
The above is most likely the reason why autoconf 2.70/2.71 do not play well with our |
@rickard-green what is the solution to the above issue? |
The solution should be to not set any It is possible to set |
Thanks @rickard-green! I'm not setting any value for |
In both your cases one can find a directory called In this comment under point (2) @jj1bdx describes how to patch |
Hi, I tried to build 24.0.1 by the following command: DED_LDFLAGS="-m64 -bundle -bundle_loader ~/.asdf/plugins/erlang/kerl-home/builds/asdf_24.0.1/otp_src_24.0.1/bin/x86_64-apple-darwin19.6.0/beam.smp" asdf install erlang 24.0.1 But I still got the following error:
I found the directory I attached the log. |
@zacky1972 Adding that |
I did it! Thank you! |
I'm still getting failures as well. I ended up changing the OpenSSL path to a custom one downloaded by homebrew to bypass
I've tried the same variation with and without the At this point I'm mostly just giving up and developing on Linux only for my hobby stuff. |
@ferd Looks like kerl is still setting |
@ferd Until |
yeah, I expected the fix to clear the DED_* flags. I guess something else is setting them. |
I've updated info on the @rickard-green, if we were to continue using |
If I read the git history correct, you need to set these flags, as
It will work even without
You typically do not want to set these for other OTP versions than those having issues with our defaults. If you do, our changes will be overridden by yours, and you get issues like this one with
OTPs configure will use the following on MacOS:
|
Why: * Due to an issue with the installation of Erlang 24.0 in MacOS * erlang/otp#4821 How: * Changing the Erlang version from `24.0` to `24.0.2`
Why: * Due to an issue with the installation of Erlang 24.0 in MacOS * erlang/otp#4821 How: * Changing the Erlang version from `24.0` to `24.0.2`
As this also reproduces with 24.0.3 under macOS Catalina, here is the command (derived from the above), which worked for me:
It appears, the |
YP/OE hardknott uses autoconf 2.71 while Erlang/OTP still uses autoconf 2.69 leading to some potential problems. One of then is about the macro AC_EGREP_CPP which expects the EGREP variable be filled. The issue [1] has more details about the problem. For while the erlang.inc exports the EGREP variable to fix the problem when compiling erlang-native that was not able to find the correct Openssl libraries in the sysroot-native folder. Moreover, this commit also introduce the use of '--with-ssl-zlib' to fix a potential host contamination when building for native and native-sdk. 1: erlang/otp#4821
YP/OE hardknott uses autoconf 2.71 while Erlang/OTP still uses autoconf 2.69 leading to some potential problems. One of then is about the macro AC_EGREP_CPP which expects the EGREP variable be filled. The issue [1] has more details about the problem. For while the erlang.inc exports the EGREP variable to fix the problem when compiling erlang-native that was not able to find the correct Openssl libraries in the sysroot-native folder. Moreover, this commit also introduce the use of '--with-ssl-zlib' to fix a potential host contamination when building for native and native-sdk. 1: erlang/otp#4821
YP/OE hardknott uses autoconf 2.71 while Erlang/OTP still uses autoconf 2.69 leading to some potential problems. One of then is about the macro AC_EGREP_CPP which expects the EGREP variable be filled. The issue [1] has more details about the problem. For while the erlang.inc exports the EGREP variable to fix the problem when compiling erlang-native that was not able to find the correct Openssl libraries in the sysroot-native folder. Moreover, this commit also introduce the use of '--with-ssl-zlib' to fix a potential host contamination when building for native and native-sdk. 1: erlang/otp#4821
YP/OE hardknott uses autoconf 2.71 while Erlang/OTP still uses autoconf 2.69 leading to some potential problems. One of then is about the macro AC_EGREP_CPP which expects the EGREP variable be filled. The issue [1] has more details about the problem. For while the erlang.inc exports the EGREP variable to fix the problem when compiling erlang-native that was not able to find the correct Openssl libraries in the sysroot-native folder. Moreover, this commit also introduce the use of '--with-ssl-zlib' to fix a potential host contamination when building for native and native-sdk. 1: erlang/otp#4821
YP/OE hardknott uses autoconf 2.71 while Erlang/OTP still uses autoconf 2.69 leading to some potential problems. One of then is about the macro AC_EGREP_CPP which expects the EGREP variable be filled. The issue [1] has more details about the problem. For while the erlang.inc exports the EGREP variable to fix the problem when compiling erlang-native that was not able to find the correct Openssl libraries in the sysroot-native folder. Moreover, this commit also introduce the use of '--with-ssl-zlib' to fix a potential host contamination when building for native and native-sdk. 1: erlang/otp#4821
System: macOS Big Sur version 11.6 (20G165) When attempting to install any erlang version 24.0 or above with asdf I was getting ambiguous error messages and an exit 2 after seeing many deprecation messages around openssl and RSA. I finally found something that worked. I use this command from bitwalker's comment above, but changed the The command I used:
|
It seems as you use it with OpenSSL 3.0 which is the latest OpenSSL. OTP does not support that one yet. Since "-prefix openssl@1.1" made it work, you probably swithched to OpenSSL 1.1.1 which is the version preceeding 3.0. 1.1.1 is supported by OTP. The OTP branches maint and master has a fix that simply removes the deprecation warnings. See issue #4577 for more information. |
Spending the last day and a half trying to install OTP v 24.1.7 to no avail, I've tried most if not all of the workarounds outline here in this thread, as well as here, here, here and here. brew config: asdf: The recurring error message I get at the fail of the build: I've tried most of if not all of the most upvoted answers, including liberally using the export vars, attempting the I'm more or less able to install any erlang version below 24.0. Please help. :( |
@jordanelbaite That error comes from wx and have nothing todo with OpenSSL or the ssl application so have nothing todo with this issue. |
After a lot of try and failure I was able to make it work on MacOS Ventura 13.2.1 using
I executed this on a terminal without Rosetta. |
Describe the bug
lib/crypto/configure of OTP 24.0 on macOS 10.15.7 was unable to find the shared library
/usr/local/opt/openssl/lib/libcrypto.a
.(Edited: This bug was first discovered when running under parallel configure execution. Using
--disable-parallel-configure
solves the issue in some cases but not the root cause.)(Edited 2: a workaround for this bug is posted as a comment here)
(Edited 3: this issue is NOT specific to macOS, reproducible on Ubuntu 20.10 when using autoconf-2.71 instead of stock autoconf-2.69)
To Reproduce
Running the following script as
script.sh 24.0
Causes the following output (note that repository jj1bdx/otp is identical fork as erlang/otp):
Expected behavior
The build should have been ongoing properly without
--disable-parallel-configure
.Affected versions
24.0
Additional context
Building without parallelism by
make
(without -j option) in the building directory did not cause this bug.Even with this workaround, the build was failed as follows:
The text was updated successfully, but these errors were encountered: