aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/compilers/compilers.py4
-rw-r--r--test cases/common/154 library at root/lib.c6
-rw-r--r--test cases/common/154 library at root/main/main.c5
-rw-r--r--test cases/common/154 library at root/main/meson.build2
-rw-r--r--test cases/common/154 library at root/meson.build3
5 files changed, 20 insertions, 0 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 579988f..6b5c4a4 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -763,6 +763,10 @@ class Compiler:
# directory. This breaks reproducible builds.
rel_rpaths = []
for p in rpath_paths:
+ # p can be an empty string for build_dir (relative path), but
+ # os.path.relpath() below won't like that.
+ if p == '':
+ p = build_dir
if p == from_dir:
relative = '' # relpath errors out in this case
else:
diff --git a/test cases/common/154 library at root/lib.c b/test cases/common/154 library at root/lib.c
new file mode 100644
index 0000000..a5b3dc3
--- /dev/null
+++ b/test cases/common/154 library at root/lib.c
@@ -0,0 +1,6 @@
+#if defined _WIN32 || defined __CYGWIN__
+__declspec(dllexport)
+#endif
+int fn(void) {
+ return -1;
+}
diff --git a/test cases/common/154 library at root/main/main.c b/test cases/common/154 library at root/main/main.c
new file mode 100644
index 0000000..c4e1b4e
--- /dev/null
+++ b/test cases/common/154 library at root/main/main.c
@@ -0,0 +1,5 @@
+extern int fn(void);
+
+int main() {
+ return 1 + fn();
+}
diff --git a/test cases/common/154 library at root/main/meson.build b/test cases/common/154 library at root/main/meson.build
new file mode 100644
index 0000000..557378a
--- /dev/null
+++ b/test cases/common/154 library at root/main/meson.build
@@ -0,0 +1,2 @@
+exe = executable('main', 'main.c', link_with : lib)
+test('stuff works', exe)
diff --git a/test cases/common/154 library at root/meson.build b/test cases/common/154 library at root/meson.build
new file mode 100644
index 0000000..bfdd869
--- /dev/null
+++ b/test cases/common/154 library at root/meson.build
@@ -0,0 +1,3 @@
+project('lib@root', 'c')
+lib = shared_library('lib', 'lib.c')
+subdir('main')