compiler: rename is_so to is_shared

pull/4487/head
Tim Basel 2020-04-18 17:46:23 +02:00 committed by GitHub
parent 392986b763
commit 86df486988
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 16 additions and 26 deletions

View File

@ -123,8 +123,8 @@ fn parse_args(args []string) (&pref.Preferences, string) {
'-v' { res.is_verbose = true } '-v' { res.is_verbose = true }
'-cg' { res.is_debug = true } '-cg' { res.is_debug = true }
'-live' { res.is_live = true } '-live' { res.is_live = true }
'-solive' { res.is_solive = true res.is_so = true } '-sharedlive' { res.is_live = true res.is_shared = true }
'-shared' { res.is_so = true } '-shared' { res.is_shared = true }
'-autofree' { res.autofree = true } '-autofree' { res.autofree = true }
'-compress' { res.compress = true } '-compress' { res.compress = true }
'-freestanding' { res.is_bare = true } '-freestanding' { res.is_bare = true }

View File

@ -69,7 +69,7 @@ pub fn (b mut Builder) compile_c() {
println(files) println(files)
} }
mut out_name_c := get_vtmp_filename(b.pref.out_name, '.tmp.c') mut out_name_c := get_vtmp_filename(b.pref.out_name, '.tmp.c')
if b.pref.is_so { if b.pref.is_shared {
out_name_c = get_vtmp_filename(b.pref.out_name, '.tmp.so.c') out_name_c = get_vtmp_filename(b.pref.out_name, '.tmp.so.c')
} }
b.build_c(files, out_name_c) b.build_c(files, out_name_c)

View File

@ -126,7 +126,7 @@ fn (v mut Builder) cc() {
} }
} }
if !v.pref.is_so if !v.pref.is_shared
&& v.pref.build_mode != .build_module && v.pref.build_mode != .build_module
&& os.user_os() == 'windows' && os.user_os() == 'windows'
&& !v.pref.out_name.ends_with('.exe') && !v.pref.out_name.ends_with('.exe')
@ -136,7 +136,7 @@ fn (v mut Builder) cc() {
// linux_host := os.user_os() == 'linux' // linux_host := os.user_os() == 'linux'
v.log('cc() isprod=$v.pref.is_prod outname=$v.pref.out_name') v.log('cc() isprod=$v.pref.is_prod outname=$v.pref.out_name')
if v.pref.is_so { if v.pref.is_shared {
a << '-shared -fPIC ' // -Wl,-z,defs' a << '-shared -fPIC ' // -Wl,-z,defs'
v.pref.out_name += '.so' v.pref.out_name += '.so'
} }
@ -210,8 +210,13 @@ fn (v mut Builder) cc() {
if v.pref.ccompiler != 'msvc' && v.pref.os != .freebsd { if v.pref.ccompiler != 'msvc' && v.pref.os != .freebsd {
a << '-Werror=implicit-function-declaration' a << '-Werror=implicit-function-declaration'
} }
for f in v.generate_hotcode_reloading_compiler_flags() { if v.pref.is_shared || v.pref.is_live {
a << f if v.pref.os == .linux || os.user_os() == 'linux' {
a << '-rdynamic'
}
if v.pref.os == .mac || os.user_os() == 'mac' {
a << '-flat_namespace'
}
} }
mut libs := '' // builtin.o os.o http.o etc mut libs := '' // builtin.o os.o http.o etc
if v.pref.build_mode == .build_module { if v.pref.build_mode == .build_module {

View File

@ -160,7 +160,7 @@ pub fn (v Builder) get_user_files() []string {
if v.pref.is_live { if v.pref.is_live {
user_files << os.join_path(preludes_path, 'live_main.v') user_files << os.join_path(preludes_path, 'live_main.v')
} }
if v.pref.is_solive { if v.pref.is_live && v.pref.is_shared {
user_files << os.join_path(preludes_path, 'live_shared.v') user_files << os.join_path(preludes_path, 'live_shared.v')
} }
if v.pref.is_test { if v.pref.is_test {

View File

@ -5,20 +5,6 @@ import (
time time
) )
fn (v &Builder) generate_hotcode_reloading_compiler_flags() []string {
mut a := []string
if v.pref.is_live || v.pref.is_so {
// See 'man dlopen', and test running a GUI program compiled with -live
if v.pref.os == .linux || os.user_os() == 'linux' {
a << '-rdynamic'
}
if v.pref.os == .mac || os.user_os() == 'mac' {
a << '-flat_namespace'
}
}
return a
}
fn (v &Builder) generate_hotcode_reloading_declarations() { fn (v &Builder) generate_hotcode_reloading_declarations() {
/* /*
QTODO QTODO

View File

@ -209,7 +209,7 @@ pub fn (v mut Builder) cc_msvc() {
a << '/Zi' a << '/Zi'
a << '/MDd' a << '/MDd'
} }
if v.pref.is_so { if v.pref.is_shared {
if !v.pref.out_name.ends_with('.dll') { if !v.pref.out_name.ends_with('.dll') {
v.pref.out_name += '.dll' v.pref.out_name += '.dll'
} }

View File

@ -78,7 +78,7 @@ pub fn (c mut Checker) check_files(ast_files []ast.File) {
if c.pref.build_mode == .build_module || c.pref.is_test { if c.pref.build_mode == .build_module || c.pref.is_test {
return return
} }
if c.pref.is_so { if c.pref.is_shared {
// shared libs do not need to have a main // shared libs do not need to have a main
return return
} }

View File

@ -29,8 +29,7 @@ pub mut:
is_test bool // `v test string_test.v` is_test bool // `v test string_test.v`
is_script bool // single file mode (`v program.v`), main function can be skipped is_script bool // single file mode (`v program.v`), main function can be skipped
is_live bool // main program that contains live/hot code is_live bool // main program that contains live/hot code
is_solive bool // a shared library, that will be used in a -live main program is_shared bool // an ordinary shared library, -shared, no matter if it is live or not
is_so bool // an ordinary shared library, -shared, no matter if it is live or not
is_prof bool // benchmark every function is_prof bool // benchmark every function
translated bool // `v translate doom.v` are we running V code translated from C? allow globals, ++ expressions, etc translated bool // `v translate doom.v` are we running V code translated from C? allow globals, ++ expressions, etc
is_prod bool // use "-O2" is_prod bool // use "-O2"