diff options
author | Jordan Crouse <jordan.crouse@amd.com> | 2008-03-20 01:13:28 +0000 |
---|---|---|
committer | Uwe Hermann <uwe@hermann-uwe.de> | 2008-03-20 01:13:28 +0000 |
commit | 2c7bb9e84fb82ed79a9180dc1ecc9e805d70b765 (patch) | |
tree | 501d806c0ed9ca627c451b53c4733d6473f86d76 | |
parent | 3a406feb179dbe10bbbc1b07abd935a7d04e6524 (diff) | |
download | coreboot-2c7bb9e84fb82ed79a9180dc1ecc9e805d70b765.tar.xz |
libpayload: Add -Os to the CFLAGS
Adding -Os to the CFLAGS gains us about 25% smaller code (give or take).
Unfortunately, it exposes a strange issue where strcpy() suddenly goes
missing - we think that strcpy() is being provided by libgcc, and that
for some reason, -Os changes the beahavior. Oh, well - add a quick
strcpy() function and we're good.
Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3175 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r-- | payloads/libpayload/Makefile | 2 | ||||
-rw-r--r-- | payloads/libpayload/libc/string.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/payloads/libpayload/Makefile b/payloads/libpayload/Makefile index f2f87abc53..8d28c2dcca 100644 --- a/payloads/libpayload/Makefile +++ b/payloads/libpayload/Makefile @@ -61,7 +61,7 @@ include $(PLATFORM-y) $(BUILD-y) INCLUDES := -I./include INCLUDES += -I$(shell $(CC) -print-search-dirs | head -n 1 | cut -d' ' -f2)include -CFLAGS := -Werror -fno-stack-protector -nostdinc $(INCLUDES) +CFLAGS := -Werror -Os -fno-stack-protector -nostdinc $(INCLUDES) libpayload.a: $(TARGETS-y) $(AR) rc $@ $(TARGETS-y) diff --git a/payloads/libpayload/libc/string.c b/payloads/libpayload/libc/string.c index c9f0603387..f71d1c3af6 100644 --- a/payloads/libpayload/libc/string.c +++ b/payloads/libpayload/libc/string.c @@ -142,6 +142,11 @@ char *strncpy(char *d, const char *s, int n) return d; } +char *strcpy(char *d, const char *s) +{ + return strncpy(d, s, strlen(s)); +} + char *strncat(char *d, const char *s, int n) { char *p = d + strlen(d); |