1/* machine description file for Gould PowerNodes with UTX/32 2.0 and 2.1. 2 (See MACHINES for older versions.) 3 4* NOTE: If you are running a pre-release of UTX/32 2.1 you should #define 5* RELEASE2_1 in config.h. This may also be necessary with un-updated 6* official releases of 2.1 7 8 Copyright (C) 1986, 2002, 2003, 2004, 2005, 9 2006, 2007 Free Software Foundation, Inc. 10 11This file is part of GNU Emacs. 12 13GNU Emacs is free software; you can redistribute it and/or modify 14it under the terms of the GNU General Public License as published by 15the Free Software Foundation; either version 2, or (at your option) 16any later version. 17 18GNU Emacs is distributed in the hope that it will be useful, 19but WITHOUT ANY WARRANTY; without even the implied warranty of 20MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21GNU General Public License for more details. 22 23You should have received a copy of the GNU General Public License 24along with GNU Emacs; see the file COPYING. If not, write to 25the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 26Boston, MA 02110-1301, USA. */ 27 28 29/* The following line tells the configuration script what sort of 30 operating system this machine is likely to run. 31 USUAL-OPSYS="note" 32 33NOTE-START 34Gould Power Node (-machine=gould -opsystem=bsd4-2 or bsd4-3) 35(gould.h; s-bsd4-2.h or s-bsd4-3.h) 36 37 18.36 worked on versions 1.2 and 2.0 of the operating system. 38 39 On UTX/32 2.0, use -opsystem=bsd4-3 40 41 On UTX/32 1.2 and UTX/32S 1.0, use -opsystem=bsd4-2 and note that compiling 42 lib-src/sorted-doc tickles a compiler bug: remove the -g flag to cc in the 43 makefile. 44 45 UTX/32 1.3 has a bug in the bcopy library routine. Fix it by 46 #undef BSTRING in gould.h. 47 48 Version 19 incorporates support for releases 2.1 and later of UTX/32. 49 A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h. 50NOTE-END */ 51 52/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word 53 is the most significant byte. */ 54 55#define WORDS_BIG_ENDIAN 56 57/* Define NO_ARG_ARRAY if you cannot take the address of the first of a 58 * group of arguments and treat it as an array of the arguments. */ 59 60#define NO_ARG_ARRAY 61 62/* Define WORD_MACHINE if addresses and such have 63 * to be corrected before they can be used as byte counts. */ 64 65/* #define WORD_MACHINE */ 66 67/* Now define a symbol for the cpu type, if your compiler 68 does not define it automatically */ 69 70#ifndef GOULD 71#define GOULD 72#endif 73 74/* sel is an old preprocessor name on gould machines 75 - it is no longer needed and interferes with a variable in xmenu.c */ 76#undef sel 77 78/* Use type int rather than a union, to represent Lisp_Object */ 79/* This is desirable for most machines. */ 80 81#define NO_UNION_TYPE 82 83/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend 84 the 24-bit bit field into an int. In other words, if bit fields 85 are always unsigned. 86 87 If you use NO_UNION_TYPE, this flag does not matter. */ 88 89#define EXPLICIT_SIGN_EXTEND 90 91/* Data type of load average, as read out of kmem. */ 92 93#define LOAD_AVE_TYPE double 94 95/* Convert that into an integer that is 100 for a load average of 1.0 */ 96 97#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0) 98 99/* Define CANNOT_DUMP on machines where unexec does not work. 100 Then the function dump-emacs will not be defined 101 and temacs will do (load "loadup") automatically unless told otherwise. */ 102 103/* #define CANNOT_DUMP */ 104 105/* Define VIRT_ADDR_VARIES if the virtual addresses of 106 pure and impure space as loaded can vary, and even their 107 relative order cannot be relied on. 108 109 Otherwise Emacs assumes that text space precedes data space, 110 numerically. */ 111 112#define VIRT_ADDR_VARIES 113 114/* No need to extend the user stack. */ 115 116/* If this is a 2.1 system, COFF will be predefined by cpp. If it's */ 117/* pre-2.1 COFF won't be defined, which is as it should be. */ 118 119#ifdef COFF 120 121#define HEADER_INCL_IN_TEXT 122#define COFF_BSD_SYMBOLS 123 124/* Seems to be necessary with coff */ 125#define NO_REMAP 126 127#ifndef GOULD_NP1 128/* gould-np1.h includes this file */ 129/* keep the old value - don't skip over the headers */ 130#define KEEP_OLD_TEXT_SCNPTR 131#define KEEP_OLD_PADDR 132#ifndef RELEASE2_1 133#define ADJUST_TEXTBASE 134#endif /*RELEASE2_1*/ 135#endif /* GOULD_NP1 */ 136 137#ifdef IN_UNEXEC 138/* make Gould NP and PN COFF look like USG COFF */ 139/* PN COFF */ 140#define aouthdr old_exec 141/* PN COFF doesn't have a data_start or a_dtbase field in its */ 142/* optional header, so substitute a junk field */ 143#define a_dtbase a_ccvers 144/* Gould COFF */ 145#define magic a_magic 146#define tsize a_text 147#define dsize a_data 148#define bsize a_bss 149#define entry a_entry 150#define text_start a_txbase 151#define data_start a_dtbase 152#endif /* IN_UNEXEC */ 153 154/* Define how to search all pty names. 155 * This is for UTX 2.1 and greater on PN and all NP versions. It is only 156 * accident that this happens to correspond to the same versions of UTX 157 * as COFF does, but we'll take advantage of that here. 158 */ 159 160/*#define USE_PTY_PAIR*/ 161 162#endif /* COFF */ 163 164/* -g is sometimes broken on the Gould. */ 165 166#define C_DEBUG_SWITCH 167 168/* Comparing pointers as unsigned ints tickles a bug in older compilers. */ 169 170#define PNTR_COMPARISON_TYPE int 171 172/* The GOULD machine counts the a.out file header as part of the text. */ 173 174#define A_TEXT_OFFSET(HDR) sizeof (HDR) 175 176/* Machine-dependent action when about to dump an executable file. */ 177 178#ifndef COFF 179#define ADJUST_EXEC_HEADER \ 180 unexec_text_start = hdr.a_txbase + sizeof (hdr); 181#endif 182 183/* We use the system's crt0.o. Somehow it avoids losing 184 with `environ' the way most standard crt0.o's do. */ 185 186#define START_FILES pre-crt0.o /lib/crt0.o 187 188/* arch-tag: 930cb9ef-f56f-4c06-aea0-5e81103bbf58 189 (do not change this comment) */ 190