Thread (15 messages) flat view 15 messages, 5 authors, 2002-06-08

Re: can/should we use gcc 3.1 to compile kernels

From: Franz Sirl <hidden>
Date: 2002-06-07 20:58:38

At 22:45 07.06.2002, Tom Rini wrote:
On Fri, Jun 07, 2002 at 10:36:46PM +0200, Franz Sirl wrote:
quoted
At 22:19 07.06.2002, Tom Rini wrote:
quoted
On Fri, Jun 07, 2002 at 03:44:56PM -0400, Kevin B. Hendricks wrote:
quoted
Not too bad warnings-wize excpet for the controlfb.c where it constanly
gave a funny warning about "pasting ->".
Sounds right.  I think there was a few other things too..
The warning is correct, pasting "token1" (CNTRL_REG) with "token2" (->)
makes no sense, usually it's just a ## to much somewhere.
quoted
quoted
It did this for every occurence of the macro CNTRL_REG which I must
admit
quoted
quoted
quoted
has two ## which I think gcc was misinterpreting somehow.
Well, isn't:
#define x(foo) a_## foo ##_b
A semi-common thing, like we do in indirect_pci.c ?  Or was it something
different?
Think about preprocessing tokens! If foo is "->" the ## make no sense at
all, cause "a_", "->" and "_b" are 3 separate preprocessing tokens, no
need
quoted
to paste them together.
Ah.  Got a patch? :)
Nope, not even worth a patch :-)), see the message to Kevin.


quoted
quoted
quoted
Other than that just the occaissioanal wanring about unused
variables and
quoted
quoted
quoted
things like that.
Lots of the USB stuff uses __FUNCTION__ which gcc-3.1 isn't happy
about.
It's not __FUNCTION__ per se that gcc is unhappy about, but string
concatenation with it. So instead of printk ( __FUNCTION__ "text %d",
value) use printk (" %s, text %d", __FUNCTION__, value). No big deal.

I think current 3.2 already refuses to compile that.
I thought it was 3.1 that gave a big warning about __FUNCTION__ being
depreciated entirely and 3.2 which just removed __FUNCTION__ at all.  Or
have things been changed abit?
No, but the warning was always about "string concatenation":
[fsirl@entropy:~]$ cat FUNCTION.c
#include <stdio.h>
int main (void)
{
   printf (__FUNCTION__ " text %d", 5);
   printf ("%s text %d", __FUNCTION__, 5);
   return 0;
}
[fsirl@entropy:~]$ gcc -O2 FUNCTION.c
FUNCTION.c: In function `main':
FUNCTION.c:5: warning: concatenation of string literals with __FUNCTION__
is deprecated

So, only one warning is issued.

Franz.


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help