summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-09-18 11:46:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-09-22 07:59:11 +0200
commit109479e8744e51f6c28e41f3dcb11efde33c3574 (patch)
tree6b096683bd251d0d3583fe44eda79d9e0a892df0
parentde25f012b76978464a94ffed603d6a6bb79b744e (diff)
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.
-rw-r--r--spec/build/testsuites/libtests/dl07.yml4
-rw-r--r--spec/build/testsuites/libtests/dl08.yml4
-rw-r--r--spec/build/testsuites/libtests/dl09.yml4
-rw-r--r--spec/build/testsuites/libtests/grp.yml2
-rw-r--r--spec/build/testsuites/libtests/optdlldflags.yml22
-rwxr-xr-xwscript12
6 files changed, 30 insertions, 18 deletions
diff --git a/spec/build/testsuites/libtests/dl07.yml b/spec/build/testsuites/libtests/dl07.yml
index e443f4ed29..5760f68b87 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 8e5eec77f2..ada6caf698 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 2d00286c15..ee0be57fb2 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
@@ -23,6 +23,8 @@ links:
- role: build-dependency
uid: ../optxz
- role: build-dependency
+ uid: optdlldflags
+- role: build-dependency
uid: optrtemsld
- role: build-dependency
uid: optrtemssyms
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 00b81b4874..65f90fc324 100755
--- a/wscript
+++ b/wscript
@@ -360,7 +360,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"])
@@ -386,14 +386,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)