all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#50770] [PATCH core-updates-frozen] Cross-compile more (indirect) GTK+ dependencies
@ 2021-09-23 23:22 Maxime Devos
  2021-09-27 18:38 ` bug#50770: " Mathieu Othacehe
  0 siblings, 1 reply; 2+ messages in thread
From: Maxime Devos @ 2021-09-23 23:22 UTC (permalink / raw)
  To: 50770


[-- Attachment #1.1: Type: text/plain, Size: 275 bytes --]

User: guix
Usertags: cross-compilation

Hi guix,

This small patch series fixes a few easy-to-fix cross-compilation failures
of a few (indirect) dependencies of gtk+.  The first patch can also
be found at <https://issues.guix.gnu.org/50201#69>.

Greetings,
Maxime

[-- Attachment #1.2: 0001-gnu-pkg-config-Fix-typo-in-search-paths.patch --]
[-- Type: text/x-patch, Size: 990 bytes --]

From 732b0b84217ab5fd5bb74018f12a8f774b61b828 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 12:33:01 +0200
Subject: [PATCH 1/6] gnu: pkg-config: Fix typo in search paths.

* gnu/packages/pkg-config.scm
  (pkg-config-for-build)[native-search-paths]: Use "PKG_CONFIG_PATH_FOR_BUILD"
  instead of "PKG_CONFIG_PATH".
---
 gnu/packages/pkg-config.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 2b4173a7db..dd0d18ae36 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -166,5 +166,5 @@ exec ~a \"$@\""
      (map (lambda (original)
             (search-path-specification
              (inherit original)
-             (variable "PKG_CONFIG_FOR_BUILD")))
+             (variable "PKG_CONFIG_PATH_FOR_BUILD")))
           (package-native-search-paths %pkg-config)))))

base-commit: 5b674fe5c317425405075c0deab222cbaed80d83
-- 
2.33.0


[-- Attachment #1.3: 0002-gnu-llvm-Let-it-cross-compile.patch --]
[-- Type: text/x-patch, Size: 3415 bytes --]

From fd922e259d430ed5617a541ea2d4f5f76eb1c1c0 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 23:08:25 +0200
Subject: [PATCH 2/6] gnu: llvm: Let it cross-compile.

The derivation when compiling natively remains the same,
so this doesn't cause any rebuilds.

* gnu/packages/llvm.scm (llvm-12)[arguments]<#:configure-flags>: Set
  LLVM_TABLEGEN, LLVM_DEFAULT_TARGET_TRIPLE, LLVM_TARGET_ARCH and
  LLVM_TARGETS_TO_BUILD when cross-compiling.
---
 gnu/packages/llvm.scm | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 7cfa02ec99..3d62965cb8 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -17,6 +17,7 @@
 ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
 ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
 ;;;
@@ -39,6 +40,7 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix git-download)
   #:use-module (guix memoization)
   #:use-module (guix utils)
@@ -498,13 +500,30 @@ output), and Binutils.")
     (propagated-inputs
      `(("zlib" ,zlib)))                 ;to use output from llvm-config
     (arguments
-     `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
-                           "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
-                           "-DBUILD_SHARED_LIBS:BOOL=TRUE"
-                           "-DLLVM_ENABLE_FFI:BOOL=TRUE"
-                           "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
-                           "-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
-
+     ;; TODO(core-updates): Unconditionally use quasiquote
+     `(#:configure-flags
+       ,#~(#$(if (%current-target-system)
+                 #~quasiquote
+                 #~quote)
+           ;; These options are required for cross-compiling LLVM according to
+           ;; https://llvm.org/docs/HowToCrossCompileLLVM.html.
+           (#$@(if (%current-target-system)
+                   #~(,(string-append "-DLLVM_TABLEGEN="
+                                      #+(file-append this-package
+                                                     "/bin/llvm-tblgen"))
+                      #$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
+                                       (%current-target-system))
+                      #$(string-append "-DLLVM_TARGET_ARCH="
+                                       (system->llvm-target))
+                      #$(string-append "-DLLVM_TARGETS_TO_BUILD="
+                                       (system->llvm-target)))
+                   #~())
+            "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
+            "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
+            "-DBUILD_SHARED_LIBS:BOOL=TRUE"
+            "-DLLVM_ENABLE_FFI:BOOL=TRUE"
+            "-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
+            "-DLLVM_INSTALL_UTILS=ON")) ; Needed for rustc.
        ;; Don't use '-g' during the build, to save space.
        #:build-type "Release"
        #:phases
-- 
2.33.0


[-- Attachment #1.4: 0003-gnu-xev-Pass-disable-malloc0returnsnull-when-cross-c.patch --]
[-- Type: text/x-patch, Size: 975 bytes --]

From dd6654f5924f329f126e8e1df0e932c376c0983a Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 23:47:17 +0200
Subject: [PATCH 3/6] gnu: xev: Pass --disable-malloc0returnsnull when
 cross-compiling.

This fixes a configure error when cross-compilation and doesn't
cause any rebuilds.

* gnu/packages/xorg.scm (xev)[arguments]<#:configure-flags>:
  Add malloc0flags.
---
 gnu/packages/xorg.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 235ff184f9..f3e9d93ba7 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -2441,6 +2441,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
           (base32
             "1ql592pdhddhkipkrsxn929y9l2nn02a5fh2z3dx47kmzs5y006p"))))
     (build-system gnu-build-system)
+    (arguments `(#:configure-flags ',(malloc0-flags)))
     (inputs
       `(("libxrender" ,libxrender)
         ("libxrandr" ,libxrandr)
-- 
2.33.0


[-- Attachment #1.5: 0004-gnu-libxv-Pass-disable-malloc0returnsnull-when-cross.patch --]
[-- Type: text/x-patch, Size: 1041 bytes --]

From 89d148355a1380a3365bac4d1ed8e11248781e35 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 23:49:18 +0200
Subject: [PATCH 4/6] gnu: libxv: Pass --disable-malloc0returnsnull when
 cross-compiling.

This fixes a configure error when cross-compilation and doesn't
cause any rebuilds.

* gnu/packages/xorg.scm (libxv)[arguments]<#:configure-flags>:
  Add malloc0flags.
---
 gnu/packages/xorg.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index f3e9d93ba7..f53962d618 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -4959,7 +4959,7 @@ protocol and arbitrary X extension protocol.")
             "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags '(,@(malloc0-flags) "--disable-static")))
     (propagated-inputs
      `(("xorgproto" ,xorgproto)))
     (inputs
-- 
2.33.0


[-- Attachment #1.6: 0005-gnu-libxvmc-Pass-disable-malloc0returnsnull-when-cro.patch --]
[-- Type: text/x-patch, Size: 1045 bytes --]

From 79d8fd6f4877eed6987c15df7dbdfe8b7ef4d4bc Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 23:49:42 +0200
Subject: [PATCH 5/6] gnu: libxvmc: Pass --disable-malloc0returnsnull when
 cross-compiling.

This fixes a configure error when cross-compilation and doesn't
cause any rebuilds.

* gnu/packages/xorg.scm (libxvmc)[arguments]<#:configure-flags>:
  Add malloc0flags.
---
 gnu/packages/xorg.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index f53962d618..92706c0240 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5272,7 +5272,7 @@ new API's in libXft, or the legacy API's in libX11.")
             "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags '(,@(malloc0-flags) "--disable-static")))
     (propagated-inputs
       `(("libxv" ,libxv)))
     (inputs
-- 
2.33.0


[-- Attachment #1.7: 0006-gnu-gusb-Don-t-build-introspection-data-when-cross-c.patch --]
[-- Type: text/x-patch, Size: 1334 bytes --]

From b68db7b327b4c0f372efbb7fb39791230adb54c9 Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Thu, 23 Sep 2021 23:50:28 +0200
Subject: [PATCH 6/6] gnu: gusb: Don't build introspection data when
 cross-compiling.

This fixes a configure error when cross-compilation and doesn't
cause any rebuilds.

* gnu/packages/gnome.scm (gusb)[arguments]<#:configure-flags>:
  Set 'introspection' and 'vapi' to false.
---
 gnu/packages/gnome.scm | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 497713cddc..47eb552603 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -6573,7 +6573,14 @@ DAV, and others.")
      `(("glib" ,glib)
        ("libusb" ,libusb)))
     (arguments
-     `(#:tests? #f)) ;libusb fails to initialize.  Wonder what that is.
+     `(#:tests? #f ;libusb fails to initialize.  Wonder what that is.
+       #:configure-flags
+       ,(if (%current-target-system)
+            ;; Introspection data cannot currently be cross-compiled.
+            ''("-Dintrospection=false"
+               ;; Requires introspection data.
+               "-Dvapi=false")
+            ''())))
     (home-page "https://github.com/hughsie/libgusb")
     (synopsis "GLib binding for libusb1")
     (description
-- 
2.33.0


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-09-27 18:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-09-23 23:22 [bug#50770] [PATCH core-updates-frozen] Cross-compile more (indirect) GTK+ dependencies Maxime Devos
2021-09-27 18:38 ` bug#50770: " Mathieu Othacehe

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.