From: Paulo Marques <pmarques@grupopie.com>
To: Bernd Petrovitsch <bernd@firmix.at>
Cc: "J.A. Magallon" <jamagallon@able.es>,
Sam Ravnborg <sam@ravnborg.org>, Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] signed char fixes for scripts
Date: Thu, 28 Jul 2005 11:40:12 +0100 [thread overview]
Message-ID: <42E8B60C.9070703@grupopie.com> (raw)
In-Reply-To: <1122545777.16156.59.camel@tara.firmix.at>
[-- Attachment #1: Type: text/plain, Size: 2361 bytes --]
Bernd Petrovitsch wrote:
> On Thu, 2005-07-28 at 11:02 +0100, Paulo Marques wrote:
>>J.A. Magallon wrote:
>>[...]
>>>All the problems are born here:
>>>
>>>struct sym_entry {
>>> unsigned long long addr;
>>> unsigned int len;
>>> unsigned char *sym;
>>>};
>>
>>What are you guys talking about?
>
> "unsigned char *" is simply the wrong type for mere text strings. "char
> *" ist the corrrect one. These are BTW two completely different types
> (yes, "char" can be promoted into an "unsigned char" but essentially
> these are two completely different types like "int" and "long long *").
You're comming really late in this thread :)
The problem is that "sym" isn't really a string. It starts out as a
string, but as the compression scheme begins to work it just becomes a
"bunch of bytes" using all the values in the range 0-255 for which
unsigned char is the perfect type.
Since only the loading of the symbols use string functions, and all the
compression process treats these as bytes, it seemed better to treat
them as unsigned chars and just typecast the first few uses.
The union suggested by J.A.Magallon might be a reasonable solution, but
we only need 4 casts in the 500 lines of code of scripts/kallsyms.c to
solve all problems, so this seems really overkill.
>>Is my compiler version the problem (3.3.2), or are you testing with the
>
> Compiler version - zse gcc-4.*.
Yes, I know J.A.Magallon is trying to silence the warnings of gcc 4.0,
but as I understood it, gcc 3 would also complain of the same problems
if -Wsign-compare were specified. It was just that gcc4 would complain
even without -Wsign-compare.
So the question is: is gcc4 complaining about signedness problems that
gcc3 doesn't, even with -Wsign-compare?
Now that I look at the source, I can see that it must be complaining!
There are still 3 calls to strcmp that use sym directly, and gcc3
doesn't say a thing.
I thought that these were already taken care of. In any cased the
attached patch should fix those and make the code more readable too.
With this patch we end up only having 2 casts to (char *) in the whole
source.
Can someone with gcc 4 apply this to the latest -mm and check that it
fixes everything?
--
Paulo Marques - www.grupopie.com
It is a mistake to think you can solve any major problems
just with potatoes.
Douglas Adams
[-- Attachment #2: kallsyms_sign.patch --]
[-- Type: text/x-patch, Size: 1503 bytes --]
--- ./scripts/kallsyms.c.orig 2005-07-28 11:31:29.000000000 +0100
+++ ./scripts/kallsyms.c 2005-07-28 11:33:58.000000000 +0100
@@ -150,11 +150,13 @@ static int symbol_valid(struct sym_entry
"_SDA2_BASE_", /* ppc */
NULL };
int i;
- int offset = 1;
+ char *name;
+
+ name = (char *) s->sym + 1;
/* skip prefix char */
- if (symbol_prefix_char && *(s->sym + 1) == symbol_prefix_char)
- offset++;
+ if (symbol_prefix_char && *name == symbol_prefix_char)
+ name++;
/* if --all-symbols is not specified, then symbols outside the text
* and inittext sections are discarded */
@@ -169,18 +171,18 @@ static int symbol_valid(struct sym_entry
* move then they may get dropped in pass 2, which breaks the
* kallsyms rules.
*/
- if ((s->addr == _etext && strcmp(s->sym + offset, "_etext")) ||
- (s->addr == _einittext && strcmp(s->sym + offset, "_einittext")) ||
- (s->addr == _eextratext && strcmp(s->sym + offset, "_eextratext")))
+ if ((s->addr == _etext && strcmp(name, "_etext")) ||
+ (s->addr == _einittext && strcmp(name, "_einittext")) ||
+ (s->addr == _eextratext && strcmp(name, "_eextratext")))
return 0;
}
/* Exclude symbols which vary between passes. */
- if (strstr((char *)s->sym + offset, "_compiled."))
+ if (strstr(name, "_compiled."))
return 0;
for (i = 0; special_symbols[i]; i++)
- if( strcmp((char *)s->sym + offset, special_symbols[i]) == 0 )
+ if( strcmp(name, special_symbols[i]) == 0 )
return 0;
return 1;
next prev parent reply other threads:[~2005-07-28 10:43 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-15 8:36 2.6.13-rc3-mm1 Andrew Morton
2005-07-15 8:49 ` 2.6.13-rc3-mm1 Russell King
2005-07-15 8:56 ` 2.6.13-rc3-mm1 Andrew Morton
2005-07-15 9:03 ` 2.6.13-rc3-mm1 Russell King
2005-07-15 9:15 ` 2.6.13-rc3-mm1 Andrew Morton
2005-07-15 9:24 ` 2.6.13-rc3-mm1 Matthias Urlichs
2005-07-15 17:42 ` 2.6.13-rc3-mm1 Matthias Urlichs
2005-07-15 10:25 ` 2.6.13-rc3-mm1 Grant Coady
2005-07-15 10:36 ` 2.6.13-rc3-mm1 Andrew Morton
2005-07-15 10:27 ` 2.6.13-rc3-mm1: horribly drivers/scsi/qla2xxx/Makefile Adrian Bunk
2005-07-15 14:40 ` Andrew Vasquez
2005-07-16 17:26 ` Jindrich Makovicka
2005-07-19 14:04 ` [-mm patch] SCSI_QLA2ABC options must select FW_LOADER Adrian Bunk
2005-07-20 13:38 ` Jesper Juhl
2005-07-21 15:25 ` Adrian Bunk
2005-07-17 2:38 ` [2.6 patch] SCSI_QLA2ABC mustn't select SCSI_FC_ATTRS Adrian Bunk
2005-07-17 3:11 ` Lee Revell
2005-07-17 4:04 ` randy_dunlap
2005-07-17 4:20 ` Lee Revell
2005-07-15 15:00 ` 2.6.13-rc3-mm1 Christoph Hellwig
2005-07-15 20:16 ` 2.6.13-rc3-mm1 (ckrm) Andrew Morton
2005-07-17 15:20 ` Paul Jackson
2005-07-17 19:02 ` Mark Hahn
2005-07-21 1:40 ` Paul Jackson
2005-07-22 3:59 ` Shailabh Nagar
2005-07-22 4:27 ` Gerrit Huizenga
2005-07-22 4:53 ` Mark Hahn
2005-07-22 5:03 ` Gerrit Huizenga
2005-07-22 5:37 ` Mark Hahn
2005-07-22 14:53 ` Alan Cox
2005-07-22 15:51 ` Gerrit Huizenga
2005-07-22 16:35 ` Mark Hahn
2005-07-22 19:27 ` Alan Cox
2005-07-22 20:18 ` [ckrm-tech] " Matthew Helsley
2005-07-23 0:23 ` Mark Hahn
2005-07-23 4:19 ` Matthew Helsley
2005-07-23 15:38 ` Mark Hahn
2005-07-18 10:12 ` Hirokazu Takahashi
2005-07-21 22:37 ` Matthew Helsley
2005-07-21 23:32 ` Paul Jackson
2005-07-22 0:29 ` Martin J. Bligh
2005-07-22 3:46 ` Paul Jackson
2005-07-22 4:07 ` Shailabh Nagar
2005-07-22 19:53 ` Paul Jackson
2005-07-28 20:15 ` Shailabh Nagar
2005-07-28 22:54 ` Paul Jackson
2005-07-22 1:06 ` Peter Williams
2005-07-22 3:00 ` Gerrit Huizenga
2005-07-22 3:46 ` Peter Williams
2005-07-22 3:55 ` Gerrit Huizenga
2005-07-15 17:13 ` 2.6.13-rc3-mm1 Joel Becker
2005-07-15 22:04 ` [PATCH] Assorted fixes J.A. Magallon
2005-07-15 22:11 ` [PATCH] fix LDT tss J.A. Magallon
2005-07-15 22:11 ` [PATCH] fix kmalloc in IDE J.A. Magallon
2005-07-15 22:12 ` [PATCH] SCSI SATA is a tristate J.A. Magallon
2005-07-15 22:13 ` [PATCH] SMB fix J.A. Magallon
2005-07-15 22:14 ` [PATCH] signed char fixes for scripts J.A. Magallon
2005-07-16 9:52 ` Sam Ravnborg
2005-07-18 11:16 ` Paulo Marques
2005-07-18 11:29 ` Paulo Marques
2005-07-27 20:27 ` Sam Ravnborg
2005-07-27 23:36 ` J.A. Magallon
2005-07-28 10:02 ` Paulo Marques
2005-07-28 10:16 ` Bernd Petrovitsch
2005-07-28 10:40 ` Paulo Marques [this message]
2005-07-28 11:05 ` Bernd Petrovitsch
2005-07-15 22:52 ` 2.6.13-rc3-mm1 Yoichi Yuasa
2005-07-15 23:00 ` 2.6.13-rc3-mm1 Yoichi Yuasa
2005-07-15 23:23 ` 2.6.13-rc3-mm1 Andrew Morton
2005-07-16 1:08 ` 2.6.13-rc3-mm1 Yoichi Yuasa
2005-07-16 21:30 ` 2.6.13-rc3-mm1: a regression Rafael J. Wysocki
2005-07-16 21:39 ` Andrew Morton
2005-07-17 20:11 ` Rafael J. Wysocki
2005-07-16 22:12 ` 2.6.13-rc3-mm1 : oops in dnotify_parent Laurent Riffard
2005-07-17 1:32 ` 2.6.13-rc3-mm1 Joseph Fannin
2005-07-18 11:41 ` 2.6.13-rc3-mm1 Pavel Machek
2005-07-18 14:21 ` 2.6.13-rc3-mm1 Joseph Fannin
2005-07-17 20:20 ` 2.6.13-rc3-mm1: mount problems w/ 3ware on dual Opteron Rafael J. Wysocki
2005-07-19 14:21 ` 2.6.13-rc3-mm1 Coywolf Qi Hunt
2005-07-19 14:42 ` [patch] kbuild: make help binrpm-pkg fix Coywolf Qi Hunt
2005-07-21 21:46 ` Sam Ravnborg
2005-07-21 11:37 ` 2.6.13-rc3-mm1 - breaks DRI Ed Tomlinson
2005-07-21 15:56 ` Andrew Morton
2005-07-21 22:37 ` Ed Tomlinson
2005-07-21 23:18 ` Dave Airlie
2005-07-22 21:17 ` [-mm patch] kernel/ckrm/rbce/rbce_core.c: fix -Wundef warning Adrian Bunk
2005-07-24 16:20 ` 2.6.13-rc3-mm1 Richard Purdie
2005-07-25 6:42 ` 2.6.13-rc3-mm1 Andrew Morton
2005-07-25 9:35 ` [patch] Stop the nand functions triggering false softlockup reports Richard Purdie
2005-07-28 12:50 ` 2.6.13-rc3-mm1 compiles unrequested/unconfigured module! Helge Hafting
2005-07-28 12:56 ` Adrian Bunk
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=42E8B60C.9070703@grupopie.com \
--to=pmarques@grupopie.com \
--cc=akpm@osdl.org \
--cc=bernd@firmix.at \
--cc=jamagallon@able.es \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
/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