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. # Files generated by the (gnutls build ...) modules.
GENERATED_BINDINGS = \ 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_SOURCES = core.c errors.c utils.c
guile_gnutls_v_2_la_CFLAGS = \ guile_gnutls_v_2_la_CFLAGS = \
$(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS) $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
@ -18,21 +26,21 @@
guile_gnutls_v_2_la_LIBADD = \ guile_gnutls_v_2_la_LIBADD = \
$(GNUTLS_LIBS) \ $(GNUTLS_LIBS) \
$(GUILE_LDFLAGS) $(GUILE_LDFLAGS)
+else
+if !ENABLE_SHARED
+lib_LIBRARIES = libguile-gnutls-static.a +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_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) +libguile_gnutls_static_a_DEPENDENCIES = $(BUILT_SOURCES)
+
+bin_PROGRAMS = guile +bin_PROGRAMS = guile
+guile_SOURCES = guile-static-main.c +guile_SOURCES = guile-static-main.c
+guile_CPPFLAGS = $(AM_CPPFLAGS) +guile_CPPFLAGS = $(AM_CPPFLAGS)
+guile_CFLAGS = $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS) +guile_CFLAGS = $(AM_CFLAGS) $(GNULIB_CFLAGS) $(GUILE_CFLAGS) $(GNUTLS_CFLAGS)
+guile_LDFLAGS = -static +guile_LDFLAGS = -static
+guile_LDADD = libguile-gnutls-static.a $(GUILE_LDFLAGS) $(GNUTLS_LIBS) +guile_LDADD = libguile-gnutls-static.a $(GUILE_LDFLAGS) $(GNUTLS_LIBS)
+endif !ENABLE_SHARED +endif
+ +
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-I$(top_srcdir)/lib/includes \ -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"]) 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
+++ 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: .in.scm:
$(AM_V_GEN)$(MKDIR_P) "`dirname "$@"`" ; cat "$^" | \ $(AM_V_GEN)$(MKDIR_P) "`dirname "$@"`" ; cat "$^" | \
$(SED) -e's|[@]maybe_guileextensiondir[@]|$(maybe_guileextensiondir)|g' \ $(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\"))|" \ + $(scm_static_fixup) \
+ -e "s|(unless (getenv \"GNUTLS_GUILE_CROSS_COMPILING\")|(when (module-variable (current-module) 'protocol/ssl3)|" \
> "$@.tmp" > "$@.tmp"
$(AM_V_at)mv "$@.tmp" "$@" $(AM_V_at)mv "$@.tmp" "$@"
@@ -56,6 +58,7 @@ @@ -56,6 +65,7 @@
if HAVE_GUILD if HAVE_GUILD
@ -32,7 +42,7 @@ Do not patch Scheme sources; rewrite generated gnutls.scm at build time.
guilesiteccachesubdir = $(guilesiteccachedir)/gnutls guilesiteccachesubdir = $(guilesiteccachedir)/gnutls
nodist_guilesiteccache_DATA = modules/gnutls.go nodist_guilesiteccache_DATA = modules/gnutls.go
nodist_guilesiteccachesub_DATA = modules/gnutls/extra.go nodist_guilesiteccachesub_DATA = modules/gnutls/extra.go
@@ -94,6 +97,7 @@ @@ -94,6 +104,7 @@
-o "$@" "$<" >&$$out -o "$@" "$<" >&$$out
SUFFIXES = .go SUFFIXES = .go