diff options
| author | Rafael Ávila de Espíndola <rafael@espindo.la> | 2018-07-18 15:24:59 -0700 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-07-19 01:24:59 +0300 |
| commit | aee9f589398fa3d6c42b50dd1000598ef36ecfb3 (patch) | |
| tree | 123903db6a61f272ce9e15dd5f57f8847eac3513 /test cases | |
| parent | f390a0a2f39a952422bb8f6d4760b1a576e6d0b9 (diff) | |
| download | meson-aee9f589398fa3d6c42b50dd1000598ef36ecfb3.tar.gz | |
Handle transitive links to 'threads' dependencies. (#3895)
Meson already had code to propagate link dependencies from static
libraries to programs that use those static libraries.
Unfortunately, it was not handling the special cases of 'threads' and
'openmp' dependencies.
Diffstat (limited to 'test cases')
| -rw-r--r-- | test cases/common/205 static threads/lib1.c | 13 | ||||
| -rw-r--r-- | test cases/common/205 static threads/lib2.c | 5 | ||||
| -rw-r--r-- | test cases/common/205 static threads/meson.build | 13 | ||||
| -rw-r--r-- | test cases/common/205 static threads/prog.c | 6 |
4 files changed, 37 insertions, 0 deletions
diff --git a/test cases/common/205 static threads/lib1.c b/test cases/common/205 static threads/lib1.c new file mode 100644 index 000000000..1aa786c66 --- /dev/null +++ b/test cases/common/205 static threads/lib1.c @@ -0,0 +1,13 @@ +#if defined _WIN32 +#include<windows.h> +#else +#include<pthread.h> +#endif + +void *f(void) { +#if defined _WIN32 + return CreateThread; +#else + return pthread_create; +#endif +} diff --git a/test cases/common/205 static threads/lib2.c b/test cases/common/205 static threads/lib2.c new file mode 100644 index 000000000..e988814e2 --- /dev/null +++ b/test cases/common/205 static threads/lib2.c @@ -0,0 +1,5 @@ +extern void *f(void); + +void *g(void) { + return f(); +} diff --git a/test cases/common/205 static threads/meson.build b/test cases/common/205 static threads/meson.build new file mode 100644 index 000000000..427920034 --- /dev/null +++ b/test cases/common/205 static threads/meson.build @@ -0,0 +1,13 @@ +project('threads', 'c') + +thread_dep = dependency('threads') + + +lib1 = static_library('lib1', 'lib1.c', + dependencies : thread_dep) + +lib2 = static_library('lib2', 'lib2.c', + link_with : lib1) + +executable('prog', 'prog.c', + link_with : lib2) diff --git a/test cases/common/205 static threads/prog.c b/test cases/common/205 static threads/prog.c new file mode 100644 index 000000000..14a7c760f --- /dev/null +++ b/test cases/common/205 static threads/prog.c @@ -0,0 +1,6 @@ +extern void *g(void); + +int main(void) { + g(); + return 0; +} |
