GNU bug report logs -
#68133
[PATCH] gnu: glew: Fix cross-compiling.
Previous Next
Reported by: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
Date: Sat, 30 Dec 2023 04:55:01 UTC
Severity: normal
Tags: patch
Done: Mathieu Othacehe <othacehe <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 68133 in the body.
You can then email your comments to 68133 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Sat, 30 Dec 2023 04:55:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Sat, 30 Dec 2023 04:55:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
gnu/packages/gl.scm(glew):
[arguments]<#:make-flags>: when cross-compiling, use {cc,strip}-for-target.
Change-Id: I365f6635120a85359083beb88cb138f09a99fe33
---
gnu/packages/gl.scm | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 192b5e84e0..56a1def37a 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -690,7 +690,12 @@ (define-public glew
#t))))
(build-system gnu-build-system)
(arguments
- (list #:make-flags #~(list (string-append "GLEW_PREFIX=" #$output)
+ (list #:make-flags #~(list #$@(if (%current-target-system)
+ #~((string-append "CC=" #$(cc-for-target))
+ (string-append "LD=" #$(cc-for-target))
+ (string-append "STRIP=" #$(strip-for-target)))
+ #~())
+ (string-append "GLEW_PREFIX=" #$output)
(string-append "GLEW_DEST=" #$output))
#:phases
#~(modify-phases %standard-phases
base-commit: f76ca2b0e894c244d5011a32b30dee8fd874e322
--
2.41.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Wed, 03 Jan 2024 14:27:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 68133 <at> debbugs.gnu.org (full text, mbox):
Hello,
> gnu/packages/gl.scm(glew):
> [arguments]<#:make-flags>: when cross-compiling, use {cc,strip}-for-target.
When running:
./pre-inst-env guix build --target=aarch64-linux-gnu glew
I have the following error message:
--8<---------------cut here---------------start------------->8---
Run-time dependency libudev found: NO (tried pkgconfig and cmake)
../mesa-23.2.1/meson.build:1682:13: ERROR: Failed running '/gnu/store/fzmc9w4i1lyqi0v62w5jpdxi6h9cbnyh-llvm-for-mesa-15.0.7/bin/llvm-config', binary or interpreter not executable.
Possibly wrong architecture or the executable bit is not set.
A full log can be found at /tmp/guix-build-mesa-23.2.1.drv-0/build/meson-logs/meson-log.txt
error: in phase 'configure': uncaught exception:
--8<---------------cut here---------------end--------------->8---
Did I miss something?
Thanks,
Mathieu
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Thu, 04 Jan 2024 12:55:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 68133 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Mathieu Othacehe <othacehe <at> gnu.org> writes:
> Hello,
>
>> gnu/packages/gl.scm(glew):
>> [arguments]<#:make-flags>: when cross-compiling, use {cc,strip}-for-target.
>
> When running:
>
> ./pre-inst-env guix build --target=aarch64-linux-gnu glew
>
> I have the following error message:
>
> Run-time dependency libudev found: NO (tried pkgconfig and cmake)
>
> ../mesa-23.2.1/meson.build:1682:13: ERROR: Failed running '/gnu/store/fzmc9w4i1lyqi0v62w5jpdxi6h9cbnyh-llvm-for-mesa-15.0.7/bin/llvm-config', binary or interpreter not executable.
> Possibly wrong architecture or the executable bit is not set.
>
> A full log can be found at /tmp/guix-build-mesa-23.2.1.drv-0/build/meson-logs/meson-log.txt
> error: in phase 'configure': uncaught exception:
>
> Did I miss something?
i think because binfmt leak into build environment, so host's
llvm-config can executed.
please try this patch, use meson's cmake module to find llvm.
[0001-gnu-mesa-fix-cross-compiling.patch (text/x-patch, inline)]
From 015ac9468acefe959dea570fc1661bcbce6ebaf8 Mon Sep 17 00:00:00 2001
Message-ID: <015ac9468acefe959dea570fc1661bcbce6ebaf8.1704372069.git.zhengjunjie <at> iscas.ac.cn>
From: Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
Date: Thu, 4 Jan 2024 20:33:13 +0800
Subject: [PATCH] gnu: mesa: fix cross-compiling.
* gnu/packages/gl.scm(mesa)[native-inputs]: when cross-compile, add
cmake-minimal-cross.
[arguments]: adjust fix-cross-compiling to find llvm.
* gnu/packages/llvm.scm(llvm-for-mesa)
[arguments]<#:configure-flags>: When cross-compile, set
-DBUILD_SHARED_LIBS:BOOL=TRUE and -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE,
remove -DLLVM_LINK_LLVM_DYLIB.* .
<#:phases>: when cross-compile, remove delete-static-libraries phase.
Change-Id: If10dec7695e62604e080230e10f2b8d7167f660b
---
gnu/packages/gl.scm | 17 +++++++++++------
gnu/packages/llvm.scm | 28 +++++++++++++++++++---------
2 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index b0ee413acd..91fa8f642f 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -18,7 +18,7 @@
;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias <at> protonmail.com>
;;; Copyright © 2022 Petr Hodina <phodina <at> protonmail.com>
;;; Copyright © 2023 Kaelyn Takata <kaelyn.alexi <at> protonmail.com>
-;;; Copyright © 2023 Zheng Junjie <873216071 <at> qq.com>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071 <at> qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -62,6 +62,7 @@ (define-module (gnu packages gl)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
+ #:use-module (gnu packages cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
@@ -338,7 +339,8 @@ (define-public mesa
python-wrapper
(@ (gnu packages base) which)
(if (%current-target-system)
- (list pkg-config-for-build
+ (list cmake-minimal-cross
+ pkg-config-for-build
wayland
wayland-protocols)
'())))
@@ -415,10 +417,13 @@ (define-public mesa
#~(modify-phases %standard-phases
#$@(if (%current-target-system)
#~((add-after 'unpack 'fix-cross-compiling
- (lambda* (#:key inputs #:allow-other-keys)
- ;; It isn't a problem to use the host's llvm-config.
- (setenv "LLVM_CONFIG"
- (search-input-file inputs "/bin/llvm-config")))))
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ ;; when cross compile, we use cmake to find llvm, not llvm-config,
+ ;; because llvm-conifg cannot be executed
+ ;; see https://github.com/llvm/llvm-project/issues/58984
+ (setenv "CMAKE"
+ (search-input-file
+ native-inputs "/bin/cmake")))))
#~())
(add-after 'unpack 'disable-failing-test
(lambda _
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 6abd1a67d7..a3176c6dae 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -27,6 +27,7 @@
;;; Copyright © 2022 Clément Lassieur <clement <at> lassieur.org>
;;; Copyright © 2022 Zhu Zihao <all_but_last <at> 163.com>
;;; Copyright © 2023 Hilton Chain <hako <at> ultrarare.space>
+;;; Copyright © 2023, 2024 Zheng Junjie <873216071 <at> qq.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2169,20 +2170,29 @@ (define-public llvm-for-mesa
;; AMDGPU is needed by the vulkan drivers.
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target) ";AMDGPU")
+ #$@(if (%current-target-system)
+ '("-DBUILD_SHARED_LIBS:BOOL=TRUE"
+ "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE")
+ '())
;; Skipping tools and utils decreases the output by ~100 MiB.
"-DLLVM_BUILD_TOOLS=NO"
- (remove (cut string-match
- "-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*" <>)
+ (remove
+ (cut string-match
+ #$(if (%current-target-system)
+ "-DLLVM_(LINK_LLVM_DYLIB|TARGETS_TO_BUILD|INSTALL_UTILS).*"
+ "-DLLVM_(TARGETS_TO_BUILD|INSTALL_UTILS).*") <>)
#$cf)))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
- (add-after 'install 'delete-static-libraries
- ;; If these are just relocated then llvm-config can't find them.
- (lambda* (#:key outputs #:allow-other-keys)
- (for-each delete-file
- (find-files (string-append
- (assoc-ref outputs "out") "/lib")
- "\\.a$"))))
+ #$@(if (%current-target-system)
+ '()
+ #~((add-after 'install 'delete-static-libraries
+ ;; If these are just relocated then llvm-config can't find them.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (for-each delete-file
+ (find-files (string-append
+ (assoc-ref outputs "out") "/lib")
+ "\\.a$"))))))
;; llvm-config is how mesa and others find the various
;; libraries and headers they use.
(add-after 'install 'build-and-install-llvm-config
base-commit: 7b0863f07a113caef26fea13909bd97d250b629e
prerequisite-patch-id: b3a67130858eb3c97f43099cb3b2f7978d5f1a79
prerequisite-patch-id: 007807771d1614f2e42f5df56b7d1875b1966031
--
2.41.0
[Message part 3 (text/plain, inline)]
>
> Thanks,
>
> Mathieu
Reply sent
to
Mathieu Othacehe <othacehe <at> gnu.org>
:
You have taken responsibility.
(Tue, 09 Jan 2024 09:37:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Zheng Junjie <zhengjunjie <at> iscas.ac.cn>
:
bug acknowledged by developer.
(Tue, 09 Jan 2024 09:37:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 68133-done <at> debbugs.gnu.org (full text, mbox):
Hello,
> * gnu/packages/gl.scm(mesa)[native-inputs]: when cross-compile, add
> cmake-minimal-cross.
> [arguments]: adjust fix-cross-compiling to find llvm.
>
> * gnu/packages/llvm.scm(llvm-for-mesa)
> [arguments]<#:configure-flags>: When cross-compile, set
> -DBUILD_SHARED_LIBS:BOOL=TRUE and -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE,
> remove -DLLVM_LINK_LLVM_DYLIB.* .
> <#:phases>: when cross-compile, remove delete-static-libraries phase.
I amended the commit message and applied,
Thanks,
Mathieu
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Wed, 10 Jan 2024 12:25:01 GMT)
Full text and
rfc822 format available.
Message #19 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Mathieu Othacehe <othacehe <at> gnu.org> writes:
> Hello,
>
>> * gnu/packages/gl.scm(mesa)[native-inputs]: when cross-compile, add
>> cmake-minimal-cross.
>> [arguments]: adjust fix-cross-compiling to find llvm.
>>
>> * gnu/packages/llvm.scm(llvm-for-mesa)
>> [arguments]<#:configure-flags>: When cross-compile, set
>> -DBUILD_SHARED_LIBS:BOOL=TRUE and -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE,
>> remove -DLLVM_LINK_LLVM_DYLIB.* .
>> <#:phases>: when cross-compile, remove delete-static-libraries phase.
>
> I amended the commit message and applied,
>
> Thanks,
>
> Mathieu
after mesa-updates merge, mesa's meson.build use config-tool method to
find llvm, so cross compile break again, this patch fix it.
``` meson.build
1712| method : host_machine.system() == 'windows' ? 'auto' : 'config-tool',
```
[0001-gnu-mesa-fix-cross-compiling-again.patch (text/x-patch, attachment)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Wed, 10 Jan 2024 12:25:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Wed, 10 Jan 2024 14:31:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 68133 <at> debbugs.gnu.org (full text, mbox):
Hello,
> after mesa-updates merge, mesa's meson.build use config-tool method to
> find llvm, so cross compile break again, this patch fix it.
>
> ``` meson.build
> 1712| method : host_machine.system() == 'windows' ? 'auto' : 'config-tool',
> ```
Applied with an amended commit message,
Thanks,
Mathieu
Information forwarded
to
guix-patches <at> gnu.org
:
bug#68133
; Package
guix-patches
.
(Wed, 10 Jan 2024 14:32:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 08 Feb 2024 12:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 134 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.