linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [2.6 patch] kill IN_STRING_C
@ 2004-11-07 14:24 Adrian Bunk
  2004-11-08 13:44 ` Andi Kleen
       [not found] ` <200411081942.38954.pluto@pld-linux.org>
  0 siblings, 2 replies; 30+ messages in thread
From: Adrian Bunk @ 2004-11-07 14:24 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel

Hi Andi,

some months ago, you invented a IN_STRING_C with the following comment:

<--  snip  -->

gcc 3.4 optimizes sprintf(foo,"%s",string) into strcpy.  

Unfortunately that isn't seen by the inliner and linux/i386 has no 
out-of-line strcpy so you end up with a linker error.

This patch adds out of line copies for most string functions to avoid 
this.
...

<--  snip  -->


I tried 2.6.10-rc1-mm3 with gcc 3.4.2 and the patch below and didn't 
observe the problems you described.


Can you still reproduce this problem?
If not, I'll suggest to apply the patch below which saves a few kB in 
lib/string.o .



Signed-off-by: Adrian Bunk <bunk@stusta.de>

--- linux-2.6.10-rc1-mm3-full/include/asm-i386/string.h.old	2004-11-07 13:27:44.000000000 +0100
+++ linux-2.6.10-rc1-mm3-full/include/asm-i386/string.h	2004-11-07 13:28:47.000000000 +0100
@@ -25,7 +25,6 @@
 
 /* AK: in fact I bet it would be better to move this stuff all out of line.
  */
-#if !defined(IN_STRING_C)
 
 #define __HAVE_ARCH_STRCPY
 static inline char * strcpy(char * dest,const char *src)
@@ -180,8 +179,6 @@
 return __res;
 }
 
-#endif
-
 #define __HAVE_ARCH_STRLEN
 static inline size_t strlen(const char * s)
 {
--- linux-2.6.10-rc1-mm3-full/lib/string.c.old	2004-11-07 13:29:00.000000000 +0100
+++ linux-2.6.10-rc1-mm3-full/lib/string.c	2004-11-07 13:29:05.000000000 +0100
@@ -19,8 +19,6 @@
  * -  Kissed strtok() goodbye
  */
 
-#define IN_STRING_C 1
- 
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/ctype.h>

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

end of thread, other threads:[~2004-11-10 21:20 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-07 14:24 [2.6 patch] kill IN_STRING_C Adrian Bunk
2004-11-08 13:44 ` Andi Kleen
2004-11-08 15:34   ` Adrian Bunk
2004-11-08 16:19     ` Andi Kleen
2004-11-08 16:31       ` Adrian Bunk
2004-11-08 17:51         ` Andi Kleen
2004-11-08 18:34           ` Adrian Bunk
2004-11-08 19:01             ` Andi Kleen
2004-11-08 23:38               ` Use -ffreestanding? Adrian Bunk
2004-11-09  5:01                 ` Andi Kleen
2004-11-10  1:45                   ` [2.6 patch] " Adrian Bunk
2004-11-10  1:51                     ` Linus Torvalds
2004-11-10  1:57                       ` Adrian Bunk
2004-11-10 21:01                       ` Bill Davidsen
2004-11-08 18:04         ` [2.6 patch] kill IN_STRING_C Paweł Sikora
2004-11-08 18:31           ` Adrian Bunk
2004-11-08 19:12             ` linux-os
2004-11-08 21:27               ` Adrian Bunk
2004-11-08 22:15                 ` linux-os
2004-11-08 22:29                   ` Adrian Bunk
2004-11-08 22:57                     ` linux-os
2004-11-08 23:08                       ` Adrian Bunk
2004-11-09 12:44                         ` linux-os
2004-11-09 13:43                           ` linux-os
2004-11-08 18:22       ` linux-os
2004-11-08 19:31         ` Ryan Cumming
2004-11-09 13:58     ` Arnd Bergmann
2004-11-10  2:30       ` Adrian Bunk
     [not found] ` <200411081942.38954.pluto@pld-linux.org>
     [not found]   ` <20041108185222.GE15077@stusta.de>
2004-11-08 19:11     ` Paweł Sikora
2004-11-08 21:25       ` Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).