[gnutls-help] [PATCH guile-gnutls] maint: Fix MinGW cross-build by using alloca from gnulib.

Simon Josefsson simon at josefsson.org
Fri May 16 18:31:58 CEST 2025


Thanks!  Is there any simple way to test your usage mode in CI?  I
looked into getting a MinGW build environment suitable for guile-gnutls
up but didn't have the required amount of patience to get all
dependencies in a usable form...  are there any supported container
images with a MinGW environment available?

I think there were some resistance to increase gnulib usage before, but
maybe this increase is possible to justify...

/Simon

Janneke Nieuwenhuizen <janneke at gnu.org> writes:

> [resend b/o reject; removed CC: guile-user at gnu.org]
> Hi,
>
> Attached is a patch to include the gnulib's alloca-opt module to support
> cross-building to MinGW.  As guile-websocket-0.2 added a dependency on
> guile-gnutls, it's nice to have guile-gnutls.
>
> For gnutls I'm using a gnutls-minimal, attached as tls.scm.
>
> Greetings,
> Janneke
>
>>From 5541ba021e31e418a7b345996ada481505074f1c Mon Sep 17 00:00:00 2001
> From: Janneke Nieuwenhuizen <janneke at gnu.org>
> Date: Fri, 16 May 2025 10:47:18 +0200
> Subject: [PATCH] maint: Fix MinGW cross-build by using alloca from gnulib.
>
> ---
>  .gitignore            | 9 +++++++++
>  Makefile.am           | 6 +++---
>  bootstrap             | 3 +--
>  configure.ac          | 5 ++++-
>  guile/src/Makefile.am | 3 ++-
>  5 files changed, 19 insertions(+), 7 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 7a068b4..716b07b 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -51,9 +51,18 @@
>  /guile/tests/*.trs
>  /lib
>  /libtool
> +/m4/00gnulib.m4
> +/m4/alloca.m4
> +/m4/gnulib-cache.m4
> +/m4/gnulib-common.m4
> +/m4/gnulib-comp.m4
> +/m4/gnulib-tool.m4
> +/m4/init-package-version.m4
>  /m4/libtool.m4
>  /m4/ltoptions.m4
>  /m4/ltsugar.m4
>  /m4/ltversion.m4
>  /m4/lt~obsolete.m4
> +/m4/zzgnulib.m4
> +/gl
>  /stamp-h1
> diff --git a/Makefile.am b/Makefile.am
> index 43c5de7..6a39f24 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -1,5 +1,5 @@
>  ## Process this file with automake to produce Makefile.in
> -# Copyright (C) 2007-2023 Free Software Foundation, Inc.
> +# Copyright (C) 2007-2025 Free Software Foundation, Inc.
>  #
>  # Author: Ludovic Courtès
>  #
> @@ -23,9 +23,9 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
>  	--with-guile-site-ccache-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/site-ccache' \
>  	--with-guile-extension-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/extensions'
>  
> -SUBDIRS = guile doc
> +SUBDIRS = gl guile doc
>  
> -EXTRA_DIST = cfg.mk CONTRIBUTING.md
> +EXTRA_DIST = cfg.mk CONTRIBUTING.md m4/gnulib-cache.m4
>  
>  # git-version-gen
>  EXTRA_DIST += $(top_srcdir)/.version
> diff --git a/bootstrap b/bootstrap
> index 99d5d29..0adf250 100755
> --- a/bootstrap
> +++ b/bootstrap
> @@ -1,8 +1,7 @@
>  #! /bin/sh
>  
>  if test -x gnulib/gnulib-tool; then
> -    gnulib/gnulib-tool --no-changelog --aux-dir=build-aux --doc-base=doc --lib=libgl --m4-base=m4/ --source-base=gl/ --tests-base=tests --local-dir=gl --no-vc-files --libtool --import git-version-gen havelib gitlog-to-changelog readme-release update-copyright version-stamp
> -    rm -fv gl/* m4/00gnulib.m4 m4/gnulib-common.m4 m4/zzgnulib.m4 m4/gnulib-cache.m4  m4/gnulib-comp.m4  m4/gnulib-tool.m4 m4/init-package-version.m4
> +    gnulib/gnulib-tool --no-changelog --aux-dir=build-aux --doc-base=doc --lib=libgl --m4-base=m4/ --source-base=gl/ --tests-base=tests --local-dir=gl --no-vc-files --libtool --import git-version-gen havelib gitlog-to-changelog readme-release update-copyright version-stamp alloca-opt
>  fi
>  
>  autoreconf -vif
> diff --git a/configure.ac b/configure.ac
> index 16e793c..8f7d3db 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1,5 +1,5 @@
>  dnl Process this file with autoconf to produce a configure script.
> -# Copyright (C) 2000-2023 Free Software Foundation, Inc.
> +# Copyright (C) 2000-2025 Free Software Foundation, Inc.
>  #
>  # Author: Ludovic Courtès, Simon Josefsson, Nikos Mavrogiannopoulos
>  #
> @@ -35,6 +35,8 @@ AC_CONFIG_HEADERS([config.h])
>  
>  dnl Checks for programs.
>  AC_PROG_CC
> +gl_EARLY
> +gl_INIT
>  AC_PROG_CPP
>  AM_PROG_AR
>  LT_INIT([disable-static])
> @@ -522,6 +524,7 @@ AC_CONFIG_FILES([
>    Makefile
>    doc/Makefile
>    doc/abs-top-srcdir.texi
> +  gl/Makefile
>    guile/Makefile
>    guile/src/Makefile
>  ])
> diff --git a/guile/src/Makefile.am b/guile/src/Makefile.am
> index e54d896..65e04b0 100644
> --- a/guile/src/Makefile.am
> +++ b/guile/src/Makefile.am
> @@ -1,5 +1,5 @@
>  # Guile-GnuTLS --- Guile bindings for GnuTLS.
> -# Copyright (C) 2007-2023 Free Software Foundation, Inc.
> +# Copyright (C) 2007-2025 Free Software Foundation, Inc.
>  #
>  # This file is part of Guile-GnuTLS.
>  #
> @@ -50,6 +50,7 @@ guile_gnutls_v_2_la_LIBADD = \
>  	$(GUILE_LDFLAGS)
>  
>  AM_CPPFLAGS = \
> +	-I$(top_srcdir)/gl \
>  	-I$(top_srcdir)/lib/includes \
>  	-I$(top_builddir)/lib/includes	\
>  	-I$(top_srcdir)/extra/includes \
> -- 
> 2.49.0
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1251 bytes
Desc: not available
URL: <https://lists.gnupg.org/pipermail/gnutls-help/attachments/20250516/4cc917b1/attachment.sig>


More information about the Gnutls-help mailing list