public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Kernel printk format string compression: C syntax problem
@ 2003-06-06 17:27 Timothy Miller
  2003-06-06 18:01 ` Bryan O'Sullivan
       [not found] ` <Pine.LNX.4.53.0306061330520.7633@chaos>
  0 siblings, 2 replies; 6+ messages in thread
From: Timothy Miller @ 2003-06-06 17:27 UTC (permalink / raw)
  To: Linux Kernel Mailing List

Some of you may recall that I've been working on a way to compress 
kernel printk format strings so as to shrink the kernel memory image a 
bit.  My results so far are that given the amount of space required for 
all kernel strings, I can compress them to half their original size. 
Given something the size of an allyesconfig kernel, that's not much 
compression over-all, but it's still interesting.  Additionally, the 
means to compress the kernel messages are a compile-time issue and 
completely transparent to the coder.

I am, however, encountering a problem, and I was hoping some people who 
know C syntax better than both myself and the C syntax spec I found at 
"http://eic.sourceforge.net/iso_c.html" could help me solve it.

Here's an example of the problem:

This line from process.c starts out as:

printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, 
(current_thread_info()->cpu));

And is replaced by:

printk( "EIP\200\3164x:[<\3168lx>] CPU\200%d\n" ,0xffff & 
regs->xcs,regs->eip, (current_thread_info()->cpu));

GCC 3.0.4 makes the following complaint:

arch/i386/kernel/process.c:173: warning: too many arguments for format

What I believe is happening is that where I have the escape code "\316" 
concatenated with the literal "8", the compiler is seeing it as "\3168" 
and doesn't want to take it.  Now, it's just a warning, and it MAY be 
doing the right thing, but what I want to know is the PROPER UNAMBIGUOUS 
way to specify at 3-digit octal escape code which is followed 
immediately by a literal digit.

Any suggestions?

Thank you.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-06-06 19:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-06 17:27 Kernel printk format string compression: C syntax problem Timothy Miller
2003-06-06 18:01 ` Bryan O'Sullivan
2003-06-06 18:50   ` Timothy Miller
     [not found] ` <Pine.LNX.4.53.0306061330520.7633@chaos>
2003-06-06 18:49   ` Timothy Miller
2003-06-06 19:16     ` Richard B. Johnson
2003-06-06 19:31       ` Timothy Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox