[gnu.utils.bug] A gnumacs problem.

clayton@THUMPER.BELLCORE.COM (R. Clayton) (02/06/90)

I've run across a problem using gnumake version 3.57:

   l gnumake server
   cd +undefined ; gnumake -I.. -f ../makefile /u/clayton/etc/cruiser/new/bin/undefined/branchs
   cc -g -I/u/clayton/etc/cruiser/new/include   -c branch-server.l -o ../branch-server.o
   cc: Warning: File with unknown suffix (branch-server.l) passed to ld
   cc -o /u/clayton/etc/cruiser/new/bin/undefined/branchs -g
   -I/u/clayton/etc/cruiser/new/include branch-server.o bsp.o pcid.o
   mbox.o gkpc.o gk.o timer.o make-child.o tty.o msandr.o
   /u/clayton/etc/cruiser/new/lib/process.a
   /u/clayton/etc/cruiser/new/lib/bslib.a
   /u/clayton/etc/cruiser/new/lib/mslib.a
   /u/clayton/etc/cruiser/new/lib/pcord.a
   /u/clayton/etc/cruiser/new/lib/msg.a     /u/clayton/etc/cruiser/new/lib/utils.a
   ld: branch-server.o: No such file or directory
   gnumake[1]: *** [/u/clayton/etc/cruiser/new/bin/undefined/branchs]
   Error 4
   gnumake: *** [server] Error 1

Unfortunately, the process of whittling down the makefile changed the
problem:

   l gnumake -v -f bmf server
   GNU Make version 3.57, by Richard Stallman and Roland McGrath.
   Copyright (C) 1988, 1989 Free Software Foundation, Inc. This is free
   software; see the source for copying conditions.  There is NO
   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
   PURPOSE. 

   cd +undefined ; gnumake -I.. -f ../makefile /u/clayton/etc/cruiser/new/bin/undefined/branchs
   /bin/sh: 948 Memory fault - core dumped
   gnumake: *** [server] Error 139

This is the shorter makefile:

   l cat bmf
   base            = /u/clayton/etc/cruiser/new

   machine_type    = undefined
   md_mark         = +
   machine_dir     = $(md_mark)$(machine_type)

   bin             = $(base)/bin/$(machine_type)

   VPATH           := ..
   mt_make         := cd $(machine_dir) ; $(MAKE) -I.. -f ../makefile

   server          :
		      $(mt_make) $(bin)/branchs

   objs            = branch-server.o
   $(bin)/branchs  : $(objs)
		     cc -o $(bin)/branchs $(CFLAGS) $(objs)

If you change machine_type from undefined to sun3, you can get back
the first problem. I went fiddling around a bit and came up with this
dbxtool stack trace:

   (dbxtool) run -I.. -f ../makefile /u/clayton/etc/cruiser/new/bin/undefined/branchs
   Running: /u/clayton/bin/gnumake -I.. -f ../makefile /u/clayton/etc/cruiser/new/bin/undefined/branchs 
   signal SEGV (segmentation violation) in strlen at 0xed6f600
   0xed6f600:              tstb    a1@+
   (dbxtool) where
   strlen(?args?)
   etext(0x1030688) at 0xed6f600
   define_variable_in_set(name = 0x2030b "<", length = 1, value = 0x1030688 "<bad address>", origin = o_automatic, recursive = 0, set = 0x47f7c), line 116 in "gnumake/variable.c"
   define_variable_for_file(name = 0x2030b "<", length = 1, value = 0x1030688 "<bad address>", origin = o_automatic, recursive = 0, file = 0x33094), line 151 in "gnumake/variable.c"
   set_file_variables(file = 0x48110), line 98 in "gnumake/commands.c"
   execute_file_commands(file = 0x33094), line 252 in "gnumake/commands.c"
   remake_file(file = 0x33094), line 679 in "gnumake/remake.c"
   update_file_1(file = 0x33094, depth = 2), line 445 in "gnumake/remake.c"
   update_file(file = 0x33094, depth = 2), line 187 in "gnumake/remake.c"
   check_dep(file = 0x33094, depth = 2, this_mtime = -1, must_make_ptr = 0xeffebdc), line 533 in "gnumake/remake.c"
   update_file_1(file = 0x275e8, depth = 1), line 317 in "gnumake/remake.c"
   update_file(file = 0x275e8, depth = 0), line 187 in "gnumake/remake.c"
   update_goal_chain(goals = 0x3561c, makefiles = 0), line 99 in "gnumake/remake.c"
   main(argc = 5, argv = 0xefff8a8, envp = 0xefff8c0), line 850 in "gnumake/main.c"