aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2022-10-27 18:51:29 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2022-11-01 18:43:08 +0200
commit060595f0d0f02a871657818bde55c14f164cbb19 (patch)
tree71482bc16b2fe1c61cbc0fa36a40410ef0ddb02a
parent7e5b0760ce18666c7b1a42f97ca29ce03406e21b (diff)
downloadmeson-060595f0d0f02a871657818bde55c14f164cbb19.zip
meson-060595f0d0f02a871657818bde55c14f164cbb19.tar.gz
meson-060595f0d0f02a871657818bde55c14f164cbb19.tar.bz2
Add regression test for pch link_whole bug.
-rw-r--r--test cases/common/13 pch/linkwhole/lib1.c4
-rw-r--r--test cases/common/13 pch/linkwhole/lib2.c6
-rw-r--r--test cases/common/13 pch/linkwhole/main.c9
-rw-r--r--test cases/common/13 pch/linkwhole/meson.build8
-rw-r--r--test cases/common/13 pch/linkwhole/pch1/pch_one.h4
-rw-r--r--test cases/common/13 pch/linkwhole/pch2/pch_two.h4
-rw-r--r--test cases/common/13 pch/meson.build4
7 files changed, 39 insertions, 0 deletions
diff --git a/test cases/common/13 pch/linkwhole/lib1.c b/test cases/common/13 pch/linkwhole/lib1.c
new file mode 100644
index 0000000..b56c17b
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/lib1.c
@@ -0,0 +1,4 @@
+void func1() {
+ printf("Calling func2.");
+ func2();
+}
diff --git a/test cases/common/13 pch/linkwhole/lib2.c b/test cases/common/13 pch/linkwhole/lib2.c
new file mode 100644
index 0000000..0a13f60
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/lib2.c
@@ -0,0 +1,6 @@
+#include<stdio.h>
+
+void func2() {
+ const char *cl = GetCommandLineA();
+ printf("Command line was: %s\n", cl);
+}
diff --git a/test cases/common/13 pch/linkwhole/main.c b/test cases/common/13 pch/linkwhole/main.c
new file mode 100644
index 0000000..6615a8b
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/main.c
@@ -0,0 +1,9 @@
+#include<stdio.h>
+
+void func1();
+
+int main(int argc, char **argv) {
+ printf("Calling func1\n");
+ func1();
+ return 0;
+}
diff --git a/test cases/common/13 pch/linkwhole/meson.build b/test cases/common/13 pch/linkwhole/meson.build
new file mode 100644
index 0000000..dec76ba
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/meson.build
@@ -0,0 +1,8 @@
+# https://github.com/mesonbuild/meson/issues/10745
+
+l2 = static_library('two', 'lib2.c', c_pch: 'pch2/pch_two.h')
+l1 = static_library('one', 'lib1.c', c_pch: 'pch1/pch_one.h',
+ link_whole: l2)
+
+executable('linkprog', 'main.c',
+ link_with: l1)
diff --git a/test cases/common/13 pch/linkwhole/pch1/pch_one.h b/test cases/common/13 pch/linkwhole/pch1/pch_one.h
new file mode 100644
index 0000000..757c206
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/pch1/pch_one.h
@@ -0,0 +1,4 @@
+#ifndef PCH_ONE
+#define PCH_ONE
+#include<stdio.h>
+#endif
diff --git a/test cases/common/13 pch/linkwhole/pch2/pch_two.h b/test cases/common/13 pch/linkwhole/pch2/pch_two.h
new file mode 100644
index 0000000..1be0a20
--- /dev/null
+++ b/test cases/common/13 pch/linkwhole/pch2/pch_two.h
@@ -0,0 +1,4 @@
+#ifndef PCH_TWO
+#define PCH_TWO
+#include<windows.h>
+#endif
diff --git a/test cases/common/13 pch/meson.build b/test cases/common/13 pch/meson.build
index 5ca9ab1..4bb3e1f 100644
--- a/test cases/common/13 pch/meson.build
+++ b/test cases/common/13 pch/meson.build
@@ -20,3 +20,7 @@ if meson.backend() == 'xcode'
else
subdir('mixed')
endif
+
+if cc_id == 'msvc'
+ subdir('linkwhole')
+endif