yann@1
|
1 |
Message-ID: <000801c48f60$cec16630$9103a8c0@ULOC5012>
|
yann@1
|
2 |
From: "Michael Geiger" <mcgege@gmx.de>
|
yann@1
|
3 |
To: <dank@kegel.com>
|
yann@1
|
4 |
Subject: Patch for cross compiling s/390 kernel on linux host
|
yann@1
|
5 |
Date: Tue, 31 Aug 2004 15:45:41 +0200
|
yann@1
|
6 |
|
yann@1
|
7 |
Dear Dan,
|
yann@1
|
8 |
|
yann@1
|
9 |
I had big problems compiling a kernel for s/390 on my linux host - I tried
|
yann@1
|
10 |
different chains from crosstool-0.28-rc34 and finally succeded with
|
yann@1
|
11 |
gcc-3.3.4-glibc-2.3.2 after applying another patch to binutils-2.15
|
yann@1
|
12 |
(attached).
|
yann@1
|
13 |
All compilations of the different kernel versions I tried stopped with
|
yann@1
|
14 |
"Invalid .insn format" somewhere. I checked the recent cvs version of
|
yann@1
|
15 |
binutils and applied the latest diff to gas/config/tc-s390.c and that solved
|
yann@1
|
16 |
it.
|
yann@1
|
17 |
|
yann@1
|
18 |
Greetings
|
yann@1
|
19 |
|
yann@1
|
20 |
Michael Geiger
|
yann@1
|
21 |
|
yann@1
|
22 |
|
yann@1
|
23 |
diff -u -r1.39 -r1.40
|
yann@1
|
24 |
--- src/gas/config/tc-s390.c 2004/05/06 11:01:48 1.39
|
yann@1
|
25 |
+++ src/gas/config/tc-s390.c 2004/06/15 12:38:08 1.40
|
yann@1
|
26 |
@@ -1596,13 +1596,13 @@
|
yann@1
|
27 |
if (exp.X_op == O_constant)
|
yann@1
|
28 |
{
|
yann@1
|
29 |
if ( ( opformat->oplen == 6
|
yann@1
|
30 |
- && exp.X_add_number >= 0
|
yann@1
|
31 |
+ && (addressT) exp.X_add_number >= 0
|
yann@1
|
32 |
&& (addressT) exp.X_add_number < (1ULL << 48))
|
yann@1
|
33 |
|| ( opformat->oplen == 4
|
yann@1
|
34 |
- && exp.X_add_number >= 0
|
yann@1
|
35 |
+ && (addressT) exp.X_add_number >= 0
|
yann@1
|
36 |
&& (addressT) exp.X_add_number < (1ULL << 32))
|
yann@1
|
37 |
|| ( opformat->oplen == 2
|
yann@1
|
38 |
- && exp.X_add_number >= 0
|
yann@1
|
39 |
+ && (addressT) exp.X_add_number >= 0
|
yann@1
|
40 |
&& (addressT) exp.X_add_number < (1ULL << 16)))
|
yann@1
|
41 |
md_number_to_chars (insn, exp.X_add_number, opformat->oplen);
|
yann@1
|
42 |
else
|