initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,94 @@
From 702697cafcec735e55f075594a2990204c8ea17d Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Tue, 10 Aug 2021 18:01:48 +0200
Subject: [PATCH] Add --disable-{demo,testsuite} options
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Allow the user to disable demo and testsuite to avoid the following
build failures on arc and riscv32:
latency.c: In function 'display':
latency.c:326:21: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'time_t' {aka 'long long int'} [-Werror=format=]
326 | ("RTT| %.2ld:%.2ld:%.2ld (%s, %Ld us period, "
| ~~~~^
| |
| long int
| %.2lld
327 | "priority %d)\n", dt / 3600,
| ~~~~~~~~~
| |
| time_t {aka long long int}
altency.c: In function display:
altency.c:262:21: error: format %ld expects argument of type long int, but argument 2 has type time_t {aka long long int} [-Werror=format=]
262 | ("RTT| %.2ld:%.2ld:%.2ld (%s, %Ld us period, "
| ~~~~^
| |
| long int
| %.2lld
263 | "priority %d)\n", dt / 3600,
| ~~~~~~~~~
| |
| time_t {aka long long int}
Fixes:
- http://autobuild.buildroot.org/results/448efe22e8fe058a1b354a3c124874e30b9ce138
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Makefile.am | 12 ++++++++++--
configure.ac | 12 ++++++++++++
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 891e53f66..604644277 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,9 +6,17 @@ SUBDIRS = \
config \
include \
scripts \
- testsuite \
- utils \
+ utils
+
+if XENO_ENABLE_DEMO
+SUBDIRS += \
demo
+endif
+
+if XENO_ENABLE_TESTSUITE
+SUBDIRS += \
+ testsuite
+endif
EXTRA_DIST = kernel debian
diff --git a/configure.ac b/configure.ac
index bd5fd5ba9..29dfd16e5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -200,6 +200,18 @@ test \! x$debug_mode = x && AC_DEFINE(CONFIG_XENO_DEBUG,1,[config])
AM_CONDITIONAL(XENO_DEBUG_FULL,[test x$debug_mode = xfull])
test x$debug_mode = xfull && AC_DEFINE(CONFIG_XENO_DEBUG_FULL,1,[config])
+dnl Demo (default: on)
+
+AC_ARG_ENABLE(demo,
+ AS_HELP_STRING([--disable-demo], [Disable demo]))
+AM_CONDITIONAL(XENO_ENABLE_DEMO,[test x$enable_demo != xno])
+
+dnl Testsuite (default: on)
+
+AC_ARG_ENABLE(testsuite,
+ AS_HELP_STRING([--disable-testsuite], [Disable testsuite]))
+AM_CONDITIONAL(XENO_ENABLE_TESTSUITE,[test x$enable_testsuite != xno])
+
dnl Low resolution clock (default: off)
unset lores_clock
--
2.30.2
+219
View File
@@ -0,0 +1,219 @@
config BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
bool
default y if BR2_i386
default y if BR2_x86_64
default y if BR2_powerpc
default y if BR2_arm && !BR2_ARM_CPU_ARMV7M && !BR2_ARM_CPU_ARMV8A
comment "xenomai needs a glibc or uClibc toolchain w/ threads"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
config BR2_PACKAGE_XENOMAI
bool "Xenomai Userspace"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_TOOLCHAIN_HAS_THREADS
# uses <error.h>, __WORDSIZE and bits/local_lim.h
depends on !BR2_TOOLCHAIN_USES_MUSL
help
Real-Time Framework for Linux
http://www.xenomai.org
Xenomai is split in two parts: a kernel part and an
userspace part.
This package contains the userspace part, which consists
mainly in libraries to write userspace real-time programs
that interact with the in-kernel Xenomai real-time core.
For those libraries to work, you need a Xenomai-enabled
kernel. This is possible in two ways:
- if you compile your kernel with Buildroot, you need to go
to Linux Kernel -> Linux Kernel Extensions to enable the
Xenomai extension.
- if you compile your kernel outside of Buildroot, you need
to make sure that it is Xenomai-enabled.
Finally, if you are using a static /dev, make sure to
uncomment the Xenomai entries listed in
target/generic/device_table_dev.txt.
if BR2_PACKAGE_XENOMAI
choice
bool "Xenomai version"
help
Make sure that the selected version has a patch for your
selected Linux kernel. If it does not, download and select a
patch manually with BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH,
in the Linux Kernel -> Linux Kernel Extensions menu.
config BR2_PACKAGE_XENOMAI_LATEST_VERSION
bool "Latest version (3.0.10)"
config BR2_PACKAGE_XENOMAI_CUSTOM_VERSION
bool "Custom version"
config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
bool "Custom tarball"
config BR2_PACKAGE_XENOMAI_CUSTOM_GIT
bool "Custom Git repository"
endchoice
config BR2_PACKAGE_XENOMAI_REPOSITORY
string "URL of custom repository"
default "https://gitlab.denx.de/Xenomai/xenomai.git"
depends on BR2_PACKAGE_XENOMAI_CUSTOM_GIT
config BR2_PACKAGE_XENOMAI_VERSION
string "Custom Xenomai version" if \
!BR2_PACKAGE_XENOMAI_LATEST_VERSION && \
!BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
default "3.0.10" if BR2_PACKAGE_XENOMAI_LATEST_VERSION
default "custom" if BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
config BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL
string "URL of custom tarball"
depends on BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL
choice
prompt "Xenomai core"
default BR2_PACKAGE_XENOMAI_MERCURY
help
Select the Xenomai core: dual kernel (Cobalt)
or native Linux Kernel (Mercury).
config BR2_PACKAGE_XENOMAI_MERCURY
bool "Mercury"
depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
help
Select Mercury core for the Xenomai userspace.
You want to use it if you have the native Linux Kernel.
config BR2_PACKAGE_XENOMAI_COBALT
bool "Cobalt"
depends on BR2_PACKAGE_XENOMAI_COBALT_ARCH_SUPPORTS
help
Select Cobalt core (dual kernel) for the Xenomai
userspace. Use this if you use a Xenomai-patched
Linux kernel.
If you want to use Cobalt core, your kernel must have
the Adeos and Xenomai patches applied to it. You can
add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
in the Linux Kernel Extensions menu.
endchoice
config BR2_PACKAGE_XENOMAI_ENABLE_SMP
bool "Enable SMP support"
default y
# SMP not supported below armv6
depends on !BR2_ARM_CPU_ARMV4 && !BR2_ARM_CPU_ARMV5
help
This option enables SMP support in Xenomai userspace.
If this option is turned on while no SMP support is enabled
in the kernel, things will still work. However, if SMP is
enabled in the kernel but this option is not turned on,
Xenomai applications will complain with:
feature mismatch: missing="smp/nosmp"
Please refer to this troubleshooting guide for more
information:
http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#feature_mismatch_missing8221smpnosmp8221
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
bool "Enable registry"
depends on !BR2_STATIC_LIBS # libfuse
depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
depends on BR2_USE_MMU # libfuse
select BR2_PACKAGE_LIBFUSE
help
Xenomai APIs can export their internal state through a
pseudo-filesystem, whose files may be read to obtain
information about the existing real-time objects, such as
tasks, semaphores, message queues and so on.
comment "registry needs a toolchain w/ threads, dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH
string "Custom registry root path"
depends on BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
help
Specify the root path of the registry here.
To use the Xenomai default (currently: /var/run/xenomai),
leave this option empty.
config BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS
string "Additional configure options"
help
Specify any additional options to pass to the configure
script here. See Xenomai documentation for details.
config BR2_PACKAGE_XENOMAI_TESTSUITE
bool "Install testsuite"
help
This option allows to install the Xenomai test programs.
config BR2_PACKAGE_XENOMAI_RTCAN
bool "RTCan utilities"
help
This option allows to install the Xenomai RT-CAN utilities.
config BR2_PACKAGE_XENOMAI_ANALOGY
bool "Analogy libs and utils"
help
This option allows to install the Xenomai Analogy utilities
and libraries
menu "Skin selection"
config BR2_PACKAGE_XENOMAI_NATIVE_SKIN
bool "Alchemy (native) skin"
default y
help
This option allows to install the Alchemy Xenomai skin,
previously called 'native'
config BR2_PACKAGE_XENOMAI_POSIX_SKIN
bool "POSIX skin"
default y
help
This option allows to install the POSIX Xenomai skin
config BR2_PACKAGE_XENOMAI_PSOS_SKIN
bool "pSOS skin"
help
This option allows to install the pSOS Xenomai skin
config BR2_PACKAGE_XENOMAI_RTAI_SKIN
bool "RTAI skin"
help
This option allows to install the RTAI Xenomai skin
config BR2_PACKAGE_XENOMAI_UITRON_SKIN
bool "uITRON skin"
help
This option allows to install the uITRON Xenomai skin
config BR2_PACKAGE_XENOMAI_VRTX_SKIN
bool "VRTX skin"
help
This option allows to install the VRTX Xenomai skin
config BR2_PACKAGE_XENOMAI_VXWORKS_SKIN
bool "VxWorks skin"
help
This option allows to install the VxWorks Xenomai skin
endmenu
endif
+17
View File
@@ -0,0 +1,17 @@
# Locally computed;
sha256 080f893d6ab8e3065285fbb482695477a0502b9490dccd1f744cebaac94691e5 xenomai-3.0.10.tar.bz2
sha256 d37ebe86bf618942dad958927c44403f9b02fbebb3071a4a08408ccbdab5290f debian/copyright
sha256 f3380321da72ff509bf6939aa80e6d02fd22268f5c705137b34c205b39bc63a0 include/COPYING
sha256 d6b6d8ed1b12309085caf1cf775ea4acdad3288c7f7d993c2502bd19c87e4764 kernel/cobalt/COPYING
sha256 d6b6d8ed1b12309085caf1cf775ea4acdad3288c7f7d993c2502bd19c87e4764 kernel/cobalt/posix/COPYING
sha256 9c90501baa30534ffed6b39eef413bd1727170ef691fd9768dc8644c3042df54 kernel/cobalt/rtdm/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/alchemy/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/analogy/COPYING
sha256 0519083691511d71408f8c9a2794fa2f6ad13a5eec00717f4572b54d18d6f9da lib/boilerplate/iniparser/LICENSE
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/boilerplate/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/cobalt/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/copperplate/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/psos/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/smokey/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/trank/COPYING
sha256 eea173a556abac0370461e57e12aab266894ea6be3874c2be05fd87871f75449 lib/vxworks/COPYING
+166
View File
@@ -0,0 +1,166 @@
################################################################################
#
# xenomai
#
################################################################################
XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION))
ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL),y)
XENOMAI_TARBALL = $(call qstrip,$(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL))
XENOMAI_SOURCE = $(notdir $(XENOMAI_TARBALL))
XENOMAI_SITE = $(patsubst %/,%,$(dir $(XENOMAI_TARBALL)))
else ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_GIT),y)
XENOMAI_SITE = $(call qstrip,$(BR2_PACKAGE_XENOMAI_REPOSITORY))
XENOMAI_SITE_METHOD = git
else
XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2
XENOMAI_SITE = http://xenomai.org/downloads/xenomai/stable
endif
# We're patching configure.ac
XENOMAI_AUTORECONF = YES
# Exclude all from the hash check, but the latest version.
ifeq ($(BR2_PACKAGE_XENOMAI)$(BR2_PACKAGE_XENOMAI_LATEST_VERSION),y)
BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE)
endif
XENOMAI_LICENSE = GPL-2.0+ with exception (headers), LGPL-2.1+ (libraries), GPL-2.0+ (kernel), GFDL-1.2+ (docs), GPL-2.0 (ipipe patch, can driver)
# GFDL is not included but refers to gnu.org
XENOMAI_LICENSE_FILES = debian/copyright include/COPYING kernel/cobalt/COPYING \
kernel/cobalt/posix/COPYING kernel/cobalt/rtdm/COPYING \
lib/alchemy/COPYING lib/analogy/COPYING \
lib/boilerplate/iniparser/LICENSE lib/boilerplate/COPYING \
lib/cobalt/COPYING lib/copperplate/COPYING lib/psos/COPYING \
lib/smokey/COPYING lib/trank/COPYING lib/vxworks/COPYING
XENOMAI_DEPENDENCIES = host-pkgconf
XENOMAI_INSTALL_STAGING = YES
XENOMAI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-user
XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user
XENOMAI_CONF_OPTS += \
--disable-demo \
--disable-testsuite \
--includedir=/usr/include/xenomai/
ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y)
XENOMAI_CONF_OPTS += --with-core=mercury
else
XENOMAI_CONF_OPTS += --with-core=cobalt
endif
ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_SMP),y)
XENOMAI_CONF_OPTS += --enable-smp
else
XENOMAI_CONF_OPTS += --disable-smp
endif
ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY),y)
XENOMAI_DEPENDENCIES += libfuse
XENOMAI_REGISTRY_PATH = $(call qstrip,$(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH))
ifeq ($(XENOMAI_REGISTRY_PATH),)
XENOMAI_CONF_OPTS += --enable-registry
else
XENOMAI_CONF_OPTS += --enable-registry=$(XENOMAI_REGISTRY_PATH)
endif
else
XENOMAI_CONF_OPTS += --disable-registry
endif
XENOMAI_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS))
# Some of these files may be desired by some users -- at that point specific
# config options need to be added to keep a particular set.
define XENOMAI_REMOVE_UNNEEDED_FILES
for i in xeno xeno-config xeno-info wrap-link.sh ; do \
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
done
for i in cobalt modechk ; do \
rm -f $(TARGET_DIR)/usr/lib/$$i.wrappers ; \
done
for i in autotune corectl hdb rtnet nomaccfg rtcfg rtifconfig \
rtiwconfig rtping rtroute tdmacfg rtps slackspot version; do \
rm -f $(TARGET_DIR)/usr/sbin/$$i ; \
done
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES
ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),)
define XENOMAI_REMOVE_TESTSUITE
rm -rf $(TARGET_DIR)/usr/share/xenomai/
for i in clocktest gpiotest latency smokey spitest switchtest \
xeno-test-run-wrapper dohell xeno-test-run xeno-test ; do \
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
done
rm -rf $(TARGET_DIR)/usr/demo/
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_TESTSUITE
endif
ifeq ($(BR2_PACKAGE_XENOMAI_RTCAN),)
define XENOMAI_REMOVE_RTCAN_PROGS
for i in rtcanrecv rtcansend ; do \
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
done
rm -f $(TARGET_DIR)/usr/sbin/rtcanconfig
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_RTCAN_PROGS
endif
ifeq ($(BR2_PACKAGE_XENOMAI_ANALOGY),)
define XENOMAI_REMOVE_ANALOGY
for i in cmd_read cmd_write cmd_bits insn_read insn_write insn_bits \
wf_generate ; do \
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
done
for i in analogy_config analogy_calibrate ; do \
rm -f $(TARGET_DIR)/usr/sbin/$$i ; \
done
rm -f $(TARGET_DIR)/usr/lib/libanalogy.*
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_ANALOGY
endif
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_NATIVE_SKIN),,alchemy)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_POSIX_SKIN),,posix)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_PSOS_SKIN),,psos)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_RTAI_SKIN),,rtai)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_TESTSUITE),,smokey)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_UITRON_SKIN),,uitron)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VXWORKS_SKIN),,vxworks)
XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VRTX_SKIN),,vrtx)
define XENOMAI_REMOVE_LIBS
for i in $(XENOMAI_REMOVE_LIBS_LIST) ; do \
rm -f $(TARGET_DIR)/usr/lib/lib$$i.* ; \
done
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_LIBS
define XENOMAI_DEVICES
/dev/rtheap c 666 0 0 10 254 0 0 -
/dev/rtscope c 666 0 0 10 253 0 0 -
/dev/rtp c 666 0 0 150 0 0 1 32
endef
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
XENOMAI_DEPENDENCIES += udev
define XENOMAI_INSTALL_UDEV_RULES
if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \
for f in $(@D)/kernel/cobalt/udev/*.rules ; do \
cp $$f $(TARGET_DIR)/etc/udev/rules.d/ || exit 1 ; \
done ; \
fi;
endef
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_INSTALL_UDEV_RULES
endif # udev
$(eval $(autotools-package))