Guard load-shared-object calls for static/binary builds
ober
ed6489ca3e1ba35a0891518092cd103a23e4c491
--- a/src/chez-crypto.sls +++ b/src/chez-crypto.sls @@ -31,9 +31,15 @@ (import (chezscheme)) - ;; Load shared objects - (define _l1 (load-shared-object "libcrypto.so")) - (define _l2 (load-shared-object "chez_crypto_shim.so")) + ;; Load shared objects. + ;; In static/binary builds where symbols are pre-registered via Sforeign_symbol, + ;; load-shared-object may fail (no dlopen) — guard to allow graceful fallback. + (define _l1 + (guard (e [#t (void)]) + (load-shared-object "libcrypto.so"))) + (define _l2 + (guard (e [#t (void)]) + (load-shared-object "chez_crypto_shim.so"))) ;; ---- FFI bindings ---- (define c-err-get (foreign-procedure "chez_crypto_err_get" (u8* int) int))