[gnu.utils.bug] GNUmake -- IBM RT w/AOS, bug & fix

timothy@SPICA.UCSC.EDU (Timothy Oborne) (07/25/89)

To compile GNU make 3.54 on an IBM RT w/AOS :

1) Apply enclosed patch (it is a hack but it has been working for me)

CAVEAT:
This is more of an FYI fix than one I would depend on.  I don't have the
required knowledge to pursue it any further, but I have figured out where
to find the problem (which line in the program bombs).

2) Add -ma to the CFLAGS in Makefile. (You need to do this)

3) Proceed as normal.

=========================================================================
Timothy W. Oborne, Systems Programmer	INTERNET: timothy@spica.ucsc.edu
University of California, Santa Cruz	UUCP: ucbvax!ucscc!saturn!timothy
=========================================================================

----- Cut Here For Context Diff -----
*** main.c	Mon Jul 24 16:45:53 1989
--- main_good.c	Mon Jul 24 16:44:54 1989
***************
*** 805,810 ****
--- 805,814 ----
    register struct stringlist *sl;
    char *arg;
  
+ #ifdef ibm032
+   int bloody_hack_index; /* See comment below */
+ #endif /* ibm032 */
+ 
    decode_env_switches ("MAKEFLAGS", 9);
    decode_env_switches ("MFLAGS", 6);
  
***************
*** 812,817 ****
--- 816,838 ----
    other_args->max = 5;
    other_args->list = (char **) xmalloc (5 * sizeof (char *));
    other_args->idx = 1;
+ 
+ #ifdef ibm032
+ /* 7/24/89 Timothy W. Oborne, University of California at Santa Cruz.
+ 	timothy@cis.ucsc.edu
+ 
+ 	System: IBM RT Running AOS
+ 
+ 	This is a "bloody hack", I'm not sure why it works.  Take
+ 	this line out and gnumake will bomb with a fatal error, leave it in
+ 	and everything is fine.  Some sort of memory allocation problem I
+ 	guess???  Anyway, I don't have time to track it down now.  A print
+ 	statement or a getchar() work just as well.  Beats me. Some sort
+ 	of wierd timing problem (yuck).
+ */
+   for(bloody_hack_index=0; bloody_hack_index<10; bloody_hack_index++);
+ #endif
+ 
    other_args->list[0] = savestring (argv[0], strlen (argv[0]));
  
    for (i = 1; i < argc; i++)