diff options
author | Andrew Tridgell <tridge@samba.org> | 2006-08-23 04:53:47 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:16:34 -0500 |
commit | 309ef9069096ce09483e2f9a18f191fc53e1c7f4 (patch) | |
tree | dd85a81f6bd59c634a0620a4ad2929ad41999cc0 | |
parent | 36cb569e9be142f0b4a4e584a365b35e8bfa454d (diff) | |
download | samba-309ef9069096ce09483e2f9a18f191fc53e1c7f4.tar.gz samba-309ef9069096ce09483e2f9a18f191fc53e1c7f4.tar.bz2 samba-309ef9069096ce09483e2f9a18f191fc53e1c7f4.zip |
r17738: 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
(This used to be commit c2f6c217fb4a5c84499246480f00df40b0711074)
-rw-r--r-- | source4/lib/ldb/Makefile.in | 10 | ||||
-rw-r--r-- | source4/lib/ldb/config.mk | 12 | ||||
-rw-r--r-- | source4/lib/ldb/configure.in | 12 | ||||
-rw-r--r-- | source4/lib/ldb/ldb_tdb/ldb_pack.c | 14 | ||||
-rw-r--r-- | source4/lib/ldb/popt.m4 | 3 |
5 files changed, 23 insertions, 28 deletions
diff --git a/source4/lib/ldb/Makefile.in b/source4/lib/ldb/Makefile.in index 9de1131f2b..51227a29ed 100644 --- a/source4/lib/ldb/Makefile.in +++ b/source4/lib/ldb/Makefile.in @@ -12,7 +12,6 @@ VPATH = @srcdir@:@srcdir@/..:@POPTDIR@ srcdir = @srcdir@ builddir = @builddir@ SLAPD = @SLAPD@ -POPTOBJ = @POPTOBJ@ EXTRA_OBJ=@EXTRA_OBJ@ TESTS=test-tdb.sh @TESTS@ @@ -22,6 +21,9 @@ CFLAGS=-I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \ 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 @@ MODULES_OBJ=$(MODDIR)/operational.o $(MODDIR)/schema.o $(MODDIR)/rdn_name.o \ $(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 @@ LIBS = $(LDB_LIB)( $(OBJS) ) 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 @@ examples/ldifreader: examples/ldifreader.o $(LIBS) .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)") diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk index dfbf3db449..1f92cd5d62 100644 --- a/source4/lib/ldb/config.mk +++ b/source4/lib/ldb/config.mk @@ -140,6 +140,16 @@ PUBLIC_DEPENDENCIES = \ # 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 @@ OBJ_FILES = \ 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 # diff --git a/source4/lib/ldb/configure.in b/source4/lib/ldb/configure.in index 1e8e6a28e5..0571fb68e1 100644 --- a/source4/lib/ldb/configure.in +++ b/source4/lib/ldb/configure.in @@ -40,24 +40,18 @@ AC_CONFIG_HEADER(include/config.h) 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" diff --git a/source4/lib/ldb/ldb_tdb/ldb_pack.c b/source4/lib/ldb/ldb_tdb/ldb_pack.c index b2a004b99f..c6edf663ae 100644 --- a/source4/lib/ldb/ldb_tdb/ldb_pack.c +++ b/source4/lib/ldb/ldb_tdb/ldb_pack.c @@ -155,16 +155,6 @@ int ltdb_pack_data(struct ldb_module *module, 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 @@ int ltdb_unpack_data(struct ldb_module *module, 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 @@ int ltdb_unpack_data(struct ldb_module *module, 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; diff --git a/source4/lib/ldb/popt.m4 b/source4/lib/ldb/popt.m4 index 7c7969fa9d..558bfc73b1 100644 --- a/source4/lib/ldb/popt.m4 +++ b/source4/lib/ldb/popt.m4 @@ -19,11 +19,10 @@ if test x"$POPTDIR" = x; then 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) |