File: x32.patch

package info (click to toggle)
erlang 1%3A27.3.4.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 225,000 kB
  • sloc: erlang: 1,658,966; ansic: 405,769; cpp: 177,850; xml: 82,435; makefile: 15,031; sh: 14,401; lisp: 9,812; java: 8,603; asm: 6,541; perl: 5,836; python: 5,484; sed: 72
file content (25 lines) | stat: -rw-r--r-- 909 bytes parent folder | download | duplicates (2)
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
Author: Sergei Golovan
Description: This patch fixes FTBFS for x86_x32 architecture (x86_64
 with 32-bit integers, longs and pointers).
Last-Modified: Sun, 27 Dec 2015 12:39:07 +0300

--- a/erts/lib_src/pthread/ethread.c
+++ b/erts/lib_src/pthread/ethread.c
@@ -190,7 +190,7 @@
 void
 ethr_x86_cpuid__(int *eax, int *ebx, int *ecx, int *edx)
 {
-#if ETHR_SIZEOF_PTR == 4
+#if ETHR_SIZEOF_PTR == 4 && (!defined(__x86_64__) || !(__x86_64__ && __ILP32__))
     int have_cpuid;
     /*
      * If it is possible to toggle eflags bit 21,
@@ -217,7 +217,7 @@
 	return;
     }
 #endif
-#if ETHR_SIZEOF_PTR == 4 && defined(__PIC__) && __PIC__
+#if ETHR_SIZEOF_PTR == 4 && (!defined(__x86_64__) || !(__x86_64__ && __ILP32__)) && defined(__PIC__) && __PIC__
     /*
      * When position independent code is used in 32-bit mode, the B register
      * is used for storage of global offset table address, and we may not