mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: <cutaway@bellsouth.net>
To: "Jean Delvare" <khali@linux-fr.org>
Cc: "Denis Vlasenko" <vda@ilport.com.ua>,
	"LKML" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC] cleanup patches for strings
Date: Tue, 21 Jun 2005 19:11:28 -0400	[thread overview]
Message-ID: <00d501c576b6$943da300$2800000a@pc365dualp2> (raw)
In-Reply-To: <20050621234943.713ecc40.khali@linux-fr.org>

There is a way to defeat the GCC string alignments by putting the strings in
a dynamically sized structure if anyone cares.  A bonus side effect of this
scheme is that kernel/driver NLS translations would become almost trivial
because all the string texts are collected in one place.

The basic idea looks like this:

#define MSG1 "Message text blah"
#define MSG2 "Message text blah, blah"
#define MSG3 "Message text blah, blah, blah"

#ifndef __GCC_FORMAT_STRING_CHECKS__
static const struct
    {
    char m1[sizeof(MSG1)+1];
    char m2[sizeof(MSG2)+1];
    char m3[sizeof(MSG3)+1];
    } msg = {
    {MSG1},
    {MSG2},
    {MSG3}
    };
#undef MSG1
#undef MSG2
#undef MSG3
#define MSG1 msg.m1
#define MSG2 msg.m2
#define MSG3 msg.m3
#endif

The #ifdef allows for a "trial build" so GCC can type match parms to format
strings by just plugging the texts in verbatim like it is today.

The next logical step up from this would be to extract the #define "...."
stuff into a header, and voila, you've got trivial kernel/driver translation
(at least for pan-euro/western languages) essentially for free that doesn't
require anyone to fork off a special translation tree - they can keep using
mainline code base and just do a language specific header translation.

This scheme has saved several hundreds of bytes in couple of drivers I've
been diddling around with prototyping some changes on.

 (Name == Tony Ingenoso)


----- Original Message ----- 
From: "Jean Delvare" <khali@linux-fr.org>
To: <cutaway@bellsouth.net>
Cc: "Denis Vlasenko" <vda@ilport.com.ua>; "LKML"
<linux-kernel@vger.kernel.org>
Sent: Tuesday, June 21, 2005 17:49
Subject: Re: [RFC] cleanup patches for strings


> Hi,... hm, don't you have a name?
>
> > Jean, the default string alignments GCC seems to insist on using are
> > going to screw you far more than the extra byte here or there ;->
>
> That's possible, however I can't do anything against GCC personally,
> while I can help cleanup the code and possibly actually space a few
> bytes here and there. So let's just do it.
>
> Oh, and GCC might end up being smart, who knows.
>
> -- 
> Jean Delvare
>


  reply	other threads:[~2005-06-21 23:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-20 22:46 Jesper Juhl
2005-06-21  6:58 ` cutaway
2005-06-21 11:02   ` Denis Vlasenko
2005-06-21 13:08     ` cutaway
2005-06-21 13:06       ` Denis Vlasenko
2005-06-21 14:38         ` cutaway
2005-06-21 13:52           ` Denis Vlasenko
2005-06-21 13:20       ` Denis Vlasenko
2005-06-21  8:59 ` Alexey Dobriyan
2005-06-21  9:31   ` Jörn Engel
2005-06-21 20:47     ` Jesper Juhl
2005-06-21  9:04 ` Andrey Panin
2005-06-21 10:59 ` Denis Vlasenko
2005-06-21 21:24   ` Jean Delvare
2005-06-21 22:33     ` cutaway
2005-06-21 21:49       ` Jean Delvare
2005-06-21 23:11         ` cutaway [this message]
2005-06-22  0:16           ` Brian Gerst
2005-06-21 21:12 ` Horst von Brand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='00d501c576b6$943da300$2800000a@pc365dualp2' \
    --to=cutaway@bellsouth.net \
    --cc=khali@linux-fr.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vda@ilport.com.ua \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®