Cross-build: register REPL-TLS symbols, rebuild .a on foreign touch
ober
d4162b8d5f0b8d07c1d63d72c91c637d349ec914
--- a/build-jcode-cross.ss +++ b/build-jcode-cross.ss @@ -187,6 +187,14 @@ [(not (file-exists? native-features-sentinel)) (printf "==> jerboa-native-rs sentinel missing — rebuilding (features=~a)~n" cargo-features) (rebuild-native-lib!)] + [(time>? (file-modification-time jerboa-native-a) + (file-modification-time native-features-sentinel)) + ;; The .a is shared across sibling repos (jerboa-shell, etc.). A newer .a + ;; than our sentinel means someone rebuilt it — possibly with different + ;; features — so our tag can't be trusted. Rebuild to be sure (prevents + ;; the silent "undefined reference to jerboa_sqlite_*" cross-link break). + (printf "==> jerboa-native-rs .a newer than sentinel (foreign rebuild?) — rebuilding (features=~a)~n" cargo-features) + (rebuild-native-lib!)] [(rs-source-newer-than? jerboa-native-a) (printf "==> jerboa-native-rs .rs source newer than .a — rebuilding~n") (rebuild-native-lib!)] @@ -300,13 +308,16 @@ (define jerboa-native-symbols '(;; jerboa-native (TLS/rustls) - "jerboa_tls_server_new" "jerboa_tls_server_new_mtls" + "jerboa_tls_server_new" "jerboa_tls_server_new_pem" + "jerboa_tls_server_new_mtls" "jerboa_tls_server_free" "jerboa_tls_accept" "jerboa_tls_connect" "jerboa_tls_connect_pinned" "jerboa_tls_connect_mtls" "jerboa_tls_close" "jerboa_tls_read" "jerboa_tls_write" "jerboa_tls_flush" "jerboa_tls_get_fd" "jerboa_tls_set_nonblock" "jerboa_last_error" + ;; jerboa-native (x509) — self-signed cert for the debug-REPL TLS listener + "jerboa_x509_generate_self_signed_mem" ;; jerboa-native (crypto) "jerboa_sha1" "jerboa_sha256" "jerboa_sha384" "jerboa_sha512" "jerboa_random_bytes" "jerboa_timing_safe_equal"