aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-04-16 02:05:50 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-04-16 02:05:50 -0400
commit7be536c5dfe3621d1d42a13ec0a3ef98ceb7f570 (patch)
treef257d3d4777af1ae2b21dba1be94bf75764a7a5d
parenta2d2916e3220ec333122afb9cdef0f5c1eda84f7 (diff)
Bugfix for top-level variables in libraries
-rw-r--r--src/compile.c4
-rw-r--r--src/tomo.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/compile.c b/src/compile.c
index 5c153f87..023b2e2e 100644
--- a/src/compile.c
+++ b/src/compile.c
@@ -4262,7 +4262,7 @@ CORD compile_top_level_code(env_t *env, ast_t *ast)
if ((decl->value && is_constant(env, decl->value)) || (!decl->value && !has_heap_memory(t))) {
set_binding(env, decl_name, t, full_name);
return CORD_all(
- is_private ? "static " : CORD_EMPTY,
+ is_private ? "static " : "public ",
compile_declaration(t, full_name), " = ", val_code, ";\n");
} else {
CORD checked_access = CORD_all("check_initialized(", full_name, ", \"", decl_name, "\")");
@@ -4270,7 +4270,7 @@ CORD compile_top_level_code(env_t *env, ast_t *ast)
return CORD_all(
"static bool ", full_name, "$initialized = false;\n",
- is_private ? "static " : CORD_EMPTY,
+ is_private ? "static " : "public ",
compile_declaration(t, full_name), ";\n");
}
}
diff --git a/src/tomo.c b/src/tomo.c
index f4ab6b76..fae2a62e 100644
--- a/src/tomo.c
+++ b/src/tomo.c
@@ -459,7 +459,7 @@ void build_library(Text_t lib_dir_name)
FILE *prog;
for (int64_t i = 0; i < tm_files.length; i++) {
Path_t f = *(Path_t*)(tm_files.data + i*tm_files.stride);
- prog = run_cmd("nm -g '", build_file(f, ".o"), "' | awk '$2~/^[DT]$/{print $3 \" _$",
+ prog = run_cmd("nm -g '", build_file(f, ".o"), "' | awk '$2~/^[DTB]$/{print $3 \" _$",
CORD_to_const_char_star(env->libname), "\" substr($3,2)}' "
">>.build/symbol_renames.txt");
if (!prog) print_err("Could not find symbols!");