From a13047ca0e965136815a77ee2651d5e7821b59f7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 27 Jun 2022 11:28:34 +0200 Subject: build: Allow separate optimization flags Allow separate optimization flags for the BSP, cpukit, and tests. For example, the BSP and cpukit may be built without optimization if coverage instrumentation is enabled, however, the tests may still use optimization. Update #4670. --- spec/build/bsps/bspopts.yml | 8 ++++++++ spec/build/bsps/optbspoptflags.yml | 18 ++++++++++++++++++ spec/build/bsps/optcflags.yml | 17 +++++++++++++++++ spec/build/bsps/optcpukitoptflags.yml | 18 ++++++++++++++++++ spec/build/bsps/opto0.yml | 4 +--- spec/build/bsps/opto1.yml | 4 +--- spec/build/bsps/opto2.yml | 4 +--- spec/build/bsps/optog.yml | 4 +--- spec/build/bsps/optos.yml | 4 +--- spec/build/bsps/opttestoptflags.yml | 18 ++++++++++++++++++ 10 files changed, 84 insertions(+), 15 deletions(-) create mode 100644 spec/build/bsps/optbspoptflags.yml create mode 100644 spec/build/bsps/optcflags.yml create mode 100644 spec/build/bsps/optcpukitoptflags.yml create mode 100644 spec/build/bsps/opttestoptflags.yml (limited to 'spec/build/bsps') diff --git a/spec/build/bsps/bspopts.yml b/spec/build/bsps/bspopts.yml index d43136e94e..4a4c06d321 100644 --- a/spec/build/bsps/bspopts.yml +++ b/spec/build/bsps/bspopts.yml @@ -7,6 +7,12 @@ guard: __BSP_OPTIONS_H include-headers: [] install-path: ${BSP_INCLUDEDIR} links: +- role: build-dependency + uid: optbspoptflags +- role: build-dependency + uid: optcpukitoptflags +- role: build-dependency + uid: opttestoptflags - role: build-dependency uid: optabi - role: build-dependency @@ -17,6 +23,8 @@ links: uid: optfatalverb - role: build-dependency uid: optincludes +- role: build-dependency + uid: optcflags - role: build-dependency uid: optlinkflags - role: build-dependency diff --git a/spec/build/bsps/optbspoptflags.yml b/spec/build/bsps/optbspoptflags.yml new file mode 100644 index 0000000000..40dbb6c7ab --- /dev/null +++ b/spec/build/bsps/optbspoptflags.yml @@ -0,0 +1,18 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- substitute: null +- split: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +default: ${OPTIMIZATION_FLAGS} +default-by-variant: [] +description: | + Optimization flags passed to C and C++ compilers for the BSP. +enabled-by: true +format: '{}' +links: [] +name: BSP_OPTIMIZATION_FLAGS +type: build diff --git a/spec/build/bsps/optcflags.yml b/spec/build/bsps/optcflags.yml new file mode 100644 index 0000000000..ef03940bff --- /dev/null +++ b/spec/build/bsps/optcflags.yml @@ -0,0 +1,17 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- set-value: | + ${BSP_OPTIMIZATION_FLAGS} +- substitute: null +- split: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +default: null +default-by-variant: [] +description: '' +enabled-by: true +links: [] +name: BSP_CFLAGS +type: build diff --git a/spec/build/bsps/optcpukitoptflags.yml b/spec/build/bsps/optcpukitoptflags.yml new file mode 100644 index 0000000000..3baec4b8c8 --- /dev/null +++ b/spec/build/bsps/optcpukitoptflags.yml @@ -0,0 +1,18 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- substitute: null +- split: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +default: ${OPTIMIZATION_FLAGS} +default-by-variant: [] +description: | + Optimization flags passed to C and C++ compilers for the CPU kit. +enabled-by: true +format: '{}' +links: [] +name: CPUKIT_OPTIMIZATION_FLAGS +type: build diff --git a/spec/build/bsps/opto0.yml b/spec/build/bsps/opto0.yml index 406286980f..9f54709c07 100644 --- a/spec/build/bsps/opto0.yml +++ b/spec/build/bsps/opto0.yml @@ -3,8 +3,6 @@ actions: - get-string: null - split: null - env-assign: null -- env-append: CFLAGS -- env-append: CXXFLAGS build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) @@ -15,7 +13,7 @@ default: - -ffunction-sections default-by-variant: [] description: | - Optimization flags passed to the C and C++ compiler + Default optimization flags for C and C++ compilers. enabled-by: true links: [] name: OPTIMIZATION_FLAGS diff --git a/spec/build/bsps/opto1.yml b/spec/build/bsps/opto1.yml index 52d285c2ab..e0668a887b 100644 --- a/spec/build/bsps/opto1.yml +++ b/spec/build/bsps/opto1.yml @@ -3,8 +3,6 @@ actions: - get-string: null - split: null - env-assign: null -- env-append: CFLAGS -- env-append: CXXFLAGS build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) @@ -15,7 +13,7 @@ default: - -ffunction-sections default-by-variant: [] description: | - Optimization flags passed to the C and C++ compiler + Default optimization flags for C and C++ compilers. enabled-by: true links: [] name: OPTIMIZATION_FLAGS diff --git a/spec/build/bsps/opto2.yml b/spec/build/bsps/opto2.yml index 071e5411d5..7b54556c5b 100644 --- a/spec/build/bsps/opto2.yml +++ b/spec/build/bsps/opto2.yml @@ -3,8 +3,6 @@ actions: - get-string: null - split: null - env-assign: null -- env-append: CFLAGS -- env-append: CXXFLAGS build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) @@ -15,7 +13,7 @@ default: - -ffunction-sections default-by-variant: [] description: | - Optimization flags passed to the C and C++ compiler + Default optimization flags for C and C++ compilers. enabled-by: true links: [] name: OPTIMIZATION_FLAGS diff --git a/spec/build/bsps/optog.yml b/spec/build/bsps/optog.yml index d08bd7b2b2..2eab2acdd1 100644 --- a/spec/build/bsps/optog.yml +++ b/spec/build/bsps/optog.yml @@ -3,8 +3,6 @@ actions: - get-string: null - split: null - env-assign: null -- env-append: CFLAGS -- env-append: CXXFLAGS build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) @@ -15,7 +13,7 @@ default: - -ffunction-sections default-by-variant: [] description: | - Optimization flags passed to the C and C++ compiler + Default optimization flags for C and C++ compilers. enabled-by: true links: [] name: OPTIMIZATION_FLAGS diff --git a/spec/build/bsps/optos.yml b/spec/build/bsps/optos.yml index df9e0efd02..1c2c106064 100644 --- a/spec/build/bsps/optos.yml +++ b/spec/build/bsps/optos.yml @@ -3,8 +3,6 @@ actions: - get-string: null - split: null - env-assign: null -- env-append: CFLAGS -- env-append: CXXFLAGS build-type: option copyrights: - Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de) @@ -15,7 +13,7 @@ default: - -ffunction-sections default-by-variant: [] description: | - Optimization flags passed to the C and C++ compiler + Default optimization flags for C and C++ compilers. enabled-by: true links: [] name: OPTIMIZATION_FLAGS diff --git a/spec/build/bsps/opttestoptflags.yml b/spec/build/bsps/opttestoptflags.yml new file mode 100644 index 0000000000..43e0c92c07 --- /dev/null +++ b/spec/build/bsps/opttestoptflags.yml @@ -0,0 +1,18 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- substitute: null +- split: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2022 embedded brains GmbH (http://www.embedded-brains.de) +default: ${OPTIMIZATION_FLAGS} +default-by-variant: [] +description: | + Optimization flags passed to C and C++ compiler for tests. +enabled-by: true +format: '{}' +links: [] +name: TEST_OPTIMIZATION_FLAGS +type: build -- cgit v1.2.3