1 |
commit: 7a0e31adf6af28adf3c8709e542ecf7039cb5942 |
2 |
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Dec 1 21:53:42 2016 +0000 |
4 |
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Dec 1 22:05:20 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a0e31ad |
7 |
|
8 |
dev-lang/mono: fix ABI_X86=32 build case for amd64 host, bug #600664 |
9 |
|
10 |
The patch passes flags to adjust target ABI |
11 |
of a multiarch assembler and linker. |
12 |
|
13 |
Reported-by: Ivan Dorna |
14 |
Reported-by: Toralf Förster |
15 |
Bug: https://github.com/gentoo/dotnet/issues/270 |
16 |
Bug: https://bugs.gentoo.org/600664 |
17 |
|
18 |
Package-Manager: portage-2.3.2 |
19 |
|
20 |
dev-lang/mono/files/mono-4.8.0.371-x86_32.patch | 27 +++++++++++++++++++++++++ |
21 |
dev-lang/mono/mono-4.8.0.371.ebuild | 5 ++++- |
22 |
2 files changed, 31 insertions(+), 1 deletion(-) |
23 |
|
24 |
diff --git a/dev-lang/mono/files/mono-4.8.0.371-x86_32.patch b/dev-lang/mono/files/mono-4.8.0.371-x86_32.patch |
25 |
new file mode 100644 |
26 |
index 00000000..063ea63 |
27 |
--- /dev/null |
28 |
+++ b/dev-lang/mono/files/mono-4.8.0.371-x86_32.patch |
29 |
@@ -0,0 +1,27 @@ |
30 |
+Native toolchain can default to different ABI (amd64 in bug case). |
31 |
+Set target to i386. |
32 |
+https://bugs.gentoo.org/600664 |
33 |
+diff --git a/mono/mini/aot-compiler.c b/mono/mini/aot-compiler.c |
34 |
+index a1c359f..beaaf76 100644 |
35 |
+--- a/mono/mini/aot-compiler.c |
36 |
++++ b/mono/mini/aot-compiler.c |
37 |
+@@ -9842,7 +9842,9 @@ compile_asm (MonoAotCompile *acfg) |
38 |
+ const char *tool_prefix = acfg->aot_opts.tool_prefix ? acfg->aot_opts.tool_prefix : ""; |
39 |
+ char *ld_flags = acfg->aot_opts.ld_flags ? acfg->aot_opts.ld_flags : g_strdup(""); |
40 |
+ |
41 |
+-#if defined(TARGET_AMD64) && !defined(TARGET_MACH) |
42 |
++#if defined(TARGET_X86) && !defined(TARGET_MACH) |
43 |
++#define AS_OPTIONS "--32" |
44 |
++#elif defined(TARGET_AMD64) && !defined(TARGET_MACH) |
45 |
+ #define AS_OPTIONS "--64" |
46 |
+ #elif defined(TARGET_POWERPC64) |
47 |
+ #define AS_OPTIONS "-a64 -mppc64" |
48 |
+@@ -9886,6 +9888,8 @@ compile_asm (MonoAotCompile *acfg) |
49 |
+ #define LD_OPTIONS "--shared" |
50 |
+ #elif defined(TARGET_POWERPC64) |
51 |
+ #define LD_OPTIONS "-m elf64ppc" |
52 |
++#elif defined(TARGET_X86) |
53 |
++#define LD_OPTIONS "-m elf_i386" |
54 |
+ #endif |
55 |
+ |
56 |
+ #ifndef LD_OPTIONS |
57 |
|
58 |
diff --git a/dev-lang/mono/mono-4.8.0.371.ebuild b/dev-lang/mono/mono-4.8.0.371.ebuild |
59 |
index 4a4e512..1995170 100644 |
60 |
--- a/dev-lang/mono/mono-4.8.0.371.ebuild |
61 |
+++ b/dev-lang/mono/mono-4.8.0.371.ebuild |
62 |
@@ -33,7 +33,10 @@ DEPEND="${COMMONDEPEND} |
63 |
!dev-lang/mono-basic |
64 |
" |
65 |
|
66 |
-PATCHES=("${FILESDIR}"/${PN}-4.8.0.371-makedev.patch) |
67 |
+PATCHES=( |
68 |
+ "${FILESDIR}"/${PN}-4.8.0.371-makedev.patch |
69 |
+ "${FILESDIR}"/${PN}-4.8.0.371-x86_32.patch |
70 |
+) |
71 |
|
72 |
S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)" |