package/libtalloc: new package

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>
This commit is contained in:
David GOUARIN 2021-04-12 11:40:10 -05:00 committed by Thomas Petazzoni
parent 0a954d4412
commit f0d37e275a
6 changed files with 112 additions and 0 deletions

View 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/

View 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"

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,4 @@
# Locally calculated
sha256 ef4822d2fdafd2be8e0cabc3ec3c806ae29b8268e932c5e9a4cd5585f37f9f77 talloc-2.3.1.tar.gz
sha256 15c2767545d1e43dc35832736253bde5be956f8ffec0474a6d0f70349b646ed3 talloc.h
sha256 8742f2dad3aaf885c7b4b699c20bfa0e9edeab380689f91a88aa90af03e6947b pytalloc.h

View File

@ -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))