From 0d7888acf0791d1260ebf3f37ec50ad1dfcf359e Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Tue, 24 Aug 2021 14:35:44 +0200 Subject: gnu: bdb: Fix cross-compilation build errors. * gnu/packages/dbm.scm (bdb-4.8)[arguments]<#:phases>{update-config.sub}: Update 'config.sub' when cross-compiling for 'powerpc64le' or 'aarch64'. --- gnu/packages/dbm.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages/dbm.scm') diff --git a/gnu/packages/dbm.scm b/gnu/packages/dbm.scm index ce84ef9eda..607e4aecf8 100644 --- a/gnu/packages/dbm.scm +++ b/gnu/packages/dbm.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Mark H Weaver ;;; Copyright © 2020 Jakub Kądziołka ;;; Copyright © 2021 Leo Le Bouter +;;; Copyright © 2021 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages dbm) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -57,6 +59,19 @@ (define-public bdb-4.8 #:disallowed-references ("doc") #:phases (modify-phases %standard-phases + ;; The configure script is too old to recognise aarch64 and + ;; powerpc64le as valid architectures. The trick below works + ;; for "--build", but not for "--host", so update config.sub. + ,@(if (and (%current-target-system) + (or (target-ppc64le? (%current-target-system)) + (target-aarch64? (%current-target-system)))) + `((add-after 'unpack 'update-config.sub + (lambda* (#:key native-inputs #:allow-other-keys) + (delete-file "dist/config.sub") + (symlink + (search-input-file native-inputs "/bin/config.sub") + "dist/config.sub")))) + '()) (replace 'configure (lambda* (#:key target outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -97,6 +112,12 @@ (define-public bdb-4.8 ;; of db_cxx.h into C++ files works; it leads to ;; HAVE_CXX_STDHEADERS being defined in db_cxx.h. "--enable-cxx"))))))) + (native-inputs + (if (and (%current-target-system) + (or (target-ppc64le? (%current-target-system)) + (target-aarch64? (%current-target-system)))) + `(("config" ,config)) ; for config.sub + '())) (synopsis "Berkeley database") (description "Berkeley DB is an embeddable database allowing developers the choice of -- cgit v1.2.3