File: x32.patch

package info (click to toggle)
erlang 1%3A28.0.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 234,572 kB
  • sloc: erlang: 1,681,495; ansic: 436,053; cpp: 178,142; xml: 82,160; makefile: 15,053; sh: 14,570; lisp: 9,850; java: 8,603; asm: 6,829; perl: 5,874; python: 5,482; sed: 72
file content (25 lines) | stat: -rw-r--r-- 909 bytes parent folder | download
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
@@ -192,7 +192,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,
@@ -219,7 +219,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