mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
Fix hot code reloading on linux
This commit is contained in:
committed by
Alexander Medvednikov
parent
3f916efb64
commit
932f6d1bef
@@ -386,9 +386,11 @@ string _STR_TMP(const char *fmt, ...) {
|
|||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
void* live_lib;
|
void* live_lib;
|
||||||
int load_so(byteptr path) {
|
int load_so(byteptr path) {
|
||||||
//printf("load_so %s\\n", path);
|
char cpath[1024];
|
||||||
|
sprintf(cpath,"./%s", path);
|
||||||
|
//printf("load_so %s\\n", cpath);
|
||||||
if (live_lib) dlclose(live_lib);
|
if (live_lib) dlclose(live_lib);
|
||||||
live_lib = dlopen(path, RTLD_LAZY);
|
live_lib = dlopen(cpath, RTLD_LAZY);
|
||||||
if (!live_lib) {puts("open failed"); exit(1); return 0;}
|
if (!live_lib) {puts("open failed"); exit(1); return 0;}
|
||||||
')
|
')
|
||||||
for so_fn in cgen.so_fns {
|
for so_fn in cgen.so_fns {
|
||||||
@@ -534,7 +536,7 @@ fn (v mut V) cc() {
|
|||||||
flags := v.table.flags.join(' ')
|
flags := v.table.flags.join(' ')
|
||||||
//mut shared := ''
|
//mut shared := ''
|
||||||
if v.pref.is_so {
|
if v.pref.is_so {
|
||||||
a << '-shared -fPIC'// -Wl,-z,defs'
|
a << '-shared -fPIC '// -Wl,-z,defs'
|
||||||
v.out_name = v.out_name + '.so'
|
v.out_name = v.out_name + '.so'
|
||||||
}
|
}
|
||||||
if v.pref.is_prod {
|
if v.pref.is_prod {
|
||||||
|
|||||||
Reference in New Issue
Block a user