From: tmcconne@sedona.intel.com (Tom McConnell)
Subject: m4-1.0 patches, RS/6000 AIX 3.1.6
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 20 Jul 1992 06:52:17 GMT

  Howdy.

  I have ported m4-1.0 to the IBM RS/6000 running AIX 3.1.6 and tried to
port it to AIX 3.2. The patches for AIX 3.1.6 are at the end of this
memo.

  "gmake all" gave one warning (in ./m4-1.0/lib):

    gcc -O -g -fsigned-char -Ilib -DAIX -c symtab.c -o symtab.o 
    symtab.c: In function `hash':
    symtab.c:64: warning: cast from pointer to integer of different size

  I needed to use the "-fsigned-char" flag for gcc to get it to compile.
If I did not use the flag, or used a different compiler (bsdcc, cc) I
got problems with "gmake check":

    Input file: examples/43.regexp
    ./etc/check_examples.sh: 26015 Memory fault: A memory image file is
     created as "core".
    "m4.texinfo": 1962: Origin here

    Input file: examples/44.regexp
    ./etc/check_examples.sh: 26022 Memory fault: A memory image file is
     created as "core".
    "m4.texinfo": 1975: Origin here

    Input file: examples/47.patsubst
    ./etc/check_examples.sh: 26039 Memory fault: A memory image file is
     created as "core".
    "m4.texinfo": 2089: Origin here

    Input file: examples/48.patsubst
    ./etc/check_examples.sh: 26046 Memory fault: A memory image file is
     created as "core".
    "m4.texinfo": 2106: Origin here


  AIX 3.2 has a problem with "getopt":

    gcc -O -g -fsigned-char -Ilib -DAIX -c m4.c -o m4.o 
    In file included from m4.c:22:
    lib/getopt.h:99: conflicting types for `getopt'
    /usr/include/stdlib.h:214: previous declaration of `getopt'
    gmake: *** [m4.o] Error 1

I did not find a workaround (I didn't look very hard :)

  Here is the patch file:

This patch file was created on Mon Jul 20 13:14:01 MST 1992.

The top level directory was /a/stor/gnu/src/m4-1.0


*** ./config/hmake-aix_orig	Mon Jul 20 10:21:50 1992
--- ./config/hmake-aix	Mon Jul 20 10:30:23 1992
***************
*** 0 ****
--- 1,4 ----
+ OS	= -DAIX
+ LOADLIBES = -lPW	# for alloca()
+ CC	= gcc
+ CFLAGS	= -O -g -fsigned-char
*** ./config/s-aix.h_orig	Mon Jul 20 10:21:56 1992
--- ./config/s-aix.h	Mon Jul 20 09:40:04 1992
***************
*** 0 ****
--- 1,32 ----
+ /* 
+  * System V config.h
+  */
+ 
+ 
+ /* 
+  * Define this if your system has the tmpfile(3) function.
+  */
+ #define HAVE_TMPFILE
+ 
+ /* 
+  * Define this if your system has the mkstemp(3) function.  This is only
+  * used if HAVE_TMPFILE is NOT defined.
+  */
+ #undef HAVE_MKSTEMP
+ 
+ /* 
+  * Define this is your system supports the [efg]cvt(3) functions.  This
+  * is used in format.c
+  */
+ #define HAVE_EFGCVT	(1)
+ 
+ /* 
+  * Define this if you have <stdlib.h>.
+  */
+ #define STDC_HEADERS
+ 
+ /* 
+  * Define this if <string.h> and <memory.h> conflicts.  This has been
+  * observed on some systems.
+  */
+ #undef NO_MEMORY_H
*** ./lib/obstack.c_orig	Mon Jul 20 09:29:53 1992
--- ./lib/obstack.c	Mon Jul 20 09:30:15 1992
***************
*** 20,28 ****
  #ifdef __STDC__
  #define POINTER void *
  #else
  #define POINTER char *
- #endif
- 
  extern int abort();
  
  /* Determine default alignment.  */
--- 20,28 ----
  #ifdef __STDC__
  #define POINTER void *
+ extern void abort();
  #else
  #define POINTER char *
  extern int abort();
+ #endif
  
  /* Determine default alignment.  */
*** ./m4.h_orig	Mon Jul 20 12:18:40 1992
--- ./m4.h	Mon Jul 20 12:19:19 1992
***************
*** 57,61 ****
  extern void free();
  
! extern int setbuf();
  extern int sscanf();
  extern int fputs();
--- 57,61 ----
  extern void free();
  
! extern void setbuf();
  extern int sscanf();
  extern int fputs();
***************
*** 66,70 ****
  extern int fclose();
  extern int ungetc();
! extern int rewind();
  
  extern int atoi();
--- 66,70 ----
  extern int fclose();
  extern int ungetc();
! extern void rewind();
  
  extern int atoi();


    Cheers,

    Tom McConnell

 Tom McConnell          |     Internet: tmcconne@sedona.intel.com
 Intel, Corp. C3-21     |     Phone: (602)-554-8229
 5000 W. Chandler Blvd. | The opinions expressed are my own. No one in 
 Chandler, AZ  85226    | their right mind would claim them.

Newsgroups: gnu.utils.bug