aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-04 16:04:26 +0100
committergingerBill <bill@gingerbill.org>2022-05-04 16:04:26 +0100
commitcec049b7d3eabf2ed371f59214023002ae705cdd (patch)
tree1070945dd19042fa9301b0fd4ae6251f360c34ce /src/llvm_backend_general.cpp
parentdc323cfa1d935e6b5e9d8bf04fb8597fc8b66bce (diff)
Make the link order of foreign imports deterministic
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index 1a431a4ac..0866e3687 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -67,9 +67,7 @@ void lb_init_module(lbModule *m, Checker *c) {
map_init(&m->equal_procs, a);
map_init(&m->hasher_procs, a);
array_init(&m->procedures_to_generate, a, 0, 1024);
- array_init(&m->foreign_library_paths, a, 0, 1024);
array_init(&m->missing_procedures_to_check, a, 0, 16);
-
map_init(&m->debug_values, a);
array_init(&m->debug_incomplete_types, a, 0, 1024);
@@ -126,6 +124,11 @@ bool lb_init_generator(lbGenerator *gen, Checker *c) {
map_init(&gen->modules_through_ctx, permanent_allocator(), gen->info->packages.entries.count*2);
map_init(&gen->anonymous_proc_lits, heap_allocator(), 1024);
+
+ mutex_init(&gen->foreign_mutex);
+ array_init(&gen->foreign_libraries, heap_allocator(), 0, 1024);
+ ptr_set_init(&gen->foreign_libraries_set, heap_allocator(), 1024);
+
if (USE_SEPARATE_MODULES) {
for_array(i, gen->info->packages.entries) {
AstPackage *pkg = gen->info->packages.entries[i].value;