summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorStefan Schmidt <s.schmidt@samsung.com>2020-02-04 11:41:17 +0100
committerStefan Schmidt <s.schmidt@samsung.com>2020-02-07 11:31:10 +0100
commit78ad088dd73a18fb4cfcfedcc18a6bf03e28080b (patch)
tree29e9499ca2d44cc26fbcb5a1a619805e4717e681 /src/bin
parente938a34f05e2869ff622495e14a0c1d41ed1fe77 (diff)
elementary: build elementary_test additionally as shared object
For our exactness testing we are dlopen() the elementary_test executable. Until glibc 2.30 this was posible with -pie, but it changed in the glibc version. They no longer allow these executables to be dlopen()'ed. As a workaround for now we are building elementary_test also as a shared object file which we load and use in the exactness testing process. The code came from Marcel Hollerbach and I only tested it and fixed up a small detail. Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D11284
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/elementary/meson.build14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build
index 7eddf03b48..0f8d79322d 100644
--- a/src/bin/elementary/meson.build
+++ b/src/bin/elementary/meson.build
@@ -169,9 +169,11 @@ elementary_test_src = [
169 169
170if sys_windows == false 170if sys_windows == false
171 link_args = ['-rdynamic', '-fPIC', '-pie'] 171 link_args = ['-rdynamic', '-fPIC', '-pie']
172 link_args_lib = ['-rdynamic', '-fPIC']
172 package_c_args = package_c_args + ['-fPIC'] 173 package_c_args = package_c_args + ['-fPIC']
173else 174else
174 link_args = [] 175 link_args = []
176 link_args_lib = []
175endif 177endif
176elementary_test = executable('elementary_test', 178elementary_test = executable('elementary_test',
177 elementary_test_src, 179 elementary_test_src,
@@ -185,6 +187,18 @@ elementary_test = executable('elementary_test',
185 link_args: link_args 187 link_args: link_args
186) 188)
187 189
190library('elementary_test',
191 elementary_test_src,
192 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
193 install: false,
194 c_args : package_c_args + [
195 '-Delementary_test_BIN_DIR="'+dir_bin+'"',
196 '-Delementary_test_LIB_DIR="'+dir_lib+'"',
197 '-Delementary_test_DATA_DIR="'+join_paths(dir_data,'elementary')+'"'
198 ],
199 link_args: link_args_lib
200)
201
188elementary_config_src = [ 202elementary_config_src = [
189 'config.c' 203 'config.c'
190] 204]