🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #2340

Gnu gcc 1.33 & SunOS 4.0 make's .KEEP_STATE don't mix (with fix)

#2340
From: Arthur David Olson
Date: Mon, 20 Feb 1989 21:59
91 lines
3589 bytes
Index:	cccp.c

(We're running SunOS 4.0 on a Sun 3/280.)

Description:
	Gnu gcc 1.33 and SunOS 4.0 make's .KEEP_STATE feature don't mix.
	The problem turns out to be in the preprocessor, which correctly
	detects that Sun's make wants dependencies written out but then
	writes only the dependencies (and not the results of preprocessing).

Repeat-By:
	Script started on Mon Feb 20 16:47:38 1989
	elsie$ mkdir xyz
	elsie$ cd xyz
	elsie$ echo '.KEEP_STATE:' > Makefile
	elsie$ echo 'main(){}' > try.c
	elsie$ make try CC='/usr/local/bin/gcc -v'
	/usr/local/bin/gcc -v    -sun3 -o try try.c 
	gcc version 1.33
	 /usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 try.c /tmp/cca00666.cpp
	GNU CPP version 1.33
	 /usr/local/lib/gcc-cc1 /tmp/cca00666.cpp -quiet -dumpbase try.c -version -o /tmp/cca00666.s
	GNU C version 1.33 (68k, MIT syntax) compiled by GNU C version 1.33.
	 as -mc68020 /tmp/cca00666.s -o try.o
	 ld -o try -e start -dc -dp /lib/crt0.o /lib/Mcrt1.o try.o /usr/local/lib/gcc-gnulib -lc
	ld: Undefined symbol 
	   _main 
	*** Error code 1
	make: Fatal error: Command failed for target `try'
	elsie$ make try.o CC='/usr/local/bin/gcc -v'
	/usr/local/bin/gcc -v   -sun3 -c  try.c
	gcc version 1.33
	 /usr/local/lib/gcc-cpp -v -undef -D__GNUC__ -Dmc68000 -Dsun -Dunix -D__mc68000__ -D__sun__ -D__unix__ -D__HAVE_68881__ -Dmc68020 try.c /tmp/cca00682.cpp
	GNU CPP version 1.33
	 /usr/local/lib/gcc-cc1 /tmp/cca00682.cpp -quiet -dumpbase try.c -version -o /tmp/cca00682.s
	GNU C version 1.33 (68k, MIT syntax) compiled by GNU C version 1.33.
	 as -mc68020 /tmp/cca00682.s -o try.o
	elsie$ ls -l try.o
	-rw-r--r--  1 ado            62 Feb 20 16:48 try.o
	elsie$ nm try.o
	00000000 t gcc_compiled.
	elsie$ exit

	script done on Mon Feb 20 16:48:27 1989

Fix:
*** 1.2/cccp.c	Mon Feb 20 16:50:45 1989
--- 1.3/cccp.c	Mon Feb 20 16:50:48 1989
***************
*** 1067,1083 ****
  
    if (dump_macros)
      dump_all_macros ();
!   else if (print_deps) {
!     fputs (deps_buffer, deps_stream);
!     putc ('\n', deps_stream);
!     if (deps_stream != stdout) {
!       fclose (deps_stream);
!       if (ferror (deps_stream))
! 	fatal ("I/O error on output");
      }
!   } else if (! inhibit_output) {
!     if (write (fileno (stdout), outbuf.buf, outbuf.bufp - outbuf.buf) < 0)
!       fatal ("I/O error on output");
    }
  
    if (ferror (stdout))
--- 1067,1087 ----
  
    if (dump_macros)
      dump_all_macros ();
!   else {
!     if (print_deps) {
!       fputs (deps_buffer, deps_stream);
!       putc ('\n', deps_stream);
!       if (deps_stream == stdout)
! 	inhibit_output = TRUE;
!       else {
!         fclose (deps_stream);
!         if (ferror (deps_stream))
! 	  fatal ("I/O error on output");
!       }
      }
!     if (! inhibit_output)
!       if (write (fileno (stdout), outbuf.buf, outbuf.bufp - outbuf.buf) < 0)
!         fatal ("I/O error on output");
    }
  
    if (ferror (stdout))
-- 
	Arthur David Olson    ado@ncifcrf.gov    ADO is a trademark of Ampex.
Technical Details
Message-ID: <8902202159.AA01136@elsie>
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!dptcdc!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!NCIFCRF.GOV!elsie!ado

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!attcan!dptcdc!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!NCIFCRF.GOV!elsie!ado
From: elsie!ado@NCIFCRF.GOV (Arthur David Olson)
Newsgroups: gnu.gcc.bug
Subject: Gnu gcc 1.33 & SunOS 4.0 make's .KEEP_STATE don't mix (with fix)
Message-ID: <8902202159.AA01136@elsie>
Date: 20 Feb 89 21:59:24 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 91