Mercurial > emacs
annotate src/m/amdx86-64.h @ 108145:947dd776616f
Move test for 64-bit kernel with 32-bit userland to configure.
See discussion in bug#5655.
* configure.in (machine, canonical): On amdx86-64, check for a 32-bit
userland and maybe change values to i386 (move test from s/amdx86-64.h).
* src/m/amdx86-64.h [i386]: Move this test to configure.in.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 27 Apr 2010 23:43:38 -0700 |
parents | 13415f222ad9 |
children | 000b400531eb |
rev | line source |
---|---|
45667 | 1 /* machine description file for AMD x86-64. |
106815 | 2 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 |
79755 | 3 Free Software Foundation, Inc. |
45667 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
94714
7e5b32f86a4c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87809
diff
changeset
|
7 GNU Emacs is free software: you can redistribute it and/or modify |
45667 | 8 it under the terms of the GNU General Public License as published by |
94714
7e5b32f86a4c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87809
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
7e5b32f86a4c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87809
diff
changeset
|
10 (at your option) any later version. |
45667 | 11 |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
94714
7e5b32f86a4c
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87809
diff
changeset
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
45667 | 19 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
45667
diff
changeset
|
20 /* The following line tells the configuration script what sort of |
45667 | 21 operating system this machine is likely to run. |
22 USUAL-OPSYS="linux" */ | |
23 | |
24 #define BITS_PER_LONG 64 | |
25 #define BITS_PER_EMACS_INT 64 | |
26 | |
78499 | 27 /* Define WORDS_BIG_ENDIAN if lowest-numbered byte in a word |
45667 | 28 is the most significant byte. */ |
29 | |
30 #undef WORDS_BIG_ENDIAN | |
31 | |
32 /* Now define a symbol for the cpu type, if your compiler | |
33 does not define it automatically: | |
34 Ones defined so far include vax, m68000, ns16000, pyramid, | |
35 orion, tahoe, APOLLO and many others */ | |
36 /* __x86_64 defined automatically. */ | |
37 | |
38 /* Define the type to use. */ | |
39 #define EMACS_INT long | |
40 #define EMACS_UINT unsigned long | |
41 | |
42 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | |
43 the 24-bit bit field into an int. In other words, if bit fields | |
44 are always unsigned. | |
45 | |
96602 | 46 This flag only matters if you use USE_LISP_UNION_TYPE. */ |
45667 | 47 |
48 #define EXPLICIT_SIGN_EXTEND | |
49 | |
50 /* Data type of load average, as read out of kmem. */ | |
51 | |
52 #define LOAD_AVE_TYPE long | |
53 | |
54 /* Convert that into an integer that is 100 for a load average of 1.0 */ | |
55 | |
56 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) | |
57 | |
58 /* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ | |
53092
4fb1e95248e2
(XPNTR): Don't redefine.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
52999
diff
changeset
|
59 #undef DATA_SEG_BITS |
45667 | 60 |
67808 | 61 |
108125 | 62 /* For GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__, things are set |
63 correctly in s/gnu-linux.h, netbsd.h, darwin.h. */ | |
64 #ifdef SOLARIS2 | |
74490
7bb7864abd11
Add support for Solaris 10 on x86-64.
Chong Yidong <cyd@stupidchicken.com>
parents:
74210
diff
changeset
|
65 #undef START_FILES |
7bb7864abd11
Add support for Solaris 10 on x86-64.
Chong Yidong <cyd@stupidchicken.com>
parents:
74210
diff
changeset
|
66 #undef LIB_STANDARD |
108125 | 67 #elif defined (__FreeBSD__) || (defined (DARWIN_OS) && !defined (__APPLE__)) |
68 /* On FreeBSD, the libraries for binaries native to the build host's | |
108109
473b75d8b120
Minor simplications for src/m/amdx86-64.h.
Glenn Morris <rgm@gnu.org>
parents:
108098
diff
changeset
|
69 architecture are installed under /usr/lib, and the ones that need |
473b75d8b120
Minor simplications for src/m/amdx86-64.h.
Glenn Morris <rgm@gnu.org>
parents:
108098
diff
changeset
|
70 special paths are 32-bit compatibility libraries (installed under |
473b75d8b120
Minor simplications for src/m/amdx86-64.h.
Glenn Morris <rgm@gnu.org>
parents:
108098
diff
changeset
|
71 /usr/lib32). So to build a native binary of Emacs on FreeBSD/amd64 |
108125 | 72 we can just point to /usr/lib (the default $CRT_DIR). */ |
108109
473b75d8b120
Minor simplications for src/m/amdx86-64.h.
Glenn Morris <rgm@gnu.org>
parents:
108098
diff
changeset
|
73 #undef START_FILES |
473b75d8b120
Minor simplications for src/m/amdx86-64.h.
Glenn Morris <rgm@gnu.org>
parents:
108098
diff
changeset
|
74 #define START_FILES pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o |
67808 | 75 /* The duplicate -lgcc is intentional in the definition of LIB_STANDARD. |
76 The reason is that some functions in libgcc.a call functions from libc.a, | |
77 and some libc.a functions need functions from libgcc.a. Since most | |
78 versions of ld are one-pass linkers, we need to mention -lgcc twice, | |
79 or else we risk getting unresolved externals. */ | |
45667 | 80 #undef LIB_STANDARD |
108098
9d6e94fa5028
Accidentally omitted from previous commit.
Glenn Morris <rgm@gnu.org>
parents:
106815
diff
changeset
|
81 #define LIB_STANDARD -lgcc -lc -lgcc $(CRT_DIR)/crtn.o |
52401 | 82 |
108125 | 83 #endif /* SOLARIS2 */ |
67808 | 84 |
52401 | 85 /* arch-tag: 8a5e001d-e12e-4692-a3a6-0b15ba271c6e |
86 (do not change this comment) */ |