Article View: gnu.gcc.bug
Article #2340Gnu gcc 1.33 & SunOS 4.0 make's .KEEP_STATE don't mix (with fix)
From: Arthur David Olson
Date: Mon, 20 Feb 1989 21:59
Date: Mon, 20 Feb 1989 21:59
91 lines
3589 bytes
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!adoShow 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