# HG changeset patch # User Dan Nicolaescu # Date 1127495163 0 # Node ID c6e45e9a83bf80881f8df8ba95bc4d1593f20955 # Parent 55fcf5165d97e31c653af78233b9b8745cd1a274 * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define BROKEN_GET_CURRENT_DIR_NAME. * sysdep.c (get_current_dir_name): Also define if BROKEN_GET_CURRENT_DIR_NAME. * m/ibmrs6000.h: Test for USG5, not USG5_4. diff -r 55fcf5165d97 -r c6e45e9a83bf src/ChangeLog --- a/src/ChangeLog Fri Sep 23 15:49:13 2005 +0000 +++ b/src/ChangeLog Fri Sep 23 17:06:03 2005 +0000 @@ -1,3 +1,13 @@ +2005-09-23 Dan Nicolaescu + + * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define + BROKEN_GET_CURRENT_DIR_NAME. + + * sysdep.c (get_current_dir_name): Also define if + BROKEN_GET_CURRENT_DIR_NAME. + + * m/ibmrs6000.h: Test for USG5, not USG5_4. + 2005-09-22 Kim F. Storm * xdisp.c (message_dolog): Add warning about GC and Lisp strings. diff -r 55fcf5165d97 -r c6e45e9a83bf src/m/ibmrs6000.h --- a/src/m/ibmrs6000.h Fri Sep 23 15:49:13 2005 +0000 +++ b/src/m/ibmrs6000.h Fri Sep 23 17:06:03 2005 +0000 @@ -112,7 +112,7 @@ #define OBJECTS_MACHINE hftctl.o #endif -#ifndef USG5_4 +#ifndef USG5 #define C_SWITCH_MACHINE -D_BSD #endif diff -r 55fcf5165d97 -r c6e45e9a83bf src/s/aix4-2.h --- a/src/s/aix4-2.h Fri Sep 23 15:49:13 2005 +0000 +++ b/src/s/aix4-2.h Fri Sep 23 17:06:03 2005 +0000 @@ -2,5 +2,23 @@ #undef ALIGN_DATA_RELOC +/* 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 + xrealloc on the results of such functions results in a crash. + + One solution for this could be to define SYSTEM_MALLOC here, but + that does not currently work on this system. + + 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 + tha shared library. + + Emacs currently calls xrealloc on the results of get_current_dir name, + to avoid a crash just use the Emacs implementation for that function. +*/ +#define BROKEN_GET_CURRENT_DIR_NAME 1 + /* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562 (do not change this comment) */ diff -r 55fcf5165d97 -r c6e45e9a83bf src/sysdep.c --- a/src/sysdep.c Fri Sep 23 15:49:13 2005 +0000 +++ b/src/sysdep.c Fri Sep 23 17:06:03 2005 +0000 @@ -256,7 +256,7 @@ SIGMASKTYPE sigprocmask_set; -#ifndef HAVE_GET_CURRENT_DIR_NAME +#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME) /* Return the current working directory. Returns NULL on errors. Any other returned value must be freed with free. This is used