[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
32/61: gnu: boost: Fix cross-compilation.
From: |
guix-commits |
Subject: |
32/61: gnu: boost: Fix cross-compilation. |
Date: |
Wed, 21 Aug 2019 04:24:53 -0400 (EDT) |
mothacehe pushed a commit to branch wip-cross-system
in repository guix.
commit d7718f767794246b268001f7e63dfcb02b02c838
Author: Mathieu Othacehe <address@hidden>
Date: Mon Jul 8 13:08:01 2019 +0200
gnu: boost: Fix cross-compilation.
* gnu/packages/patches/boost-dumpversion.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/boost.scm (boost)[source]: Apply it,
[arguments]: pass cross-compilation mandatory
flags and fill a user-config.jam file pointing to cross-compiler.
---
gnu/local.mk | 1 +
gnu/packages/boost.scm | 28 +++++++++++++++++++++++++++-
gnu/packages/patches/boost-dumpversion.patch | 24 ++++++++++++++++++++++++
3 files changed, 52 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 74f09ba..a45a1a0 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -708,6 +708,7 @@ dist_patch_DATA =
\
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blender-2.79-newer-ffmpeg.patch \
%D%/packages/patches/blender-2.79-python-3.7-fix.patch \
+ %D%/packages/patches/boost-dumpversion.patch \
%D%/packages/patches/byobu-writable-status.patch \
%D%/packages/patches/calibre-no-updates-dialog.patch \
%D%/packages/patches/calibre-remove-test-bs4.patch \
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index a2253a9..536a4be 100644
--- a/gnu/packages/boost.scm
+++ b/gnu/packages/boost.scm
@@ -10,6 +10,7 @@
;;; Copyright © 2018, 2019 Ricardo Wurmus <address@hidden>
;;; Copyright © 2018 Maxim Cournoyer <address@hidden>
;;; Copyright © 2018 Efraim Flashner <address@hidden>
+;;; Copyright © 2019 Mathieu Othacehe <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,6 +55,8 @@
(string-append
"https://dl.bintray.com/boostorg/release/"
version "/source/boost_"
version-with-underscores
".tar.bz2"))))
+ (patches
+ (search-patches "boost-dumpversion.patch"))
(sha256
(base32
"0y47nc7w0arwgj4x1phadxbvl7wyfcgknbz5kv8lzpl98wsyh2j3"))))
@@ -76,7 +79,22 @@
;; Set the RUNPATH to $libdir so that the libs find each other.
(string-append "linkflags=-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib"))
+ (assoc-ref %outputs "out") "/lib")
+ ,@(if (%current-target-system)
+ `("--user-config=user-config.jam"
+ "binary-format=elf"
+ "target-os=linux"
+ ,@(cond
+ ((string-prefix? "armhf" (%current-target-system))
+ '("abi=aapcs"
+ "address-model=32"
+ "architecture=arm"))
+ ((string-prefix? "aarch64" (%current-target-system))
+ '("abi=aapcs"
+ "address-model=64"
+ "architecture=arm"))
+ (else '())))
+ '()))
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
@@ -94,6 +112,14 @@
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
+ ,@(if (%current-target-system)
+ `((call-with-output-file "user-config.jam"
+ (lambda (port)
+ (format port
+ "using gcc : cross : ~a-c++ ;"
+ ,(%current-target-system)))))
+ '())
+
(invoke "./bootstrap.sh"
(string-append "--prefix=" out)
;; Auto-detection looks for ICU only in traditional
diff --git a/gnu/packages/patches/boost-dumpversion.patch
b/gnu/packages/patches/boost-dumpversion.patch
new file mode 100644
index 0000000..7df779c
--- /dev/null
+++ b/gnu/packages/patches/boost-dumpversion.patch
@@ -0,0 +1,24 @@
+This issue is described here: https://github.com/openwrt/packages/pull/8685
+and has not been solved as of 1.70.0 release.
+
+--- a/tools/build/src/tools/common.jam
++++ b/tools/build/src/tools/common.jam
+@@ -973,18 +973,6 @@
+ }
+ }
+
+- # From GCC 5, versioning changes and minor becomes patch
+- if $(tag) = gcc && [ numbers.less 4 $(version[1]) ]
+- {
+- version = $(version[1]) ;
+- }
+-
+- # Ditto, from Clang 4
+- if ( $(tag) = clang || $(tag) = clangw ) && [ numbers.less 3
$(version[1]) ]
+- {
+- version = $(version[1]) ;
+- }
+-
+ # On intel, version is not added, because it does not matter and it is the
+ # version of vc used as backend that matters. Ideally, we should encode
the
+ # backend version but that would break compatibility with V1.
- 34/61: gnu: lvm2: Fix cross-compilation., (continued)
- 34/61: gnu: lvm2: Fix cross-compilation., guix-commits, 2019/08/21
- 19/61: gnu: indent: Fix aarch64 cross-compilation., guix-commits, 2019/08/21
- 27/61: gnu: pkg-config: Fix cross-compilation., guix-commits, 2019/08/21
- 28/61: gnu: mkfontdir: Fix aarch64 cross-compilation., guix-commits, 2019/08/21
- 31/61: gnu: glibc-utf8-locales: Fix cross-compilation., guix-commits, 2019/08/21
- 40/61: gnu: procps: Fix cross-compilation., guix-commits, 2019/08/21
- 39/61: gnu: make-linux-libre: Fix cross-compilation., guix-commits, 2019/08/21
- 16/61: gnu: groff: Fix cross compilation., guix-commits, 2019/08/21
- 24/61: gnu: xmlto: Fix cross-compilation., guix-commits, 2019/08/21
- 26/61: gnu: tcsh: Fix cross-compilation., guix-commits, 2019/08/21
- 32/61: gnu: boost: Fix cross-compilation.,
guix-commits <=
- 30/61: gnu: icu4c: Fix cross-compilation., guix-commits, 2019/08/21
- 41/61: gnu: doxygen: Fix cross-compilation., guix-commits, 2019/08/21
- 42/61: gnu: guile-sqlite3: Fix cross-compilation., guix-commits, 2019/08/21
- 48/61: gnu: guile-xcb: Fix cross-compilation., guix-commits, 2019/08/21
- 51/61: gnu: console-setup: Fix cross-compilation., guix-commits, 2019/08/21
- 53/61: gnu: grub: Fix cross-compilation., guix-commits, 2019/08/21
- 43/61: gnu: guile-gcrypt: Fix cross-compilation., guix-commits, 2019/08/21
- 56/61: gexp: Use cross extensions when cross-compiling., guix-commits, 2019/08/21
- 59/61: system: vm: Add arm64 support., guix-commits, 2019/08/21
- 61/61: scripts: system: Add --target option., guix-commits, 2019/08/21