package/libtalloc: new package
authorDavid GOUARIN <dgouarin@gmail.com>
Mon, 12 Apr 2021 16:40:10 +0000 (11:40 -0500)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 29 Jul 2021 21:21:44 +0000 (23:21 +0200)
talloc is a hierarchical, reference counted memory pool system with destructors.
It is the core memory allocator used in Samba.

Signed-off-by: David GOUARIN <dgouarin@gmail.com>
Signed-off-by: Kalpesh Panchal <kalpesh.panchal@rockwellcollins.com>
Signed-off-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
DEVELOPERS
package/Config.in
package/libtalloc/Config.in [new file with mode: 0644]
package/libtalloc/libtalloc-cache.txt [new file with mode: 0644]
package/libtalloc/libtalloc.hash [new file with mode: 0644]
package/libtalloc/libtalloc.mk [new file with mode: 0644]

index cc830d4a2aa9abe2d8820af10753a82fe5bb262e..869f66f02813cf3922322542fdbf679f0046245c 100644 (file)
@@ -654,6 +654,7 @@ F:  package/x264/
 
 N:     David GOUARIN <dgouarin@gmail.com>
 F:     package/librelp/
+F:     package/libtalloc/
 
 N:     David Lechner <david@lechnology.com>
 F:     board/lego/ev3/
@@ -1788,6 +1789,7 @@ F:        package/libselinux/
 F:     package/libsemanage/
 F:     package/libsepol/
 F:     package/libssh2/
+F:     package/libtalloc/
 F:     package/libqmi/
 F:     package/lighttpd/
 F:     package/logrotate/
index adda6f5be9230c0a804227c760abc585dc71ea46..5941e35c051c3ea7023137ea7ab192239a4bea56 100644 (file)
@@ -1952,6 +1952,7 @@ menu "Other"
        source "package/libsigc/Config.in"
        source "package/libsigsegv/Config.in"
        source "package/libspatialindex/Config.in"
+       source "package/libtalloc/Config.in"
        source "package/libtasn1/Config.in"
        source "package/libtommath/Config.in"
        source "package/libtpl/Config.in"
diff --git a/package/libtalloc/Config.in b/package/libtalloc/Config.in
new file mode 100644 (file)
index 0000000..bb67112
--- /dev/null
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LIBTALLOC
+       bool "libtalloc"
+       depends on BR2_USE_MMU
+       depends on !BR2_STATIC_LIBS
+       help
+         talloc is a hierarchical, reference counted memory pool
+         system with destructors. It is the core memory allocator
+         used in Samba.
+
+         https://talloc.samba.org/talloc/doc/html/index.html
diff --git a/package/libtalloc/libtalloc-cache.txt b/package/libtalloc/libtalloc-cache.txt
new file mode 100644 (file)
index 0000000..a2b4485
--- /dev/null
@@ -0,0 +1,42 @@
+Checking simple C program: OK
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking for large file support without additional flags: OK
+Checking for -D_LARGE_FILES: OK
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: OK
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether we can use Linux thread-specific credentials: OK
+Checking whether setreuid is available: OK
+Checking whether setresuid is available: OK
+Checking whether seteuid is available: OK
+Checking whether fcntl locking is available: OK
+Checking whether fcntl lock supports open file description locks: OK
+Checking for the maximum value of the 'time_t' type: OK
+Checking whether the realpath function allows a NULL argument: OK
+Checking whether POSIX capabilities are available: OK
+Checking for ftruncate extend: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+getcwd takes a NULL argument: OK
+Checking uname sysname type: "Linux"
+Checking uname release type: "5.4.0"
+Checking uname version type: "#1 Tue Oct 1 00:00:00 UTC 2020"
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
+Checking errno of iconv for illegal multibyte sequence: "0"
+checking for clnt_create(): OK
+Checking for a 64-bit host to support lmdb: NO
diff --git a/package/libtalloc/libtalloc.hash b/package/libtalloc/libtalloc.hash
new file mode 100644 (file)
index 0000000..9d48a96
--- /dev/null
@@ -0,0 +1,4 @@
+# Locally calculated
+sha256  ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77  talloc-2.3.1.tar.gz
+sha256  15c2767545d1e43dc35832736253bde5be956f8ffec0474a6d0f70349b646ed3  talloc.h
+sha256  8742f2dad3aaf885c7b4b699c20bfa0e9edeab380689f91a88aa90af03e6947b  pytalloc.h
diff --git a/package/libtalloc/libtalloc.mk b/package/libtalloc/libtalloc.mk
new file mode 100644 (file)
index 0000000..fb382cf
--- /dev/null
@@ -0,0 +1,53 @@
+################################################################################
+#
+# libtalloc
+#
+################################################################################
+
+LIBTALLOC_VERSION = 2.3.1
+LIBTALLOC_SOURCE = talloc-$(LIBTALLOC_VERSION).tar.gz
+LIBTALLOC_SITE = https://www.samba.org/ftp/talloc
+LIBTALLOC_LICENSE = LGPL-3.0+, GPL-3.0+
+LIBTALLOC_LICENSE_FILES = talloc.h pytalloc.h
+LIBTALLOC_INSTALL_STAGING = YES
+
+# --with-libiconv= is unconditionally passed, even if libiconv is not
+# present. Indeed, waf will search for libiconv by default in
+# /usr/local. Because of a bug in some waf python script, /usr/local
+# is then used in many subsequent and unrelated checks, which
+# ultimately causes a failure when BR2_COMPILER_PARANOID_UNSAFE_PATH
+# is set.  However no need to set libiconv as a dependency of
+# libtalloc since it's optional.
+LIBTALLOC_CONF_OPTS += --cross-compile \
+               --cross-answers=$(@D)/cache.txt \
+               --hostcc=gcc \
+               --with-libiconv=$(STAGING_DIR)/usr
+
+ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
+LIBTALLOC_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`
+LIBTALLOC_LDFLAGS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`
+LIBTALLOC_DEPENDENCIES += libtirpc host-pkgconf
+endif
+
+ifeq ($(BR2_PACKAGE_PYTHON3),y)
+LIBTALLOC_DEPENDENCIES += host-python3 python3
+LIBTALLOC_CONF_ENV += \
+       PYTHON="$(HOST_DIR)/bin/python3" \
+       PYTHON_CONFIG="$(STAGING_DIR)/usr/bin/python3-config"
+# There isn't any --enable-python configuration option
+else
+LIBTALLOC_CONF_OPTS += --disable-python
+endif
+
+LIBTALLOC_WAF = ./buildtools/bin/waf
+
+# like samba4, libtalloc uses the waf build system which requires a
+# proper answers file to configure package before build
+define LIBTALLOC_POPULATE_WAF_CACHE
+       $(INSTALL) -m 0644 package/libtalloc/libtalloc-cache.txt $(@D)/cache.txt
+       echo 'Checking uname machine type: $(BR2_ARCH)' >> $(@D)/cache.txt
+endef
+
+LIBTALLOC_PRE_CONFIGURE_HOOKS += LIBTALLOC_POPULATE_WAF_CACHE
+
+$(eval $(waf-package))