diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-06-13 21:20:50 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-06-13 21:20:50 -0400 |
| commit | 81d55cacb7b86add20613510b8fa9da74e58bdca (patch) | |
| tree | 0051267dda1a43265251bb6e0d36ebd26022bef5 /environment.c | |
| parent | dab2c399f1b574b598c908124acebaa06c80938a (diff) | |
Do dynamic library symbol prefixing using 'patchelf'
Diffstat (limited to 'environment.c')
| -rw-r--r-- | environment.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/environment.c b/environment.c index 38c6f104..c71699e1 100644 --- a/environment.c +++ b/environment.c @@ -235,14 +235,14 @@ env_t *new_compilation_unit(void) return env; } -env_t *load_module_env(env_t *env, ast_t *ast) +env_t *load_module_env(env_t *env, const char *prefix, ast_t *ast) { const char *name = file_base_name(ast->file->filename); env_t *cached = Table$str_get(*env->imports, name); if (cached) return cached; env = fresh_scope(env); env->code = new(compilation_unit_t); - env->file_prefix = heap_strf("%s$", name); + env->file_prefix = prefix; Table$str_set(env->imports, name, env); for (ast_list_t *stmt = Match(ast, Block)->statements; stmt; stmt = stmt->next) @@ -251,7 +251,7 @@ env_t *load_module_env(env_t *env, ast_t *ast) for (ast_list_t *stmt = Match(ast, Block)->statements; stmt; stmt = stmt->next) { // Hack: make sure global variables are bound as foo$var: if (stmt->ast->tag == Declare && Match(Match(stmt->ast, Declare)->var, Var)->name[0] != '_') - env->scope_prefix = heap_strf("%s$", name); + env->scope_prefix = prefix; bind_statement(env, stmt->ast); env->scope_prefix = NULL; } |
