guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/19: gnu: python: Fix cross compilation.


From: guix-commits
Subject: 02/19: gnu: python: Fix cross compilation.
Date: Wed, 3 Jul 2019 10:47:19 -0400 (EDT)

mothacehe pushed a commit to branch wip-cross-system
in repository guix.

commit 7c2e508ed250132a64a4bb73e5266d3ec3855763
Author: Mathieu Othacehe <address@hidden>
Date:   Wed Mar 6 16:39:00 2019 +0100

    gnu: python: Fix cross compilation.
    
    * gnu/packages/python.scm (python-2.7)[arguments]: Add a configure flag to
    disable a check failing when cross-compiling. This is covered here:
    https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html,
    [native-inputs]: Add self and which when cross-compiling,
    (python-3.7)[arguments]: Refer to native python when cross-compiling.
---
 gnu/packages/python.scm | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index aa92e82..1a8cd39 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -38,7 +38,7 @@
 ;;; Copyright © 2017 Frederick M. Muriithi <address@hidden>
 ;;; Copyright © 2017, 2018 Adriano Peluso <address@hidden>
 ;;; Copyright © 2017 Ben Sturmfels <address@hidden>
-;;; Copyright © 2017, 2018 Mathieu Othacehe <address@hidden>
+;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <address@hidden>
 ;;; Copyright © 2017 José Miguel Sánchez García <address@hidden>
 ;;; Copyright © 2017 Roel Janssen <address@hidden>
 ;;; Copyright © 2017, 2018 Kei Kebreau <address@hidden>
@@ -76,6 +76,7 @@
 (define-module (gnu packages python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages dbm)
@@ -134,6 +135,13 @@
              "--with-system-ffi"                  ;build ctypes
              "--with-ensurepip=install"           ;install pip and setuptools
              "--enable-unicode=ucs4"
+             ;; Disable runtime check failing if cross-compiling, see:
+             ;; 
https://lists.yoctoproject.org/pipermail/poky/2013-June/008997.html
+             ,@(if (%current-target-system)
+                   '("ac_cv_buggy_getaddrinfo=no"
+                     "ac_cv_file__dev_ptmx=no"
+                     "ac_cv_file__dev_ptc=no")
+                   '())
              (string-append "LDFLAGS=-Wl,-rpath="
                             (assoc-ref %outputs "out") "/lib"))
 
@@ -246,7 +254,12 @@
        ("tcl" ,tcl)
        ("tk" ,tk)))                               ; for tkinter
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ;; When cross-compiling, a native version of Python itself is needed.
+       ,@(if (%current-target-system)
+             `(("self" ,this-package)
+               ("which" ,which))
+             '())))
     (native-search-paths
      (list (search-path-specification
             (variable "PYTHONPATH")
@@ -342,13 +355,16 @@ data types.")
                             (if (null? opt) "none" (car opt)))
                     (for-each (lambda (file)
                                 (apply invoke
-                                       `(,(string-append out "/bin/python3")
-                                         ,@opt
-                                         "-m" "compileall"
-                                         "-f" ; force rebuild
-                                         ;; Don't build lib2to3, because it's 
Python 2 code.
-                                         "-x" "lib2to3/.*"
-                                         ,file)))
+                                       `(,,(if (%current-target-system)
+                                               "python3"
+                                               '(string-append out
+                                                               "/bin/python3"))
+                                          ,@opt
+                                          "-m" "compileall"
+                                          "-f" ; force rebuild
+                                          ;; Don't build lib2to3, because it's 
Python 2 code.
+                                          "-x" "lib2to3/.*"
+                                          ,file)))
                               (find-files out "\\.py$")))
                   (list '() '("-O") '("-OO")))
                  #t)))))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]