mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
build: ensure rules with pipes might fail
.SHELLFLAGS is extended by option pipefail to make pipes fail if any pipe element fails. As .SHELLFLAGS is exported into sub-make instances it must be unexported before calling third-party build systems recursively.
This commit is contained in:
committed by
Norman Feske
parent
7da691b52a
commit
d182b20705
@@ -10,20 +10,17 @@ KERNEL_CXXFLAGS = -std=gnu++98 -fno-delete-null-pointer-checks $(CXXWARN) \
|
||||
-Wno-address-of-packed-member
|
||||
|
||||
$(FIASCO_BUILD_DIR):
|
||||
$(VERBOSE_MK) set -o pipefail; \
|
||||
MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_SRC) BUILDDIR=$@ \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
$(VERBOSE_MK) set -o pipefail; \
|
||||
MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $@ oldconfig \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
|
||||
$(FIASCO): $(FIASCO_BUILD_DIR)
|
||||
$(VERBOSE_MK) set -o pipefail; \
|
||||
MAKEFLAGS= CFLAGS="-std=gnu89 $(CWARN)" \
|
||||
$(VERBOSE_MK) MAKEFLAGS= CFLAGS="-std=gnu89 $(CWARN)" \
|
||||
CXXFLAGS="$(KERNEL_CXXFLAGS)" \
|
||||
$(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_BUILD_DIR) \
|
||||
|
||||
@@ -33,6 +33,9 @@ ifeq ($(VERBOSE),)
|
||||
L4_VERBOSE = V=1
|
||||
endif
|
||||
|
||||
# do not confuse third-party sub-makes
|
||||
unexport .SHELLFLAGS
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
|
||||
@@ -61,8 +64,7 @@ CXXWARN = $(WARN) -Wno-bool-compare -Wno-c++11-compat -Wno-class-memaccess
|
||||
# 'off64_t' type, which is used by bootstrap.
|
||||
#
|
||||
%.tag:
|
||||
$(VERBOSE_MK) set -o pipefail; \
|
||||
MAKEFLAGS= CPPFLAGS="$(CC_MARCH)" \
|
||||
$(VERBOSE_MK) MAKEFLAGS= CPPFLAGS="$(CC_MARCH)" \
|
||||
CFLAGS="$(CC_MARCH) -std=gnu89 $(CWARN)" \
|
||||
CXXFLAGS="$(CC_MARCH) -D_GNU_SOURCE -std=gnu++98 $(CXXWARN)" \
|
||||
ASFLAGS="$(CC_MARCH)" LDFLAGS="$(LD_MARCH)" \
|
||||
|
||||
@@ -15,7 +15,7 @@ L4_BUILD_DIR := $(shell pwd)
|
||||
.Makeconf.bid.old:
|
||||
$(VERBOSE)mkdir -p $(dir $@)
|
||||
$(VERBOSE)cp $(L4_CONFIG) $(@:.old=)
|
||||
$(VERBOSE_MK) set -o pipefail; \
|
||||
$(VERBOSE_MK) \
|
||||
MAKEFLAGS= make $(VERBOSE_DIR) -C $(L4_SRC_DIR)/l4 \
|
||||
O=$(L4_BUILD_DIR) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" oldconfig \
|
||||
2>&1 | sed "s/^/ [l4build] /"
|
||||
|
||||
Reference in New Issue
Block a user