1/* machine description file For the powerpc Macintosh. 2 Copyright (C) 1994, 2001, 2002, 2003, 2004, 3 2005, 2006, 2007 Free Software Foundation, Inc. 4 5This file is part of GNU Emacs. 6 7GNU Emacs is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by 9the Free Software Foundation; either version 2, or (at your option) 10any later version. 11 12GNU Emacs is distributed in the hope that it will be useful, 13but WITHOUT ANY WARRANTY; without even the implied warranty of 14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15GNU General Public License for more details. 16 17You should have received a copy of the GNU General Public License 18along with GNU Emacs; see the file COPYING. If not, write to 19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20Boston, MA 02110-1301, USA. */ 21 22/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word 23 is the most significant byte. */ 24 25#define WORDS_BIG_ENDIAN 26 27/* Define NO_ARG_ARRAY if you cannot take the address of the first of a 28 * group of arguments and treat it as an array of the arguments. */ 29 30#define NO_ARG_ARRAY 31 32/* Define WORD_MACHINE if addresses and such have 33 * to be corrected before they can be used as byte counts. */ 34 35/* #define WORD_MACHINE */ 36 37/* Now define a symbol for the cpu type, if your compiler 38 does not define it automatically: 39 Ones defined so far include vax, m68000, ns16000, pyramid, 40 orion, tahoe, APOLLO and many others */ 41 42/* Use type EMACS_INT rather than a union, to represent Lisp_Object */ 43/* This is desirable for most machines. */ 44 45#define NO_UNION_TYPE 46 47/* Data type of load average, as read out of kmem. */ 48 49#define LOAD_AVE_TYPE long 50 51/* Convert that into an integer that is 100 for a load average of 1.0 */ 52 53#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) 54 55/* Some really obscure 4.2-based systems (like Sequent DYNIX) 56 * do not support asynchronous I/O (using SIGIO) on sockets, 57 * even though it works fine on tty's. If you have one of 58 * these systems, define the following, and then use it in 59 * config.h (or elsewhere) to decide when (not) to use SIGIO. 60 * 61 * You'd think this would go in an operating-system description file, 62 * but since it only occurs on some, but not all, BSD systems, the 63 * reasonable place to select for it is in the machine description 64 * file. 65 */ 66 67/* #define NO_SOCK_SIGIO */ 68 69#define UNEXEC unexelf.o 70 71#define NO_TERMIO 72 73#if defined (LINUX) || defined (__NetBSD__) || defined (__OpenBSD__) 74# define TEXT_END ({ extern int _etext; &_etext; }) 75#endif 76 77#if (defined (__NetBSD__) || defined (__OpenBSD__)) && defined (__ELF__) 78#define HAVE_TEXT_START 79#endif 80 81/* NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says this is needed 82 For MkLinux/LinuxPPC. */ 83 84#ifdef LINUX 85#define LINKER $(CC) -nostdlib 86/* s/gnu-linux.h defines this to `-z nocombreloc' which does not work here 87 because prefix-args is not used. */ 88#undef LD_SWITCH_SYSTEM_TEMACS 89#define LD_SWITCH_MACHINE_TEMACS -Xlinker -znocombreloc 90#ifdef _ARCH_PPC64 91#undef START_FILES 92#define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o 93#undef LIB_STANDARD 94#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o 95#endif 96#endif 97 98#if 0 /* This breaks things on PPC GNU/Linux ecept for Yellowdog, 99 even with identical GCC, as, ld. Let's take it out until we 100 know what's really going on here. */ 101/* GCC 2.95 and newer on GNU/Linux PPC changed the load address to 102 0x10000000. */ 103#if defined __linux__ 104#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) 105#define DATA_SEG_BITS 0x10000000 106#endif 107#endif 108#endif /* 0 */ 109 110#ifdef _ARCH_PPC64 111#ifndef _LP64 112#define _LP64 113#endif 114#endif 115 116/* arch-tag: 41913e4e-e7d1-4023-aadb-210cc31712ed 117 (do not change this comment) */ 118