Skip to content
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

[R] Windows builds are failing at the link stage #36707

Closed
paleolimbot opened this issue Jul 16, 2023 · 3 comments · Fixed by #36710
Closed

[R] Windows builds are failing at the link stage #36707

paleolimbot opened this issue Jul 16, 2023 · 3 comments · Fixed by #36710
Assignees
Milestone

Comments

@paleolimbot
Copy link
Member

Describe the bug, including details regarding any error messages, version, and platform.

Now happening on main, e.g., https://github.com/apache/arrow/actions/runs/5566743012/jobs/10168304989?pr=36706#step:12:91

C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libarrow_bundled_dependencies.a(hash_function_impl.cc.obj):(.text+0x26c1): undefined reference to `EVP_MD_size'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libcurl.a(libcurl_la-openssl.o):(.text+0x2af2): undefined reference to `EVP_PKEY_id'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libcurl.a(libcurl_la-openssl.o):(.text+0x53b5): undefined reference to `SSL_get_peer_certificate'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libcurl.a(libcurl_la-openssl.o):(.text+0x5e0a): undefined reference to `SSL_get_peer_certificate'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libcurl.a(libcurl_la-openssl.o):(.text+0x5fe9): undefined reference to `EVP_PKEY_id'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libssh2.a(crypto.o):(.text+0x3e62): undefined reference to `EVP_PKEY_id'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libssh2.a(crypto.o):(.text+0x5676): undefined reference to `EVP_PKEY_id'
C:\rtools42\x86_64-w64-mingw32.static.posix\bin/ld.exe: ../windows/arrow-12.0.1.9000/lib/x64-ucrt/libssh2.a(crypto.o):(.text+0x5b50): undefined reference to `EVP_PKEY_id'

This feels like an OpenSSL linking issue but I'm not (yet) familiar with the details of how this all works on Windows.

Component(s)

R

@kou
Copy link
Member

kou commented Jul 16, 2023

This is also caused by mixing OpenSSL:

OpenSSL 3 is provided by R's MSYS2 packages recently: https://github.com/apache/arrow/actions/runs/5566743012/jobs/10168091288?pr=36706#step:7:215

downloading mingw-w64-ucrt-x86_64-openssl-3.1.1-9800-any.pkg.tar.xz...

But OpenSSL 1 provided by GitHub Actions runner is used: https://github.com/apache/arrow/actions/runs/5566743012/jobs/10168091288?pr=36706#step:7:454

-- Found OpenSSL: C:/Program Files/OpenSSL/lib/libcrypto.lib (found suitable version "1.1.1u", minimum required is "1.0.2")  

@raulcd
Copy link
Member

raulcd commented Jul 17, 2023

Should I wait for this to be merged for 13.0.0?

@paleolimbot
Copy link
Member Author

Yes, I think it will be somewhat difficult (although probably possible) for us to release the R package without this fix merged.

raulcd pushed a commit that referenced this issue Jul 17, 2023
…6710)

### Rationale for this change

In general, a CMake package uses `${PACKAGE}_ROOT` variable to detect `PACKAGE` but `FindOpenSSL.cmake` uses `OPENSSL_ROOT_DIR` not `OpenSSL_ROOT`.

### What changes are included in this PR?

Set `OPENSSL_ROOT_DIR` explicitly.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: #36707

Authored-by: Sutou Kouhei <kou@clear-code.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
@raulcd raulcd added this to the 13.0.0 milestone Jul 17, 2023
raulcd pushed a commit that referenced this issue Jul 17, 2023
…6710)

### Rationale for this change

In general, a CMake package uses `${PACKAGE}_ROOT` variable to detect `PACKAGE` but `FindOpenSSL.cmake` uses `OPENSSL_ROOT_DIR` not `OpenSSL_ROOT`.

### What changes are included in this PR?

Set `OPENSSL_ROOT_DIR` explicitly.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: #36707

Authored-by: Sutou Kouhei <kou@clear-code.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
chelseajonesr pushed a commit to chelseajonesr/arrow that referenced this issue Jul 20, 2023
…oo (apache#36710)

### Rationale for this change

In general, a CMake package uses `${PACKAGE}_ROOT` variable to detect `PACKAGE` but `FindOpenSSL.cmake` uses `OPENSSL_ROOT_DIR` not `OpenSSL_ROOT`.

### What changes are included in this PR?

Set `OPENSSL_ROOT_DIR` explicitly.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: apache#36707

Authored-by: Sutou Kouhei <kou@clear-code.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
R-JunmingChen pushed a commit to R-JunmingChen/arrow that referenced this issue Aug 20, 2023
…oo (apache#36710)

### Rationale for this change

In general, a CMake package uses `${PACKAGE}_ROOT` variable to detect `PACKAGE` but `FindOpenSSL.cmake` uses `OPENSSL_ROOT_DIR` not `OpenSSL_ROOT`.

### What changes are included in this PR?

Set `OPENSSL_ROOT_DIR` explicitly.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

Yes.
* Closes: apache#36707

Authored-by: Sutou Kouhei <kou@clear-code.com>
Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants