Guard load-shared-object calls for static/binary builds

ober

ed6489ca3e1ba35a0891518092cd103a23e4c491

diff --git a/src/chez-crypto.sls b/src/chez-crypto.sls
index 2f5aa1d..a11b84f 100644
--- 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))