summary refs log tree commit diff
path: root/gnu/packages/patches/racket-backport-8.6-cross-install.patch
blob: 2c4d8924ed5b0468a3da597e91ac988d2b1eb6be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
From fbe2094f56fb81c888076c781e90fb0abbc0cc07 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 30 Jul 2022 07:06:55 -0600
Subject: [PATCH 1/2] CS makefiles: fix Unix-style install for cross
 compilation

Closes #4377

(cherry picked from commit 053be470e7c5454cdf48e934f3254d2d916bbbc5)
---
 racket/src/cs/c/build.zuo | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/racket/src/cs/c/build.zuo b/racket/src/cs/c/build.zuo
index 8d3950bb27..d8b74c509d 100644
--- a/racket/src/cs/c/build.zuo
+++ b/racket/src/cs/c/build.zuo
@@ -1016,10 +1016,9 @@
   (define (setup)
     (call-with-dest-racket
      (lambda (bindir dest-racket)
-       (define copytree-racket (and cross? (config-bootstrap-racket)))
+       (define copytree-racket (and cross? (hash-ref (config-bootstrap-racket) 'racket)))
        (maybe-copytree config dest-racket copytree-racket at-dir)
-       (run-raco-setup config dest-racket
-                       (and cross? (hash-ref (config-bootstrap-racket) 'racket))
+       (run-raco-setup config dest-racket copytree-racket
                        ;; this can be redundant if it's also supplied via `SETUP_MACHINE_FLAGS`,
                        ;; but redundant should be ok:
                        (list "-MCR" (~a (at-dir "compiled") ":")
-- 
2.32.0


From 85802f4d515e310e657928707800ad709a676e2a Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Mon, 15 Aug 2022 10:37:01 +0800
Subject: [PATCH 2/2] configure: adjust cross-build assumption for a pb build

Don't assume a cross build for a pb target on a platform that's only
supported via pb.

(cherry picked from commit 70e484e885637c495be5481983dae2207fdd67bb)

(Edited to remove unrelated tweak to comments in
"racket/src/expander/expand/require+provide.rkt".)
---
 racket/src/cs/c/configure    | 15 +++++++++++----
 racket/src/cs/c/configure.ac | 15 +++++++++++----
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure
index 454d79e11a..7e0fa5600d 100755
--- a/racket/src/cs/c/configure
+++ b/racket/src/cs/c/configure
@@ -4679,6 +4679,11 @@ case "$MACH_HOST_CPU" in
     ;;
 esac
 
+if test "${MACH}" = "" ; then
+  default_mach_was_empty=yes
+else
+  default_mach_was_empty=no
+fi
 
 if test "${enable_mach}" != "" ; then
   MACH="${enable_mach}"
@@ -4701,13 +4706,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then
    exit 1
 fi
 
-# For a pb build where Racket is supplied, force cross-build
-# mode on the assumption that the host is not a pb build
-# (because it should be created with default configure options)
+# For a pb build where Racket is supplied and MACH was not originally
+# empty, force cross-build mode on the assumption that the host is not
+# a pb build (because it should be created with default configure options)
 if test "${enable_pb}" = "yes" ; then
   if test "${enable_racket}" != "" ; then
     if test "${enable_target}" = "" ; then
-      enable_target="${MACH}"
+      if test "${default_mach_was_empty}" = "no" ; then
+        enable_target="${MACH}"
+      fi
     fi
   fi
 fi
diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac
index 5bce979c92..734c1e8feb 100644
--- a/racket/src/cs/c/configure.ac
+++ b/racket/src/cs/c/configure.ac
@@ -415,6 +415,11 @@ case "$MACH_HOST_CPU" in
     ;;
 esac
 
+if test "${MACH}" = "" ; then
+  default_mach_was_empty=yes
+else
+  default_mach_was_empty=no
+fi
 
 if test "${enable_mach}" != "" ; then
   MACH="${enable_mach}"
@@ -437,13 +442,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then
    exit 1
 fi
 
-# For a pb build where Racket is supplied, force cross-build
-# mode on the assumption that the host is not a pb build
-# (because it should be created with default configure options)
+# For a pb build where Racket is supplied and MACH was not originally
+# empty, force cross-build mode on the assumption that the host is not
+# a pb build (because it should be created with default configure options)
 if test "${enable_pb}" = "yes" ; then
   if test "${enable_racket}" != "" ; then
     if test "${enable_target}" = "" ; then
-      enable_target="${MACH}"
+      if test "${default_mach_was_empty}" = "no" ; then
+        enable_target="${MACH}"
+      fi
     fi
   fi
 fi
-- 
2.32.0