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.pull/3910/head
parent
f390a0a2f3
commit
aee9f58939
5 changed files with 51 additions and 7 deletions
@ -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 |
||||
} |
@ -0,0 +1,5 @@ |
||||
extern void *f(void); |
||||
|
||||
void *g(void) { |
||||
return f(); |
||||
} |
@ -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) |
@ -0,0 +1,6 @@ |
||||
extern void *g(void); |
||||
|
||||
int main(void) { |
||||
g(); |
||||
return 0; |
||||
} |
Loading…
Reference in new issue