fix(guile-gnutls): make static profile build-system native by disabling extension target and extension loading path

This commit is contained in:
vxtls 2026-03-05 14:00:10 -05:00
parent 56f515400d
commit 2cb4ec57b4
2 changed files with 30 additions and 12 deletions

View file

@ -10,7 +10,15 @@
# Files generated by the (gnutls build ...) modules.
GENERATED_BINDINGS = \
@@ -45,10 +46,26 @@
@@ -35,6 +36,7 @@
CLEANFILES = $(BUILT_SOURCES)
+if ENABLE_SHARED
guileextension_LTLIBRARIES = guile-gnutls-v-2.la
# Use '-module' to build a "dlopenable module", in Libtool terms.
@@ -45,10 +47,26 @@
guile_gnutls_v_2_la_SOURCES = core.c errors.c utils.c
guile_gnutls_v_2_la_CFLAGS = \
$(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
@ -18,21 +26,21 @@
guile_gnutls_v_2_la_LIBADD = \
$(GNUTLS_LIBS) \
$(GUILE_LDFLAGS)
+if !ENABLE_SHARED
+else
+lib_LIBRARIES = libguile-gnutls-static.a
+libguile_gnutls_static_a_SOURCES = $(guile_gnutls_v_2_la_SOURCES)
+libguile_gnutls_static_a_SOURCES = core.c errors.c utils.c
+libguile_gnutls_static_a_CPPFLAGS = $(AM_CPPFLAGS)
+libguile_gnutls_static_a_CFLAGS = $(guile_gnutls_v_2_la_CFLAGS)
+libguile_gnutls_static_a_CFLAGS = \
+ $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
+libguile_gnutls_static_a_DEPENDENCIES = $(BUILT_SOURCES)
+
+bin_PROGRAMS = guile
+guile_SOURCES = guile-static-main.c
+guile_CPPFLAGS = $(AM_CPPFLAGS)
+guile_CFLAGS = $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
+guile_LDFLAGS = -static
+guile_LDADD = libguile-gnutls-static.a $(GUILE_LDFLAGS) $(GNUTLS_LIBS)
+endif !ENABLE_SHARED
+endif
+
AM_CPPFLAGS = \
-I$(top_srcdir)/lib/includes \

View file

@ -15,16 +15,26 @@ Do not patch Scheme sources; rewrite generated gnutls.scm at build time.
AM_CONDITIONAL(HAVE_GCC_GNU89_INLINE_OPTION, test "$gnu89_inline" = "yes"])
--- guile-gnutls-v5.0.1/guile/Makefile.am
+++ guile-gnutls-v5.0.1/guile/Makefile.am
@@ -46,6 +46,8 @@
@@ -43,9 +43,18 @@
CLEANFILES = modules/gnutls.scm
+if ENABLE_SHARED
+scm_static_fixup =
+else
+scm_static_fixup = \
+ -e "1,/(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")/s|(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")|(when #f|" \
+ -e "s|(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")|(when (module-variable (current-module) 'protocol/ssl3)|"
+endif
+
.in.scm:
$(AM_V_GEN)$(MKDIR_P) "`dirname "$@"`" ; cat "$^" | \
$(SED) -e's|[@]maybe_guileextensiondir[@]|$(maybe_guileextensiondir)|g' \
+ -e "1,/(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")/s|(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")|(unless (or (false-if-exception (dynamic-call \"scm_init_gnutls\" (dynamic-link #f))) (getenv \"GNUTLS_GUILE_CROSS_COMPILING\"))|" \
+ -e "s|(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")|(when (module-variable (current-module) 'protocol/ssl3)|" \
+ $(scm_static_fixup) \
> "$@.tmp"
$(AM_V_at)mv "$@.tmp" "$@"
@@ -56,6 +58,7 @@
@@ -56,6 +65,7 @@
if HAVE_GUILD
@ -32,7 +42,7 @@ Do not patch Scheme sources; rewrite generated gnutls.scm at build time.
guilesiteccachesubdir = $(guilesiteccachedir)/gnutls
nodist_guilesiteccache_DATA = modules/gnutls.go
nodist_guilesiteccachesub_DATA = modules/gnutls/extra.go
@@ -94,6 +97,7 @@
@@ -94,6 +104,7 @@
-o "$@" "$<" >&$$out
SUFFIXES = .go