Actions
Bug #20733
openBuild failure OpenSSL extension with FreeBSD 13.3
Description
FreeBSD 13.3 build on Ruby CI was failure from 1 week ago. I manually build ruby master on FreeBSD 13 and got the following error.
[hsbt@freebsd /usr/home/hsbt/ruby]$ make
BASERUBY = /usr/local/bin/ruby --disable=gems
CC = clang
LD = ld
LDSHARED = clang -shared
CFLAGS = -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fdeclspec -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wextra-tokens -Wdeprecated-declarations -Wdivision-by-zero -Wdiv-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wmisleading-indentation -Wundef
XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/amd64-freebsd13.3 -I./include -I. -I./prism -I./enc/unicode/15.0.0 -I/usr/local/include
CPPFLAGS =
DLDFLAGS = -Wl,--compress-debug-sections=zlib -L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,-soname,showflags -fstack-protector-strong -pie
SOLIBS = -lunwind -lexecinfo -lprocstat -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lthr
LANG = C.UTF-8
LC_ALL =
LC_CTYPE =
MFLAGS =
RUSTC = rustc
YJIT_RUSTC_ARGS = --crate-name=yjit --crate-type=staticlib --edition=2021 -g -C lto=thin -C opt-level=3 -C overflow-checks=on '--out-dir=/usr/home/hsbt/ruby/yjit/target/release/' ./yjit/src/lib.rs
FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git llvmorg-17.0.6-0-g6009708b4367)
Target: x86_64-unknown-freebsd13.3
Thread model: posix
InstalledDir: /usr/bin
generating encdb.h
encdb.h unchanged
generating enc.mk
making srcs under enc
generating transdb.h
transdb.h unchanged
generating makefiles ext/configure-ext.mk
ext/configure-ext.mk unchanged
installing default coverage libraries
installing default date_core libraries
installing digest libraries
installing default digest libraries
installing default sha2 libraries
installing default console libraries
installing default libraries
installing default monitor libraries
installing default objspace libraries
compiling ossl_digest.c
ossl_digest.c:66:14: warning: call to undeclared function 'EVP_MD_CTX_get0_md'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
66 | md = EVP_MD_CTX_get0_md(ctx);
| ^
ossl_digest.c:66:12: error: incompatible integer to pointer conversion assigning to 'const EVP_MD *' (aka 'const struct evp_md_st *') from 'int' [-Wint-conversion]
66 | md = EVP_MD_CTX_get0_md(ctx);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~
ossl_digest.c:206:32: warning: call to undeclared function 'EVP_MD_CTX_get0_md'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
206 | if (EVP_DigestInit_ex(ctx, EVP_MD_CTX_get0_md(ctx), NULL) != 1) {
| ^
ossl_digest.c:206:32: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const EVP_MD *' (aka 'const struct evp_md_st *') [-Wint-conversion]
206 | if (EVP_DigestInit_ex(ctx, EVP_MD_CTX_get0_md(ctx), NULL) != 1) {
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/evp.h:550:61: note: passing argument to parameter 'type' here
550 | __owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type,
| ^
ossl_digest.c:290:40: warning: call to undeclared function 'EVP_MD_CTX_get0_md'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
290 | return rb_str_new_cstr(EVP_MD_name(EVP_MD_CTX_get0_md(ctx)));
| ^
ossl_digest.c:290:40: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const EVP_MD *' (aka 'const struct evp_md_st *') [-Wint-conversion]
290 | return rb_str_new_cstr(EVP_MD_name(EVP_MD_CTX_get0_md(ctx)));
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/evp.h:447:64: note: expanded from macro 'EVP_MD_name'
447 | # define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e))
| ^
/usr/include/openssl/evp.h:446:54: note: expanded from macro 'EVP_MD_nid'
446 | # define EVP_MD_nid(e) EVP_MD_type(e)
| ^
../.././include/ruby/internal/intern/string.h:1515:25: note: expanded from macro 'rb_str_new_cstr'
1515 | ((RBIMPL_CONSTANT_P(str) ? \
| ^~~
../.././include/ruby/internal/constant_p.h:33:55: note: expanded from macro 'RBIMPL_CONSTANT_P'
33 | # define RBIMPL_CONSTANT_P(expr) __builtin_constant_p(expr)
| ^~~~
/usr/include/openssl/evp.h:445:31: note: passing argument to parameter 'md' here
445 | int EVP_MD_type(const EVP_MD *md);
| ^
ossl_digest.c:290:40: error: incompatible integer to pointer conversion passing 'int' to parameter of type 'const EVP_MD *' (aka 'const struct evp_md_st *') [-Wint-conversion]
290 | return rb_str_new_cstr(EVP_MD_name(EVP_MD_CTX_get0_md(ctx)));
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/openssl/evp.h:447:64: note: expanded from macro 'EVP_MD_name'
447 | # define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e))
| ^
/usr/include/openssl/evp.h:446:54: note: expanded from macro 'EVP_MD_nid'
446 | # define EVP_MD_nid(e) EVP_MD_type(e)
| ^
../.././include/ruby/internal/intern/string.h:1517:25: note: expanded from macro 'rb_str_new_cstr'
1517 | rb_str_new_cstr) (str))
| ^~~
/usr/include/openssl/evp.h:445:31: note: passing argument to parameter 'md' here
445 | int EVP_MD_type(const EVP_MD *md);
| ^
3 warnings and 4 errors generated.
*** Error code 1
Stop.
make[2]: stopped in /usr/home/hsbt/ruby/ext/openssl
*** Error code 1
Stop.
make[1]: stopped in /usr/home/hsbt/ruby
*** Error code 1
Stop.
make: stopped in /usr/home/hsbt/ruby
Updated by hsbt (Hiroshi SHIBATA) about 2 months ago
- Subject changed from Build failure with FreeBSD 13.3 to Build failure OpenSSL extension with FreeBSD 13.3
I could build openssl extension with --with-opt-dir=/usr/local
.
FreeBSD 13.3 build on Ruby CI was failure from 1 week ago.
The above issue is different with openssl. It's fixed at https://github.com/ruby/ruby/commit/dc8c382266b056fa51408806478218f5230fbce2
Updated by jaruga (Jun Aruga) about 1 month ago
It's good to know that the build failure was fixed. Can we close this issue ticket now?
Updated by hsbt (Hiroshi SHIBATA) 28 days ago
Can we close this issue ticket now?
I'm wondering why Ruby couldn't build with system openssl(1.1.1w) at FreeBSD 13?
ruby/openssl
have CI for openssl-1.1.1w. It seems working fine.
https://github.com/ruby/openssl/actions/runs/11194355042/job/31120732384
Actions
Like0
Like0Like0Like0