diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2013-04-14 22:17:20 +0200 |
---|---|---|
committer | Geert Uytterhoeven <geert@linux-m68k.org> | 2013-06-24 19:44:18 +0200 |
commit | d346a5db02fc16263b44eb511fcb260265e3ef77 (patch) | |
tree | 063226819b893487e4d9026ff6623490a2ea1c67 /arch/m68k/lib | |
parent | 9e895ace5d82df8929b16f58e9f515f6d54ab82d (diff) | |
download | op-kernel-dev-d346a5db02fc16263b44eb511fcb260265e3ef77.zip op-kernel-dev-d346a5db02fc16263b44eb511fcb260265e3ef77.tar.gz |
m68k: Remove inline strcpy() and strcat() implementations
Gcc may replace calls to standard string functions by open code and/or
calls to other standard string functions. If the replacement function is
not available out-of-line, link errors will happen.
To avoid this, the out-of-line versions were provided by
arch/m68k/lib/string.c, but they were usually not linked in anymore as
typically none of its symbols are referenced by built-in code.
However, if any module would need them, they would not be available.
Hence remove the inline strcpy() and strcat() implementations, remove
arch/m68k/lib/string.c, and let the generic string library code handle it.
Impact on a typical kernel build seems minimal or nonexistent:
- .text : 0x00001000 - 0x002aac74 (2728 KiB)
- .data : 0x002ada48 - 0x00392148 ( 914 KiB)
+ .text : 0x00001000 - 0x002aacf4 (2728 KiB)
+ .data : 0x002adac8 - 0x00392148 ( 914 KiB)
See also commit e00c73ee05dc38ecaccced55d4f5fc58b0b769f7 ("m68k: Remove
inline strlen() implementation").
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Diffstat (limited to 'arch/m68k/lib')
-rw-r--r-- | arch/m68k/lib/Makefile | 2 | ||||
-rw-r--r-- | arch/m68k/lib/string.c | 22 |
2 files changed, 1 insertions, 23 deletions
diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile index a9d782d..fcd8eb1 100644 --- a/arch/m68k/lib/Makefile +++ b/arch/m68k/lib/Makefile @@ -6,7 +6,7 @@ lib-y := ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \ memcpy.o memset.o memmove.o -lib-$(CONFIG_MMU) += string.o uaccess.o +lib-$(CONFIG_MMU) += uaccess.o lib-$(CONFIG_CPU_HAS_NO_MULDIV64) += mulsi3.o divsi3.o udivsi3.o lib-$(CONFIG_CPU_HAS_NO_MULDIV64) += modsi3.o umodsi3.o diff --git a/arch/m68k/lib/string.c b/arch/m68k/lib/string.c deleted file mode 100644 index 4d61fa8..0000000 --- a/arch/m68k/lib/string.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is subject to the terms and conditions of the GNU General Public - * License. See the file COPYING in the main directory of this archive - * for more details. - */ - -#define __IN_STRING_C - -#include <linux/module.h> -#include <linux/string.h> - -char *strcpy(char *dest, const char *src) -{ - return __kernel_strcpy(dest, src); -} -EXPORT_SYMBOL(strcpy); - -char *strcat(char *dest, const char *src) -{ - return __kernel_strcpy(dest + strlen(dest), src); -} -EXPORT_SYMBOL(strcat); |