aix4-2.h 2.79 KB
Newer Older
Dan Nicolaescu's avatar
Dan Nicolaescu committed
1
/*
2
Copyright (C) 1999, 2001-2011  Free Software Foundation, Inc.
Richard M. Stallman's avatar
Richard M. Stallman committed
3

Dan Nicolaescu's avatar
Dan Nicolaescu committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */

19 20
/* Define symbols to identify the version of Unix this is.
   Define all the symbols that apply correctly.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
21 22 23
#define USG				/* System III, System V, etc */
#define USG5

24
/* This symbol should be defined on AIX Version 3  ??????? */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
25 26 27 28 29 30 31 32 33 34
#ifndef _AIX
#define _AIX
#endif

/* SYSTEM_TYPE should indicate the kind of system you are using.
 It sets the Lisp variable system-type.  */
#define SYSTEM_TYPE "aix"

/* In AIX, you allocate a pty by opening /dev/ptc to get the master side.
   To get the name of the slave side, you just ttyname() the master side.  */
35
#define PTY_ITERATION int c; for (c = 0; !c ; c++)
Dan Nicolaescu's avatar
Dan Nicolaescu committed
36 37 38
#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc");
#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd));

39
/* Define HAVE_PTYS if the system supports pty devices.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
40 41 42 43 44
#define HAVE_PTYS

/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
#define HAVE_SOCKETS

45
/* Special items needed to make Emacs run on this system.  */
Dan Nicolaescu's avatar
Dan Nicolaescu committed
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

/* AIX doesn't define this.  */
#define unix 1

/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct.  */
#define SIGNALS_VIA_CHARACTERS
#define CLASH_DETECTION

/* Perry Smith <pedz@ddivt1.austin.ibm.com> says these are correct.  */
#undef sigmask

#ifndef HAVE_LIBXMU
/* Unfortunately without libXmu we cannot support EditRes.  */
#define NO_EDITRES
#endif
Miles Bader's avatar
Miles Bader committed
61

62 63 64
/* On AIX Emacs uses the gmalloc.c malloc implementation.  But given
   the way this system works, libc functions that return malloced
   memory use the libc malloc implementation. Calling xfree or
Glenn Morris's avatar
Glenn Morris committed
65
   xrealloc on the results of such functions results in a crash.
66

67 68
   One solution for this could be to define SYSTEM_MALLOC in configure,
   but that does not currently work on this system.
69 70 71 72

   It is possible to completely override the malloc implementation on
   AIX, but that involves putting the malloc functions in a shared
   library and setting the MALLOCTYPE environment variable to point to
73 74
   that shared library.

75
   Emacs currently calls xrealloc on the results of get_current_dir name,
76
   to avoid a crash just use the Emacs implementation for that function.  */
77
#define BROKEN_GET_CURRENT_DIR_NAME 1