From 55dbe80d0537ae2addf7bcd682372fe1829152a6 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 21 Aug 2009 09:25:57 +0200 Subject: talloc: add --enable-talloc-compat1 to build a compat library for talloc 1.x.x metze --- lib/talloc/compat/talloc_compat1.c | 51 +++++++++++++++++++++++++++++++++++++ lib/talloc/compat/talloc_compat1.m4 | 14 ++++++++++ lib/talloc/compat/talloc_compat1.mk | 21 +++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 lib/talloc/compat/talloc_compat1.c create mode 100644 lib/talloc/compat/talloc_compat1.m4 create mode 100644 lib/talloc/compat/talloc_compat1.mk (limited to 'lib/talloc/compat') diff --git a/lib/talloc/compat/talloc_compat1.c b/lib/talloc/compat/talloc_compat1.c new file mode 100644 index 00000000000..519e8c3a833 --- /dev/null +++ b/lib/talloc/compat/talloc_compat1.c @@ -0,0 +1,51 @@ +/* + Samba trivial allocation library - compat functions + + Copyright (C) Stefan Metzmacher 2009 + + ** NOTE! The following LGPL license applies to the talloc + ** library. This does NOT imply that all of Samba is released + ** under the LGPL + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . +*/ + +/* + * This file contains only function to build a + * compat talloc.so.1 library on top of talloc.so.2 + */ + +#include "replace.h" +#include "talloc.h" + +void *_talloc_reference(const void *context, const void *ptr); +void *_talloc_reference(const void *context, const void *ptr) { + return _talloc_reference_loc(context, ptr, + "Called from talloc compat1 " + "_talloc_reference"); +} + +void *_talloc_steal(const void *new_ctx, const void *ptr); +void *_talloc_steal(const void *new_ctx, const void *ptr) +{ + return talloc_reparent(talloc_parent(ptr), new_ctx, ptr); +} + +#undef talloc_free +int talloc_free(void *ptr); +int talloc_free(void *ptr) +{ + return talloc_unlink(talloc_parent(ptr), ptr); +} + diff --git a/lib/talloc/compat/talloc_compat1.m4 b/lib/talloc/compat/talloc_compat1.m4 new file mode 100644 index 00000000000..2ec530e0799 --- /dev/null +++ b/lib/talloc/compat/talloc_compat1.m4 @@ -0,0 +1,14 @@ +TALLOC_COMPAT1_MK="" +AC_SUBST(TALLOC_COMPAT1_MK) + +AC_ARG_ENABLE(talloc-compat1, + [AS_HELP_STRING([--enable-talloc-compat1], + [Build talloc 1.x.x compat library [default=no]])], + [ enable_talloc_compat1=$enableval ], + [ enable_talloc_compat1=no ] +) + +if test "x$enable_talloc_compat1" = x"yes"; then + TALLOC_COMPAT1_MK='include $(tallocdir)/compat/talloc_compat1.mk' +fi + diff --git a/lib/talloc/compat/talloc_compat1.mk b/lib/talloc/compat/talloc_compat1.mk new file mode 100644 index 00000000000..d1817f0f717 --- /dev/null +++ b/lib/talloc/compat/talloc_compat1.mk @@ -0,0 +1,21 @@ +talloccompatdir := $(tallocdir)/compat + +TALLOC_COMPAT1_VERSION_MAJOR = 1 +TALLOC_COMPAT1_OBJ = $(talloccompatdir)/talloc_compat1.o + +TALLOC_COMPAT1_SOLIB = libtalloc-compat1-$(TALLOC_VERSION).$(SHLIBEXT) +TALLOC_COMPAT1_SONAME = libtalloc.$(SHLIBEXT).$(TALLOC_COMPAT1_VERSION_MAJOR) + +$(TALLOC_COMPAT1_SOLIB): $(TALLOC_COMPAT1_OBJ) $(TALLOC_SOLIB) + $(SHLD) $(SHLD_FLAGS) -o $@ $(TALLOC_COMPAT1_OBJ) \ + $(TALLOC_SOLIB) $(SONAMEFLAG)$(TALLOC_COMPAT1_SONAME) + +all:: $(TALLOC_COMPAT1_SOLIB) + +install:: + ${INSTALLCMD} -d $(DESTDIR)$(libdir) + ${INSTALLCMD} -m 755 $(TALLOC_COMPAT1_SOLIB) $(DESTDIR)$(libdir) + +clean:: + rm -f $(TALLOC_COMPAT1_OBJ) $(TALLOC_COMPAT1_SOLIB) + -- cgit