From b7391a6214f1e89172a17d07b81262751aed8dc7 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 18 Sep 2023 11:46:37 +0200 Subject: build: Remove enabled-by special case Doing the enabled-by processing just for the ldflags and just for the link custom commands is confusing. Use an option instead which is intended to be used for such use cases. --- spec/build/testsuites/libtests/dl07.yml | 4 +--- spec/build/testsuites/libtests/dl08.yml | 4 +--- spec/build/testsuites/libtests/dl09.yml | 4 +--- spec/build/testsuites/libtests/grp.yml | 2 ++ spec/build/testsuites/libtests/optdlldflags.yml | 22 ++++++++++++++++++++++ wscript | 12 +++--------- 6 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 spec/build/testsuites/libtests/optdlldflags.yml diff --git a/spec/build/testsuites/libtests/dl07.yml b/spec/build/testsuites/libtests/dl07.yml index 79f7dad6c5..39848c9a1e 100644 --- a/spec/build/testsuites/libtests/dl07.yml +++ b/spec/build/testsuites/libtests/dl07.yml @@ -33,9 +33,7 @@ enabled-by: includes: - testsuites/libtests/dl07 ldflags: -- enabled-by: - - microblaze - value: -u__extendsfdf2 +- ${LIBDL_TESTS_LDFLAGS} links: [] prepare-build: null prepare-configure: null diff --git a/spec/build/testsuites/libtests/dl08.yml b/spec/build/testsuites/libtests/dl08.yml index 42470eff33..f22170d56a 100644 --- a/spec/build/testsuites/libtests/dl08.yml +++ b/spec/build/testsuites/libtests/dl08.yml @@ -38,9 +38,7 @@ enabled-by: includes: - testsuites/libtests/dl08 ldflags: -- enabled-by: - - microblaze - value: -u__extendsfdf2 +- ${LIBDL_TESTS_LDFLAGS} links: [] prepare-build: null prepare-configure: null diff --git a/spec/build/testsuites/libtests/dl09.yml b/spec/build/testsuites/libtests/dl09.yml index f7cc4a39da..7fc425323d 100644 --- a/spec/build/testsuites/libtests/dl09.yml +++ b/spec/build/testsuites/libtests/dl09.yml @@ -33,9 +33,7 @@ enabled-by: includes: - testsuites/libtests/dl09 ldflags: -- enabled-by: - - microblaze - value: -u__extendsfdf2 +- ${LIBDL_TESTS_LDFLAGS} links: [] prepare-build: null prepare-configure: null diff --git a/spec/build/testsuites/libtests/grp.yml b/spec/build/testsuites/libtests/grp.yml index c1a6209e99..eaf21751c4 100644 --- a/spec/build/testsuites/libtests/grp.yml +++ b/spec/build/testsuites/libtests/grp.yml @@ -22,6 +22,8 @@ links: uid: ../optgzip - role: build-dependency uid: ../optxz +- role: build-dependency + uid: optdlldflags - role: build-dependency uid: optrtemsld - role: build-dependency diff --git a/spec/build/testsuites/libtests/optdlldflags.yml b/spec/build/testsuites/libtests/optdlldflags.yml new file mode 100644 index 0000000000..0d754c5270 --- /dev/null +++ b/spec/build/testsuites/libtests/optdlldflags.yml @@ -0,0 +1,22 @@ +SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause +actions: +- get-string: null +- split: null +- env-assign: null +build-type: option +copyrights: +- Copyright (C) 2023 embedded brains GmbH & Co. KG +default: +- enabled-by: microblaze + value: + - -u__extendsfdf2 +- enabled-by: true + value: [] +description: | + Linker flags used to link libdl tests with a base image. For example, it may + be used to add undefined symbols which the linker has to resolve to pull in + services required by loaded parts. +enabled-by: true +links: [] +name: LIBDL_TESTS_LDFLAGS +type: build diff --git a/wscript b/wscript index b503334b6d..c8481d4fde 100755 --- a/wscript +++ b/wscript @@ -366,7 +366,7 @@ class Item(object): def __init__(self, item, bic, cmd, env, ldflags): super(link, self).__init__(self, env=env) self.cmd = cmd - self.ldflags = bic.ldflags + ldflags + self.ldflags = ldflags self.stlib = item.data["stlib"] self.use = (item.data["use-before"] + bic.use + item.data["use-after"]) @@ -392,14 +392,8 @@ class Item(object): [], ) - ldflags = [] - for ldflag in self.data["ldflags"]: - if isinstance(ldflag, dict): - if _is_enabled(bld.env.ENABLE, ldflag["enabled-by"]): - ldflags.append(ldflag["value"]) - else: - ldflags.append(ldflag) - tsk = link(self, bic, cmd, bld.env, ldflags) + tsk = link(self, bic, cmd, bld.env, + bic.ldflags + self.substitute(bld, self.data["ldflags"])) tsk.set_inputs([bld.bldnode.make_node(s) for s in source]) tsk.set_outputs(bld.bldnode.make_node(target)) bld.add_to_group(tsk) -- cgit v1.2.3