From 98f9d5cdf6451298001dc7ac71336d4206010181 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 25 Oct 2004 10:25:25 +0000 Subject: r3210: split lib/replace.o into a separate build subsystem LIBREPLACE, and make the ldb tools depend on it. This should help the build of the ldb tools on platforms without strnlen() or strndup() (This used to be commit e6ddb9d8f3a218b22b0176a2525b5daaca7170e4) --- source4/lib/basic.m4 | 1 + source4/lib/basic.mk | 10 ++++++++-- source4/lib/ldb/config.mk | 2 ++ source4/lib/replace.c | 33 +++++++++++++++++++++++++++++++++ source4/lib/util_str.c | 33 --------------------------------- 5 files changed, 44 insertions(+), 35 deletions(-) (limited to 'source4/lib') diff --git a/source4/lib/basic.m4 b/source4/lib/basic.m4 index b233c842db..6701ddaee5 100644 --- a/source4/lib/basic.m4 +++ b/source4/lib/basic.m4 @@ -1,3 +1,4 @@ dnl # LIB BASIC subsystem +SMB_SUBSYSTEM_MK(LIBREPLACE,lib/basic.mk) SMB_SUBSYSTEM_MK(LIBBASIC,lib/basic.mk) diff --git a/source4/lib/basic.mk b/source4/lib/basic.mk index 3baab26c5b..c7d3a264d2 100644 --- a/source4/lib/basic.mk +++ b/source4/lib/basic.mk @@ -1,5 +1,12 @@ # LIB BASIC subsystem +############################## +# Start SUBSYSTEM LIBREPLACE +[SUBSYSTEM::LIBREPLACE] +INIT_OBJ_FILES = lib/replace.o +# End SUBSYSTEM LIBREPLACE +############################## + ############################## # Start SUBSYSTEM LIBBASIC [SUBSYSTEM::LIBBASIC] @@ -11,7 +18,6 @@ ADD_OBJ_FILES = \ lib/interface.o \ lib/interfaces.o \ lib/pidfile.o \ - lib/replace.o \ lib/signal.o \ lib/system.o \ lib/time.o \ @@ -50,6 +56,6 @@ ADD_OBJ_FILES = \ lib/server_mutex.o \ lib/idtree.o REQUIRED_SUBSYSTEMS = \ - LIBTDB CHARSET + LIBTDB CHARSET LIBREPLACE # End SUBSYSTEM LIBBASIC ############################## diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk index 3b2501a83b..639652ea55 100644 --- a/source4/lib/ldb/config.mk +++ b/source4/lib/ldb/config.mk @@ -37,6 +37,8 @@ ADD_OBJ_FILES = \ lib/ldb/common/ldb_utf8.o \ lib/ldb/common/ldb_alloc.o \ lib/ldb/common/ldb_debug.o +REQUIRED_SUBSYSTEMS = \ + LIBREPLACE # # End SUBSYSTEM LIBLDB ################################################ diff --git a/source4/lib/replace.c b/source4/lib/replace.c index 64234f7042..f3a0df6ef6 100644 --- a/source4/lib/replace.c +++ b/source4/lib/replace.c @@ -480,3 +480,36 @@ char *rep_inet_ntoa(struct in_addr ip) #endif } #endif + + +#ifndef HAVE_STRNDUP +/** + Some platforms don't have strndup. +**/ + char *strndup(const char *s, size_t n) +{ + char *ret; + + n = strnlen(s, n); + ret = malloc(n+1); + if (!ret) + return NULL; + memcpy(ret, s, n); + ret[n] = 0; + + return ret; +} +#endif + +#ifndef HAVE_STRNLEN +/** + Some platforms don't have strnlen +**/ + size_t strnlen(const char *s, size_t n) +{ + int i; + for (i=0; s[i] && i