[Buildroot] [PATCH 1/2] package/libdispatch: add libdispatch package

Alsey Miller alseycmiller at gmail.com
Tue Mar 29 21:57:14 UTC 2022


This patch successfully builds with https://patchwork.ozlabs.org/project/buildroot/patch/20220322232224.2842266-5-james.hilliard1@gmail.com/ <https://patchwork.ozlabs.org/project/buildroot/patch/20220322232224.2842266-5-james.hilliard1@gmail.com/> applied. Although its not required for this package, I suggest merging https://patchwork.ozlabs.org/project/buildroot/patch/20220329145904.63900-1-andreynech@gmail.com/ <https://patchwork.ozlabs.org/project/buildroot/patch/20220329145904.63900-1-andreynech@gmail.com/> as well.

> On Mar 29, 2022, at 2:54 PM, Alsey Coleman Miller <alseycmiller at gmail.com> wrote:
> 
> Signed-off-by: Alsey Coleman Miller <alseycmiller at gmail.com>
> ---
> DEVELOPERS                           |  3 ++
> package/Config.in                    |  1 +
> package/libdispatch/Config.in        | 43 +++++++++++++++++++++++
> package/libdispatch/libdispatch.hash |  1 +
> package/libdispatch/libdispatch.mk   | 52 ++++++++++++++++++++++++++++
> 5 files changed, 100 insertions(+)
> create mode 100644 package/libdispatch/Config.in
> create mode 100644 package/libdispatch/libdispatch.hash
> create mode 100644 package/libdispatch/libdispatch.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index a66b9d7eee..555ec0175b 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -122,6 +122,9 @@ F:	boot/opensbi/
> F:	configs/hifive_unleashed_defconfig
> F:	package/xen/
> 
> +N:	Alsey Miller <alseycmiller at gmail.com>
> +F:	package/libdispatch/
> +
> N:	Alvaro G. M <alvaro.gamez at hazent.com>
> F:	package/dcron/
> F:	package/libxmlrpc/
> diff --git a/package/Config.in b/package/Config.in
> index 0d5d763180..e217ff5282 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1968,6 +1968,7 @@ menu "Other"
> 	source "package/libcrossguid/Config.in"
> 	source "package/libcsv/Config.in"
> 	source "package/libdaemon/Config.in"
> +	source "package/libdispatch/Config.in"
> 	source "package/libeastl/Config.in"
> 	source "package/libee/Config.in"
> 	source "package/libev/Config.in"
> diff --git a/package/libdispatch/Config.in b/package/libdispatch/Config.in
> new file mode 100644
> index 0000000000..f4fa5e47fb
> --- /dev/null
> +++ b/package/libdispatch/Config.in
> @@ -0,0 +1,43 @@
> +config BR2_PACKAGE_LIBDISPATCH_ARCH_SUPPORTS
> +	bool
> +	default y if BR2_x86_64
> +	default y if BR2_aarch64
> +	default y if BR2_arm
> +	default y if BR2_powerpc
> +	default y if BR2_mips
> +	default y if BR2_mipsel
> +	default y if BR2_mips64
> +	default y if BR2_mips64el
> +	default y if BR2_RISCV_64
> +
> +config BR2_PACKAGE_LIBDISPATCH_TARGET_ARCH
> +	string
> +	default "aarch64" if BR2_aarch64
> +	default "armv5" if BR2_ARM_CPU_ARMV5
> +	default "armv6" if BR2_ARM_CPU_ARMV6
> +	default "armv7" if BR2_ARM_CPU_ARMV7A
> +	default "x86_64" if BR2_x86_64
> +	default "powerpc" if BR2_powerpc
> +	default "mips" if BR2_mips
> +	default "mipsel" if BR2_mipsel
> +	default "mips64" if BR2_mips64
> +	default "mips64el" if BR2_mips64el
> +	default "riscv64" if BR2_RISCV_64
> +
> +config BR2_PACKAGE_LIBDISPATCH
> +	bool "libdispatch"
> +	depends on BR2_PACKAGE_LIBDISPATCH_ARCH_SUPPORTS
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_USES_GLIBC
> +	select BR2_PACKAGE_LIBBSD
> +	
> +	help
> +	  Grand Central Dispatch (GCD or libdispatch) provides comprehensive support for concurrent code execution on multicore hardware.
> +
> +	  http://swift.org
> +
> +comment "libdispatch needs a toolchain w/ Glibc, wchar, threads, C++, dynamic library"
> +	depends on BR2_PACKAGE_LIBDISPATCH_ARCH_SUPPORTS
> +	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
> +		|| BR2_STATIC_LIBS || !BR2_USE_WCHAR
> \ No newline at end of file
> diff --git a/package/libdispatch/libdispatch.hash b/package/libdispatch/libdispatch.hash
> new file mode 100644
> index 0000000000..64543b56eb
> --- /dev/null
> +++ b/package/libdispatch/libdispatch.hash
> @@ -0,0 +1 @@
> +sha256 d2bbfb5b98d129caa2c6bd7662c850bf57cb434572d09844b56641c4558906ab libdispatch-swift-5.6-RELEASE.tar.gz
> diff --git a/package/libdispatch/libdispatch.mk b/package/libdispatch/libdispatch.mk
> new file mode 100644
> index 0000000000..79fc4f7780
> --- /dev/null
> +++ b/package/libdispatch/libdispatch.mk
> @@ -0,0 +1,52 @@
> +### Grand Central Dispatch
> +LIBDISPATCH_VERSION = 5.6
> +LIBDISPATCH_SITE = $(call github,apple,swift-corelibs-libdispatch,swift-$(LIBDISPATCH_VERSION)-RELEASE)
> +LIBDISPATCH_LICENSE = Apache-2.0
> +LIBDISPATCH_LICENSE_FILES = LICENSE
> +LIBDISPATCH_INSTALL_STAGING = YES
> +LIBDISPATCH_SUPPORTS_IN_SOURCE_BUILD = NO
> +LIBDISPATCH_DEPENDENCIES = host-clang host-lld libbsd
> +
> +LIBDISPATCH_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LIBDISPATCH_TARGET_ARCH))
> +LIBDISPATCH_CLANG_PATH = $(HOST_DIR)/bin
> +
> +ifeq ($(LIBDISPATCH_TARGET_ARCH),armv7)
> +LIBDISPATCH_TARGET_NAME		= armv7-unknown-linux-gnueabihf
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),armv6)
> +LIBDISPATCH_TARGET_NAME		= armv6-unknown-linux-gnueabihf
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),armv5)
> +LIBDISPATCH_TARGET_NAME		= armv5-unknown-linux-gnueabi
> +else
> +LIBDISPATCH_TARGET_NAME		= $(LIBDISPATCH_TARGET_ARCH)-unknown-linux-gnu
> +endif
> +
> +ifeq ($(LIBDISPATCH_TARGET_ARCH),armv5)
> +LIBDISPATCH_EXTRA_FLAGS		= -march=armv5te
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),riscv64)
> +LIBDISPATCH_EXTRA_FLAGS		= -mno-relax -mabi=lp64 -march=rv64imac -mfloat-abi=soft
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),mipsel)
> +LIBDISPATCH_EXTRA_FLAGS		= -msoft-float
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),mips64el)
> +LIBDISPATCH_EXTRA_FLAGS		= -msoft-float
> +else ifeq ($(LIBDISPATCH_TARGET_ARCH),powerpc)
> +LIBDISPATCH_EXTRA_FLAGS		= -mcpu=7400
> +else
> +LIBDISPATCH_EXTRA_FLAGS		= 
> +endif
> +
> +LIBDISPATCH_CONF_OPTS += \
> +	-DLibRT_LIBRARIES="${STAGING_DIR}/usr/lib/librt.a" \
> +	-DCMAKE_C_COMPILER=$(LIBDISPATCH_CLANG_PATH)/clang \
> +	-DCMAKE_CXX_COMPILER=$(LIBDISPATCH_CLANG_PATH)/clang++ \
> +	-DCMAKE_C_FLAGS="-w -fuse-ld=lld $(LIBDISPATCH_EXTRA_FLAGS) -target $(LIBDISPATCH_TARGET_NAME) --sysroot=$(STAGING_DIR) -I$(STAGING_DIR)/usr/include -B$(STAGING_DIR)/usr/lib -B$(HOST_DIR)/lib/gcc/$(GNU_TARGET_NAME)/$(call qstrip,$(BR2_GCC_VERSION)) -L$(HOST_DIR)/lib/gcc/$(GNU_TARGET_NAME)/$(call qstrip,$(BR2_GCC_VERSION))" \
> +	-DCMAKE_C_LINK_FLAGS="-target $(LIBDISPATCH_TARGET_NAME) --sysroot=$(STAGING_DIR)" \
> +	-DCMAKE_CXX_FLAGS="-w -fuse-ld=lld $(LIBDISPATCH_EXTRA_FLAGS) -target $(LIBDISPATCH_TARGET_NAME) --sysroot=$(STAGING_DIR) -I$(STAGING_DIR)/usr/include -I$(HOST_DIR)/$(GNU_TARGET_NAME)/include/c++/$(call qstrip,$(BR2_GCC_VERSION))/ -I$(HOST_DIR)/$(GNU_TARGET_NAME)/include/c++/$(call qstrip,$(BR2_GCC_VERSION))/$(GNU_TARGET_NAME) -B$(STAGING_DIR)/usr/lib -B$(HOST_DIR)/lib/gcc/$(GNU_TARGET_NAME)/$(call qstrip,$(BR2_GCC_VERSION)) -L$(HOST_DIR)/lib/gcc/$(GNU_TARGET_NAME)/$(call qstrip,$(BR2_GCC_VERSION))" \
> +	-DCMAKE_CXX_LINK_FLAGS="-target $(LIBDISPATCH_TARGET_NAME) --sysroot=$(STAGING_DIR)" \
> +
> +define LIBDISPATCH_INSTALL_TARGET_CMDS
> +	(cd $(LIBDISPATCH_BUILDDIR) && \
> +	cp ./*.so $(TARGET_DIR)/usr/lib/ \
> +	)
> +endef
> +
> +$(eval $(cmake-package))
> -- 
> 2.30.2
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.buildroot.org/pipermail/buildroot/attachments/20220329/14762e71/attachment-0001.html>


More information about the buildroot mailing list