Subject: gcc -nostdinc && -Wall
To: None <port-alpha@NetBSD.ORG>
From: John Birrell <cimaxp1!jb@werple.net.au>
List: port-alpha
Date: 09/30/1995 09:56:14
G'day,
When I compile a function (under NetBSD/Alpha) like ....
----------------------------------------------
#include <stdio.h>
int main()
{
return(0);
}
----------------------------------------------
with the command...
cc -c -Wall testx.c
I get a clean compile (no warnings).
When I use the command...
cc -c -Wall -nostdinc -I/usr/include testx.c
I get the following warning...
/usr/include/stdio.h:335: warning: `__sputc' defined but not used
The two commands generate the same code (according to cmp), but I get a .text
entry in the object module (according to nm) for __sputc which I don't want.
If I do a nm on libc.a, there are lots of __sputc text entries. If I do a
nm of an executable (like /usr/bin/compress) I see lots of __sputc text
entries that the linker has put at different addresses.
When I do the same thing under NetBSD/i386 I don't get the warning and I don't
get __sputc in the object module. This seems like the _correct_ behavio[u]r.
Is this a problem with gcc? Chris, does your new compiler do the same thing?
BTW, I guess using -nostdinc with -I/usr/include sounds a bit silly, but I just
used that as a test case. What I'm actually compiling is a version of libc.a
with pthreads built in (so that we only have to maintain one lot of code).
To do this, I can't use the /usr/include directory because several header
files (like errno.h) have to change to support threaded code, so I have the
modified set of header files in /u/dev/usr/include and I only want to compile
against them.
Regards,
--
John Birrell CIMlogic Pty Ltd
jb@cimlogic.com.au 119 Cecil Street
Ph +61 3 9690 9600 South Melbourne Vic 3205
Fax +61 3 9690 6650 Australia
Mob +61 18 353 137