From 386ad4f82955d389ae347bc50f7efca5edb9d9a8 Mon Sep 17 00:00:00 2001 From: stefan Date: Fri, 21 Apr 2023 21:56:45 -0400 Subject: actually got libfdt working --- lib/libc/Makefile | 2 ++ lib/libc/string/strchr.c | 3 +-- lib/libc/string/strlen.c | 19 +++++++++++++++++++ lib/libfdt/Makefile | 2 +- lib/libfdt/fdt.c | 1 + 5 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 lib/libc/string/strlen.c (limited to 'lib') diff --git a/lib/libc/Makefile b/lib/libc/Makefile index b2aea30..ab68ab0 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -13,6 +13,8 @@ SRC=\ string/memset.c \ string/memcmp.c \ string/memchr.c \ + string/strlen.c \ + string/strchr.c ${BUILDDIR}/libc.a: ${SRC} diff --git a/lib/libc/string/strchr.c b/lib/libc/string/strchr.c index 09b4d43..f8b3339 100644 --- a/lib/libc/string/strchr.c +++ b/lib/libc/string/strchr.c @@ -2,9 +2,8 @@ char *strchr(const char *s, int c) { do { - if ((char)c == *s) { + if ((char)c == *s) return (char*)s; - } } while (*s++ != '\0'); return NULL; } diff --git a/lib/libc/string/strlen.c b/lib/libc/string/strlen.c new file mode 100644 index 0000000..a1a73b6 --- /dev/null +++ b/lib/libc/string/strlen.c @@ -0,0 +1,19 @@ +#include + +size_t +strlen(const char *s) +{ + int n; + for (n = 0; s[n]; n++) + ; + return n; +} + +size_t +strnlen(const char *s, size_t max) +{ + int n; + for (n = 0; s[n] && n < max; n++) + ; + return n; +} diff --git a/lib/libfdt/Makefile b/lib/libfdt/Makefile index b9c7223..a3de4b6 100644 --- a/lib/libfdt/Makefile +++ b/lib/libfdt/Makefile @@ -13,7 +13,7 @@ SRC=fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c fdt_empty_tree.c \ ${BUILDDIR}/libfdt.a: ${SRC} mkdir -p ${BUILDDIR} - cd ${BUILDDIR} && ${CROSS_COMPILE}gcc -c ${CFLAGS} -nostdlib ${SRC:%=../../%} + cd ${BUILDDIR} && ${CROSS_COMPILE}gcc -c ${CFLAGS} -L ../libc/${BUILDDIR} -l:libc.a -nostdlib -nostdinc -I../../include/ ${SRC:%=../../%} cd ${BUILDDIR} && ${CROSS_COMPILE}ar -rcs ${@:T} ${SRC:T:%.c=%.o} diff --git a/lib/libfdt/fdt.c b/lib/libfdt/fdt.c index 20c6415..96955c7 100644 --- a/lib/libfdt/fdt.c +++ b/lib/libfdt/fdt.c @@ -9,6 +9,7 @@ #include #include "libfdt_internal.h" +#include /* * Minimal sanity check for a read-only tree. fdt_ro_probe_() checks -- cgit v1.2.3