This follows commit 0b1f70d1a7, which inadvertently broke the build of Guix
for i586-pc-gnu (Hurd).
* gnu/packages/patches/disarchive-cross-compilation.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/backup.scm (disarchive)[source]: Apply it.
[phases]{delete-configure}: New phase.
[native-inputs]: Add guile-3.0 and guile-gcrypt.
		
	
			
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From dc0f8f8bf8608c39da32e3c8ca1484b766fc7452 Mon Sep 17 00:00:00 2001
 | 
						|
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
						|
Date: Mon, 17 May 2021 16:47:19 -0400
 | 
						|
Subject: [PATCH] build: Fix cross-compilation.
 | 
						|
 | 
						|
The cross-compilation issues corrected by this change were discovered
 | 
						|
when attempting to cross-compile disarchive for the i586-gnu target on
 | 
						|
GNU Guix.
 | 
						|
 | 
						|
* configure.ac [O_NOFOLLOW]: Rewrite test using AC_COMPUTE_INT, which
 | 
						|
is supported even when cross-compiling.
 | 
						|
(GUILD_TARGET_OPTION): New computed variable.
 | 
						|
* build-aux/guile.am ($(AM_V_GUILEC)GUILE_AUTO_COMPILE): Use it.
 | 
						|
---
 | 
						|
 build-aux/guile.am |  6 +++---
 | 
						|
 configure.ac       | 24 +++++++++++++++---------
 | 
						|
 2 files changed, 18 insertions(+), 12 deletions(-)
 | 
						|
 | 
						|
diff --git a/build-aux/guile.am b/build-aux/guile.am
 | 
						|
index bec04ea..7745125 100644
 | 
						|
--- a/build-aux/guile.am
 | 
						|
+++ b/build-aux/guile.am
 | 
						|
@@ -54,7 +54,7 @@ AM_V_GUILEC_0 = @echo "  GUILEC" $@;
 | 
						|
 SUFFIXES = .scm .go
 | 
						|
 
 | 
						|
 .scm.go:
 | 
						|
-	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0      \
 | 
						|
-	$(top_builddir)/pre-inst-env            \
 | 
						|
-	$(GUILD) compile $(GUILE_WARNINGS)      \
 | 
						|
+	$(AM_V_GUILEC)GUILE_AUTO_COMPILE=0                              \
 | 
						|
+	$(top_builddir)/pre-inst-env                                    \
 | 
						|
+	$(GUILD) compile $(GUILE_WARNINGS) $(GUILD_TARGET_OPTION)       \
 | 
						|
 	         -o "$@" "$<"
 | 
						|
diff --git a/configure.ac b/configure.ac
 | 
						|
index 99c5ac5..0cd0173 100644
 | 
						|
--- a/configure.ac
 | 
						|
+++ b/configure.ac
 | 
						|
@@ -39,21 +39,27 @@ AS_IF([test "x$GUILD" = "x"],
 | 
						|
     [AC_MSG_ERROR(m4_normalize([
 | 
						|
       'guild' binary not found; please check your Guile installation.]))])])
 | 
						|
 
 | 
						|
+dnl This argument is passed to guild; it ensures cross-compiling uses
 | 
						|
+dnl the right target.
 | 
						|
+if test -n "$host_alias"; then
 | 
						|
+   AC_SUBST([GUILD_TARGET_OPTION], [--target=$host_alias])
 | 
						|
+fi
 | 
						|
+
 | 
						|
 GUILE_MODULE_REQUIRED(gcrypt hash)
 | 
						|
 
 | 
						|
 dnl Guile defines a handful of values from <fcntl.h>, but it is
 | 
						|
 dnl missing O_NOFOLLOW.
 | 
						|
 AC_ARG_VAR([O_NOFOLLOW], [value to use for O_NOFOLLOW (cf. <fcntl.h>)])
 | 
						|
 AS_IF([test "x$O_NOFOLLOW" = "x"],
 | 
						|
-  [AC_MSG_CHECKING([the value of O_NOFOLLOW])
 | 
						|
-   AC_RUN_IFELSE([AC_LANG_PROGRAM([[
 | 
						|
-       #include <fcntl.h>
 | 
						|
-       #include <stdio.h>
 | 
						|
-     ]], [[
 | 
						|
-       printf("%d\n", O_NOFOLLOW)
 | 
						|
-     ]])],
 | 
						|
-     [O_NOFOLLOW=`./conftest$EXEEXT`],
 | 
						|
-     [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])])
 | 
						|
+  [AC_MSG_CHECKING([the value of O_NOFOLLOW])]
 | 
						|
+  [AC_COMPUTE_INT([O_NOFOLLOW],
 | 
						|
+      [O_NOFOLLOW],
 | 
						|
+      [[
 | 
						|
+        #include <fcntl.h>
 | 
						|
+        #include <stdio.h>
 | 
						|
+      ]],
 | 
						|
+      [AC_MSG_FAILURE([could find value for O_NOFOLLOW])])]
 | 
						|
+  [AC_MSG_RESULT([$O_NOFOLLOW])])
 | 
						|
 
 | 
						|
 AC_ARG_VAR([TAR], [tar utility])
 | 
						|
 AS_IF([test "x$TAR" = "x"], [AC_PATH_PROG([TAR], [tar])])
 | 
						|
-- 
 | 
						|
2.31.1
 | 
						|
 |