[kbuild-devel] Re: [PATCH 2/2] Fix signed char problem in scripts/kconfig

2005-06-22 Thread Roman Zippel
Hi,

On Wed, 22 Jun 2005, Pierre Ossman wrote:

 The signed characters in scripts are causing warnings with GCC 4 on
 systems with proper string functions (with char*, not signed char* as
 parameters). Some could be kept signed but most had to be reverted to
 normal chars.
 
 Detailed changelog:
 
 mconf.c:
   - buf/bufptr was used in vsprintf() so it couldn't be signed.
 confdata.c:
   - conf_expand_value() used strchr() and strncat() forcing
 normal strings.
 conf.c:
   - line was used with several string functions so it couldn't be
 signed.
   - strip() uses strlen() so same thing there.
 
 Signed-off-by: Pierre Ossman [EMAIL PROTECTED]

Acked-by: Roman Zippel [EMAIL PROTECTED]

Looks good, thanks.

bye, Roman


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kbuild-devel


[kbuild-devel] [PATCH 2/2] Fix signed char problem in scripts/kconfig

2005-06-22 Thread Pierre Ossman
The signed characters in scripts are causing warnings with GCC 4 on
systems with proper string functions (with char*, not signed char* as
parameters). Some could be kept signed but most had to be reverted to
normal chars.

Detailed changelog:

mconf.c:
- buf/bufptr was used in vsprintf() so it couldn't be signed.
confdata.c:
- conf_expand_value() used strchr() and strncat() forcing
  normal strings.
conf.c:
- line was used with several string functions so it couldn't be
  signed.
- strip() uses strlen() so same thing there.

Signed-off-by: Pierre Ossman [EMAIL PROTECTED]
Index: linux-wbsd/scripts/kconfig/mconf.c
===
--- linux-wbsd/scripts/kconfig/mconf.c	(revision 153)
+++ linux-wbsd/scripts/kconfig/mconf.c	(working copy)
@@ -254,8 +254,8 @@
 	  USB$ = find all CONFIG_ symbols ending with USB\n
 	\n);
 
-static signed char buf[4096], *bufptr = buf;
-static signed char input_buf[4096];
+static char buf[4096], *bufptr = buf;
+static char input_buf[4096];
 static char filename[PATH_MAX+1] = .config;
 static char *args[1024], **argptr = args;
 static int indent;
Index: linux-wbsd/scripts/kconfig/confdata.c
===
--- linux-wbsd/scripts/kconfig/confdata.c	(revision 153)
+++ linux-wbsd/scripts/kconfig/confdata.c	(working copy)
@@ -27,10 +27,10 @@
 	NULL,
 };
 
-static char *conf_expand_value(const signed char *in)
+static char *conf_expand_value(const char *in)
 {
 	struct symbol *sym;
-	const signed char *src;
+	const char *src;
 	static char res_value[SYMBOL_MAXLENGTH];
 	char *dst, name[SYMBOL_MAXLENGTH];
 
Index: linux-wbsd/scripts/kconfig/conf.c
===
--- linux-wbsd/scripts/kconfig/conf.c	(revision 153)
+++ linux-wbsd/scripts/kconfig/conf.c	(working copy)
@@ -31,14 +31,14 @@
 static int indent = 1;
 static int valid_stdin = 1;
 static int conf_cnt;
-static signed char line[128];
+static char line[128];
 static struct menu *rootEntry;
 
 static char nohelp_text[] = N_(Sorry, no help available for this option yet.\n);
 
-static void strip(signed char *str)
+static void strip(char *str)
 {
-	signed char *p = str;
+	char *p = str;
 	int l;
 
 	while ((isspace(*p)))


[kbuild-devel] [PATCH 1/2] Fix signed char problem in scripts/basic

2005-06-22 Thread Pierre Ossman
The signed characters in scripts are causing warnings with GCC 4 on
systems with proper string functions (with char*, not signed char* as
parameters). Some could be kept signed but most had to be reverted to
normal chars.

Detailed changlog:

fixdep.c:
- is_defined_config() just used memcmp so it was changed to use
  signed strings.
- define_config() was called with both signed and normal
  strings. Since no string functions were used the parameter was
  changed to void *.
- use_config() only called is_defined_config() and
  define_config() so it could use signed strings.
- parse_dep_file() used strchr() so it needed to lose the
  signed.
docproc.c:
- All signed strings were removed because they were all
  directly or indirectly used in string functions.
split-include.c:
- The only signed string here was removed because of usage with
  strstr().

Signed-off-by: Pierre Ossman [EMAIL PROTECTED]
Index: linux-wbsd/scripts/basic/fixdep.c
===
--- linux-wbsd/scripts/basic/fixdep.c	(revision 134)
+++ linux-wbsd/scripts/basic/fixdep.c	(working copy)
@@ -159,7 +159,7 @@
 /*
  * Lookup a value in the configuration string.
  */
-int is_defined_config(const char * name, int len)
+int is_defined_config(const signed char * name, int len)
 {
 	const char * pconfig;
 	const char * plast = str_config + len_config - len;
@@ -175,7 +175,7 @@
 /*
  * Add a new value to the configuration string.
  */
-void define_config(const char * name, int len)
+void define_config(const void * name, int len)
 {
 	grow_config(len + 1);
 
@@ -196,7 +196,7 @@
 /*
  * Record the use of a CONFIG_* word.
  */
-void use_config(char *m, int slen)
+void use_config(signed char *m, int slen)
 {
 	char s[PATH_MAX];
 	char *p;
@@ -291,9 +291,9 @@
 
 void parse_dep_file(void *map, size_t len)
 {
-	signed char *m = map;
-	signed char *end = m + len;
-	signed char *p;
+	char *m = map;
+	char *end = m + len;
+	char *p;
 	char s[PATH_MAX];
 
 	p = strchr(m, ':');
Index: linux-wbsd/scripts/basic/docproc.c
===
--- linux-wbsd/scripts/basic/docproc.c	(revision 134)
+++ linux-wbsd/scripts/basic/docproc.c	(working copy)
@@ -52,7 +52,7 @@
 FILEONLY *externalfunctions;
 FILEONLY *symbolsonly;
 
-typedef void FILELINE(char * file, signed char * line);
+typedef void FILELINE(char * file, char * line);
 FILELINE * singlefunctions;
 FILELINE * entity_system;
 
@@ -148,9 +148,9 @@
  * Files are separated by tabs.
  */
 void adddep(char * file)		   { printf(\t%s, file); }
-void adddep2(char * file, signed char * line) { line = line; adddep(file); }
+void adddep2(char * file, char * line) { line = line; adddep(file); }
 void noaction(char * line)		   { line = line; }
-void noaction2(char * file, signed char * line)   { file = file; line = line; }
+void noaction2(char * file, char * line)   { file = file; line = line; }
 
 /* Echo the line without further action */
 void printline(char * line)   { printf(%s, line); }
@@ -179,8 +179,8 @@
 			perror(real_filename);
 		}
 		while(fgets(line, MAXLINESZ, fp)) {
-			signed char *p;
-			signed char *e;
+			char *p;
+			char *e;
 			if (((p = strstr(line, EXPORT_SYMBOL_GPL)) != 0) ||
 ((p = strstr(line, EXPORT_SYMBOL)) != 0)) {
 /* Skip EXPORT_SYMBOL{_GPL} */
@@ -253,7 +253,7 @@
  * Call kernel-doc with the following parameters:
  * kernel-doc -docbook -function function1 [-function function2]
  */
-void singfunc(char * filename, signed char * line)
+void singfunc(char * filename, char * line)
 {
 	char *vec[200]; /* Enough for specific functions */
 int i, idx = 0;
@@ -290,7 +290,7 @@
 void parse_file(FILE *infile)
 {
 	char line[MAXLINESZ];
-	signed char * s;
+	char * s;
 	while(fgets(line, MAXLINESZ, infile)) {
 		if (line[0] == '!') {
 			s = line + 2;
Index: linux-wbsd/scripts/basic/split-include.c
===
--- linux-wbsd/scripts/basic/split-include.c	(revision 134)
+++ linux-wbsd/scripts/basic/split-include.c	(working copy)
@@ -104,7 +104,7 @@
 /* Read config lines. */
 while (fgets(line, buffer_size, fp_config))
 {
-	const signed char * str_config;
+	const char * str_config;
 	int is_same;
 	int itarget;
 


[kbuild-devel] Re: [PATCH] Pointer cast warnings in scripts/

2005-06-22 Thread Bernd Petrovitsch
On Wed, 2005-06-22 at 11:21 +0200, Pierre Ossman wrote:
 Bernd Petrovitsch wrote:
 The C-standard about char, signed char and unsigned char?
 These are 3 different types.
 
 I was referring to which of the three types is correct for str*().

char as one can read in every man-page.

Bernd
-- 
Firmix Software GmbH   http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
  Embedded Linux Development and Services



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kbuild-devel


[kbuild-devel] Re: [PATCH] Pointer cast warnings in scripts/

2005-06-22 Thread Pierre Ossman
Bernd Petrovitsch wrote:

On Wed, 2005-06-22 at 11:21 +0200, Pierre Ossman wrote:
  

I was referring to which of the three types is correct for str*().



char as one can read in every man-page.

  


That doesn't really make it a standard though (de facto perhaps). :)
The odds of all those man pages deviating from the standard is probably
very low. But unless someone has actually read the damn thing we won't
know for sure.

Rgds
Pierre



---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kbuild-devel


[kbuild-devel] Re: [PATCH] Pointer cast warnings in scripts/

2005-06-22 Thread Russell King
On Wed, Jun 22, 2005 at 01:12:06PM +0200, Pierre Ossman wrote:
 That doesn't really make it a standard though (de facto perhaps). :)
 The odds of all those man pages deviating from the standard is probably
 very low. But unless someone has actually read the damn thing we won't
 know for sure.

You could check the C99 spec of course, which says gives (eg) strcmp as:

   int strcmp(const char *s1, const char *s2);

rmk's rules of char:

1. use char for character strings and individual characters
2. use signed char if your data type relies upon negative char values
3. use unsigned char if your data type does not require negative char
   values, especially if it makes use of the positive values not
   present in the signed char range.

IOW, use signed/unsigned when you need to explicitly state your
requirements, but omit it for true strings and characters.

-- 
Russell King
 Linux kernel2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 Serial core


---
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477alloc_id=16492op=click
___
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kbuild-devel