svn commit: samba r17738 - in branches/SAMBA_4_0/source/lib/ldb: . ldb_tdb

tridge at samba.org tridge at samba.org
Wed Aug 23 04:53:48 GMT 2006


Author: tridge
Date: 2006-08-23 04:53:47 +0000 (Wed, 23 Aug 2006)
New Revision: 17738

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17738

Log:

solving the seemingly trivial problem of timegm() being missing on
some systems requires quite a large change in ldb. The core problem is
that ldb doesn't have its own equivalent of lib/replace/, so we have
no sane place to put things like timegm.c

This patch moves part of lib/replace/ from Samba4 into ldb, and the
next patch will remove those parts from Samba4. We will probably need
to similarly move parts of lib/replace/ into lib/talloc/ and lib/tdb/,
so that at each level the libraries have replacements for the
functions they need, but higher level libraries don't need to
re-include replacements if a lower level library already replaces the
function

Added:
   branches/SAMBA_4_0/source/lib/ldb/replace/
Modified:
   branches/SAMBA_4_0/source/lib/ldb/Makefile.in
   branches/SAMBA_4_0/source/lib/ldb/config.mk
   branches/SAMBA_4_0/source/lib/ldb/configure.in
   branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c
   branches/SAMBA_4_0/source/lib/ldb/popt.m4


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/Makefile.in
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/Makefile.in	2006-08-23 02:51:40 UTC (rev 17737)
+++ branches/SAMBA_4_0/source/lib/ldb/Makefile.in	2006-08-23 04:53:47 UTC (rev 17738)
@@ -12,7 +12,6 @@
 srcdir = @srcdir@
 builddir = @builddir@
 SLAPD = @SLAPD@
-POPTOBJ = @POPTOBJ@
 EXTRA_OBJ=@EXTRA_OBJ@
 TESTS=test-tdb.sh @TESTS@
 
@@ -22,6 +21,9 @@
 
 LIB_FLAGS=-Llib -lldb @LIBS@
 
+REPDIR=replace
+REPLACE_OBJ=$(REPDIR)/replace.o $(REPDIR)/timegm.o
+
 TDBDIR=tdb
 TDB_OBJ=$(TDBDIR)/common/tdb.o $(TDBDIR)/common/dump.o \
 	$(TDBDIR)/common/io.o $(TDBDIR)/common/lock.o \
@@ -49,7 +51,7 @@
 	   $(MODDIR)/objectclass.o \
 	   $(MODDIR)/paged_results.o $(MODDIR)/sort.o $(MODDIR)/asq.o
 
-OBJS = $(MODULES_OBJ) $(COMMON_OBJ) $(LDB_TDB_OBJ) $(TDB_OBJ) $(TALLOC_OBJ) $(EXTRA_OBJ) $(POPTOBJ)
+OBJS = $(MODULES_OBJ) $(COMMON_OBJ) $(LDB_TDB_OBJ) $(TDB_OBJ) $(TALLOC_OBJ) $(EXTRA_OBJ) $(REPLACE_OBJ)
 
 LDB_LIB = lib/libldb.a
 
@@ -59,7 +61,7 @@
 
 EXAMPLES = examples/ldbreader examples/ldifreader
 
-DIRS = lib bin common ldb_tdb ldb_ldap ldb_sqlite3 modules tools examples tdb talloc
+DIRS = lib bin common replace ldb_tdb ldb_ldap ldb_sqlite3 modules tools examples tdb talloc
 
 all: dirs $(OBJS) $(LIBS) $(BINS) $(EXAMPLES) manpages
 
@@ -106,7 +108,7 @@
 .SUFFIXES: .1 .1.xml .3 .3.xml .xml .html
 
 manpages:
-	$(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)"
+	@$(srcdir)/docs/builddocs.sh "$(XSLTPROC)" "$(srcdir)"
 
 doxygen:
 	test -z "$(DOXYGEN)" || (cd $(srcdir) && "$(DOXYGEN)")

Modified: branches/SAMBA_4_0/source/lib/ldb/config.mk
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/config.mk	2006-08-23 02:51:40 UTC (rev 17737)
+++ branches/SAMBA_4_0/source/lib/ldb/config.mk	2006-08-23 04:53:47 UTC (rev 17738)
@@ -140,6 +140,16 @@
 # End MODULE ldb_tdb
 ################################################
 
+################################################
+# Start MODULE ldb_replace
+[MODULE::ldb_replace]
+SUBSYSTEM = ldb
+OBJ_FILES = \
+		replace/timegm.o \
+		replace/replace.o
+# End MODULE ldb_replace
+################################################
+
 ./lib/ldb/common/ldb_modules.o: lib/ldb/common/ldb_modules.c Makefile
 	@echo Compiling $<
 	@$(CC) $(CFLAGS) $(PICFLAG) -DMODULESDIR=\"$(MODULESDIR)/ldb\" -DSHLIBEXT=\"$(SHLIBEXT)\" -c $< -o $@
@@ -166,7 +176,7 @@
 		common/ldb_controls.o \
 		common/qsort.o
 PUBLIC_DEPENDENCIES = \
-		LIBREPLACE LIBTALLOC 
+		LIBREPLACE LIBTALLOC
 MANPAGE = man/ldb.3
 PUBLIC_HEADERS = include/ldb.h include/ldb_errors.h
 #

Modified: branches/SAMBA_4_0/source/lib/ldb/configure.in
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/configure.in	2006-08-23 02:51:40 UTC (rev 17737)
+++ branches/SAMBA_4_0/source/lib/ldb/configure.in	2006-08-23 04:53:47 UTC (rev 17738)
@@ -40,24 +40,18 @@
 AC_CHECK_LIB(dl, dlopen)
 AC_CHECK_FUNCS(dlopen dlsym dlclose)
 
-AC_CHECK_TYPE(uint8_t, unsigned char)
-AC_CHECK_TYPE(int64_t, long long)
-AC_CHECK_TYPE(uint64_t, unsigned long long)
-
-AC_CHECK_TYPE(comparison_fn_t, 
-[AC_DEFINE(HAVE_COMPARISON_FN_T, 1,[Whether or not we have comparison_fn_t])])
-
 SHLIBEXT="so" # Should be set based on OS later on
 AC_SUBST(SHLIBEXT)
 
 AC_DEFINE_UNQUOTED(MODULESDIR, LIBDIR "/ldb" , [Modules directory] )
 AC_SUBST(MODULESDIR)
 
-sinclude(popt.m4)
-
 TESTS=""
 EXTRA_OBJ=""
 
+sinclude(popt.m4)
+sinclude(replace/config.m4)
+
 sinclude(ldap.m4)
 if test x"$with_ldap_support" = x"yes"; then
    LIBS="$LIBS -L/usr/lib -llber -lldap"

Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c	2006-08-23 02:51:40 UTC (rev 17737)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c	2006-08-23 04:53:47 UTC (rev 17738)
@@ -155,16 +155,6 @@
 	return 0;
 }
 
-/* using this means we can compile standalone on broken systems like
-   MacOSX 10.4 */
-static size_t ldb_strnlen(const char *s, size_t n)
-{
-	int i;
-	for (i=0; s[i] && i<n; i++)
-		/* noop */ ;
-	return i;
-}
-
 /*
   unpack a ldb message from a linear buffer in TDB_DATA
 
@@ -201,7 +191,7 @@
 		break;
 
 	case LTDB_PACKING_FORMAT:
-		len = ldb_strnlen((char *)p, remaining);
+		len = strnlen((char *)p, remaining);
 		if (len == remaining) {
 			errno = EIO;
 			goto failed;
@@ -244,7 +234,7 @@
 			errno = EIO;
 			goto failed;
 		}
-		len = ldb_strnlen((char *)p, remaining-6);
+		len = strnlen((char *)p, remaining-6);
 		if (len == remaining-6) {
 			errno = EIO;
 			goto failed;

Modified: branches/SAMBA_4_0/source/lib/ldb/popt.m4
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/popt.m4	2006-08-23 02:51:40 UTC (rev 17737)
+++ branches/SAMBA_4_0/source/lib/ldb/popt.m4	2006-08-23 04:53:47 UTC (rev 17738)
@@ -19,11 +19,10 @@
         AC_CHECK_HEADERS(popt.h)
         AC_CHECK_LIB(popt, poptGetContext)
 else
-	POPTOBJ="findme.o popt.o poptconfig.o popthelp.o poptparse.o"
+	EXTRA_OBJ="$EXTRA_OBJ findme.o popt.o poptconfig.o popthelp.o poptparse.o"
 	CFLAGS="$CFLAGS -I$POPTDIR"
 fi
 
 AC_CHECK_HEADERS([float.h alloca.h])
 AC_CHECK_FUNCS(strerror)
-AC_SUBST(POPTOBJ)
 AC_SUBST(POPTDIR)



More information about the samba-cvs mailing list