* Update buildroot-patches for 2020.11-rc1 buildroot * Update buildroot to 2020.11-rc1 Signed-off-by: Stefan Agner <stefan@agner.ch> * Don't rely on sfdisk --list-free output The --list-free (-F) argument does not allow machine readable mode. And it seems that the output format changes over time (different spacing, using size postfixes instead of raw blocks). Use sfdisk json output and calculate free partition space ourselfs. This works for 2.35 and 2.36 and is more robust since we rely on output which is meant for scripts to parse. * Migrate defconfigs for Buildroot 2020.11-rc1 In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE). * Rebase/remove systemd patches for systemd 246 * Drop apparmor/libapparmor from buildroot-external * hassos-persists: use /run as directory for lockfiles The U-Boot tools use /var/lock by default which is not created any more by systemd by default (it is under tmpfiles legacy.conf, which we no longer install). * Disable systemd-update-done.service The service is not suited for pure read-only systems. In particular the service needs to be able to write a file in /etc and /var. Remove the service. Note: This is a static service and cannot be removed using systemd-preset. * Disable apparmor.service for now The service loads all default profiles. Some might actually cause problems. E.g. the profile for ping seems not to match our setup for /etc/resolv.conf: [85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
165 lines
4.7 KiB
Makefile
165 lines
4.7 KiB
Makefile
################################################################################
|
|
#
|
|
# perf
|
|
#
|
|
################################################################################
|
|
|
|
LINUX_TOOLS += perf
|
|
|
|
PERF_DEPENDENCIES = host-flex host-bison
|
|
|
|
ifeq ($(KERNEL_ARCH),x86_64)
|
|
PERF_ARCH=x86
|
|
else
|
|
PERF_ARCH=$(KERNEL_ARCH)
|
|
endif
|
|
|
|
PERF_MAKE_FLAGS = \
|
|
$(LINUX_MAKE_FLAGS) \
|
|
JOBS=$(PARALLEL_JOBS) \
|
|
ARCH=$(PERF_ARCH) \
|
|
DESTDIR=$(TARGET_DIR) \
|
|
prefix=/usr \
|
|
WERROR=0 \
|
|
NO_LIBAUDIT=1 \
|
|
NO_GTK2=1 \
|
|
NO_LIBPERL=1 \
|
|
NO_LIBPYTHON=1 \
|
|
NO_LIBBIONIC=1
|
|
|
|
# We need to pass an argument to ld for setting the emulation when
|
|
# building for MIPS architecture, otherwise the default one will always
|
|
# be used and the compilation for most variants will fail.
|
|
ifeq ($(BR2_mips),y)
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32btsmip"
|
|
else ifeq ($(BR2_mipsel),y)
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32ltsmip"
|
|
else ifeq ($(BR2_mips64),y)
|
|
ifeq ($(BR2_MIPS_NABI32),y)
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32btsmipn32"
|
|
else
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf64btsmip"
|
|
endif
|
|
else ifeq ($(BR2_mips64el),y)
|
|
ifeq ($(BR2_MIPS_NABI32),y)
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf32ltsmipn32"
|
|
else
|
|
PERF_MAKE_FLAGS += LD="$(TARGET_LD) -m elf64ltsmip"
|
|
endif
|
|
endif
|
|
|
|
# The call to backtrace() function fails for ARC, because for some
|
|
# reason the unwinder from libgcc returns early. Thus the usage of
|
|
# backtrace() should be disabled in perf explicitly: at build time
|
|
# backtrace() appears to be available, but it fails at runtime: the
|
|
# backtrace will contain only several functions from the top of stack,
|
|
# instead of the complete backtrace.
|
|
ifeq ($(BR2_arc),y)
|
|
PERF_MAKE_FLAGS += NO_BACKTRACE=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LINUX_TOOLS_PERF_TUI),y)
|
|
PERF_DEPENDENCIES += slang
|
|
else
|
|
PERF_MAKE_FLAGS += NO_NEWT=1 NO_SLANG=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
|
|
PERF_DEPENDENCIES += libunwind
|
|
else
|
|
PERF_MAKE_FLAGS += NO_LIBUNWIND=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_NUMACTL),y)
|
|
PERF_DEPENDENCIES += numactl
|
|
else
|
|
PERF_MAKE_FLAGS += NO_LIBNUMA=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ELFUTILS),y)
|
|
PERF_DEPENDENCIES += elfutils
|
|
else
|
|
PERF_MAKE_FLAGS += NO_LIBELF=1 NO_DWARF=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_BINUTILS),y)
|
|
PERF_DEPENDENCIES += binutils
|
|
else
|
|
PERF_MAKE_FLAGS += NO_DEMANGLE=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
|
PERF_DEPENDENCIES += openssl
|
|
else
|
|
PERF_MAKE_FLAGS += NO_LIBCRYPTO=1
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
|
PERF_DEPENDENCIES += zlib
|
|
else
|
|
PERF_MAKE_FLAGS += NO_ZLIB=1
|
|
endif
|
|
|
|
# lzma is provided by xz
|
|
ifeq ($(BR2_PACKAGE_XZ),y)
|
|
PERF_DEPENDENCIES += xz
|
|
else
|
|
PERF_MAKE_FLAGS += NO_LZMA=1
|
|
endif
|
|
|
|
# We really do not want to build the perf documentation, because it
|
|
# has stringent requirement on the documentation generation tools,
|
|
# like xmlto and asciidoc), which may be lagging behind on some
|
|
# distributions.
|
|
# We name it 'GNUmakefile' so that GNU make will use it instead of
|
|
# the existing 'Makefile'.
|
|
define PERF_DISABLE_DOCUMENTATION
|
|
if [ -f $(LINUX_DIR)/tools/perf/Documentation/Makefile ]; then \
|
|
printf "%%:\n\t@:\n" >$(LINUX_DIR)/tools/perf/Documentation/GNUmakefile; \
|
|
fi
|
|
endef
|
|
LINUX_POST_PATCH_HOOKS += PERF_DISABLE_DOCUMENTATION
|
|
|
|
# O must be redefined here to overwrite the one used by Buildroot for
|
|
# out of tree build. We build perf in $(LINUX_DIR)/tools/perf/ and not just
|
|
# $(LINUX_DIR) so that it isn't built in the root directory of the kernel
|
|
# sources.
|
|
define PERF_BUILD_CMDS
|
|
$(Q)if test ! -f $(LINUX_DIR)/tools/perf/Makefile ; then \
|
|
echo "Your kernel version is too old and does not have the perf tool." ; \
|
|
echo "At least kernel 2.6.31 must be used." ; \
|
|
exit 1 ; \
|
|
fi
|
|
$(Q)if test "$(BR2_PACKAGE_ELFUTILS)" = "" ; then \
|
|
if ! grep -q NO_LIBELF $(LINUX_DIR)/tools/perf/Makefile* ; then \
|
|
if ! test -r $(LINUX_DIR)/tools/perf/config/Makefile ; then \
|
|
echo "The perf tool in your kernel cannot be built without libelf." ; \
|
|
echo "Either upgrade your kernel to >= 3.7, or enable the elfutils package." ; \
|
|
exit 1 ; \
|
|
fi \
|
|
fi \
|
|
fi
|
|
$(Q)if test "$(BR2_PACKAGE_LINUX_TOOLS_PERF_TUI)" = "y" ; then \
|
|
if ! grep -q NO_SLANG $(LINUX_DIR)/tools/perf/Makefile* ; then \
|
|
echo "The perf tool in your kernel cannot be build with the TUI." ; \
|
|
echo "Either upgrade your kernel to >= 3.10, or disable the TUI." ; \
|
|
exit 1 ; \
|
|
fi \
|
|
fi
|
|
$(TARGET_MAKE_ENV) $(MAKE1) $(PERF_MAKE_FLAGS) \
|
|
-C $(LINUX_DIR)/tools/perf O=$(LINUX_DIR)/tools/perf/
|
|
endef
|
|
|
|
# After installation, we remove the Perl and Python scripts from the
|
|
# target.
|
|
define PERF_INSTALL_TARGET_CMDS
|
|
$(TARGET_MAKE_ENV) $(MAKE1) $(PERF_MAKE_FLAGS) \
|
|
-C $(LINUX_DIR)/tools/perf O=$(LINUX_DIR)/tools/perf/ install
|
|
$(RM) -rf $(TARGET_DIR)/usr/libexec/perf-core/scripts/
|
|
$(RM) -rf $(TARGET_DIR)/usr/libexec/perf-core/tests/
|
|
endef
|
|
|
|
define PERF_LINUX_CONFIG_FIXUPS
|
|
$(call KCONFIG_ENABLE_OPT,CONFIG_PERF_EVENTS)
|
|
endef
|