v.builder: remove default link flags -lm, -ldl, -lpthread (use module specific link flags instead) (#10099)
parent
b728d89069
commit
20a22453cf
|
@ -2,6 +2,10 @@ module dl
|
||||||
|
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
$if linux {
|
||||||
|
#flag -ldl
|
||||||
|
}
|
||||||
|
|
||||||
pub const (
|
pub const (
|
||||||
rtld_now = C.RTLD_NOW
|
rtld_now = C.RTLD_NOW
|
||||||
rtld_lazy = C.RTLD_LAZY
|
rtld_lazy = C.RTLD_LAZY
|
||||||
|
|
|
@ -9,6 +9,15 @@ $if gcboehm ? {
|
||||||
}
|
}
|
||||||
#include "fontstash.h"
|
#include "fontstash.h"
|
||||||
#flag -I /usr/local/Cellar/freetype/2.10.2/include/freetype2
|
#flag -I /usr/local/Cellar/freetype/2.10.2/include/freetype2
|
||||||
|
|
||||||
|
$if windows {
|
||||||
|
$if tinyc {
|
||||||
|
#flag @VEXEROOT/thirdparty/tcc/lib/openlibm.o
|
||||||
|
}
|
||||||
|
} $else {
|
||||||
|
#flag -lm
|
||||||
|
}
|
||||||
|
|
||||||
//#flag -lfreetype
|
//#flag -lfreetype
|
||||||
pub const (
|
pub const (
|
||||||
// TODO: fontstash.used_import is used to keep v from warning about unused imports
|
// TODO: fontstash.used_import is used to keep v from warning about unused imports
|
||||||
|
|
|
@ -4,11 +4,15 @@
|
||||||
module math
|
module math
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
$if windows {
|
$if windows {
|
||||||
$if tinyc {
|
$if tinyc {
|
||||||
#flag @VEXEROOT/thirdparty/tcc/lib/openlibm.o
|
#flag @VEXEROOT/thirdparty/tcc/lib/openlibm.o
|
||||||
}
|
}
|
||||||
|
} $else {
|
||||||
|
#flag -lm
|
||||||
}
|
}
|
||||||
|
|
||||||
fn C.acos(x f64) f64
|
fn C.acos(x f64) f64
|
||||||
|
|
||||||
fn C.asin(x f64) f64
|
fn C.asin(x f64) f64
|
||||||
|
|
|
@ -40,6 +40,8 @@ $if ios {
|
||||||
#flag solaris -DSOKOL_NO_ENTRY
|
#flag solaris -DSOKOL_NO_ENTRY
|
||||||
// TODO end
|
// TODO end
|
||||||
|
|
||||||
|
#flag linux -ldl
|
||||||
|
|
||||||
$if gcboehm ? {
|
$if gcboehm ? {
|
||||||
#define SOKOL_MALLOC GC_MALLOC
|
#define SOKOL_MALLOC GC_MALLOC
|
||||||
#define SOKOL_CALLOC(n,m) GC_MALLOC((n)*(m))
|
#define SOKOL_CALLOC(n,m) GC_MALLOC((n)*(m))
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
module threads
|
||||||
|
|
||||||
|
// This module adds the necessary compiler flags for using threads.
|
||||||
|
// It is automatically imported by code that does `go func()` .
|
||||||
|
// See vlib/v/parser/pratt.v, search for ast.GoExpr .
|
||||||
|
// The goal is that programs, that do not use threads at all will not need
|
||||||
|
// to link to -lpthread etc.
|
||||||
|
// NB: on some platforms like Android, linking -lpthread is not needed too.
|
||||||
|
// See https://stackoverflow.com/a/31277163/1904615
|
||||||
|
|
||||||
|
$if !windows && !android {
|
||||||
|
#flag -lpthread
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
module threads
|
||||||
|
|
||||||
|
// This file is just a placeholder.
|
||||||
|
// The actual implementation is backend/platform specific, so see threads.c.v, threads.js.v etc.
|
|
@ -380,20 +380,11 @@ fn (mut v Builder) setup_ccompiler_options(ccompiler string) {
|
||||||
// || os.user_os() == 'linux'
|
// || os.user_os() == 'linux'
|
||||||
if !v.pref.is_bare && v.pref.build_mode != .build_module
|
if !v.pref.is_bare && v.pref.build_mode != .build_module
|
||||||
&& v.pref.os in [.linux, .freebsd, .openbsd, .netbsd, .dragonfly, .solaris, .haiku] {
|
&& v.pref.os in [.linux, .freebsd, .openbsd, .netbsd, .dragonfly, .solaris, .haiku] {
|
||||||
ccoptions.linker_flags << '-lm'
|
|
||||||
ccoptions.linker_flags << '-lpthread'
|
|
||||||
// -ldl is a Linux only thing. BSDs have it in libc.
|
|
||||||
if v.pref.os == .linux {
|
|
||||||
ccoptions.linker_flags << '-ldl'
|
|
||||||
}
|
|
||||||
if v.pref.os in [.freebsd, .netbsd] {
|
if v.pref.os in [.freebsd, .netbsd] {
|
||||||
// Free/NetBSD: backtrace needs execinfo library while linking
|
// Free/NetBSD: backtrace needs execinfo library while linking
|
||||||
ccoptions.linker_flags << '-lexecinfo'
|
ccoptions.linker_flags << '-lexecinfo'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !v.pref.is_bare && v.pref.os == .js && os.user_os() == 'linux' {
|
|
||||||
ccoptions.linker_flags << '-lm'
|
|
||||||
}
|
|
||||||
ccoptions.env_cflags = os.getenv('CFLAGS')
|
ccoptions.env_cflags = os.getenv('CFLAGS')
|
||||||
ccoptions.env_ldflags = os.getenv('LDFLAGS')
|
ccoptions.env_ldflags = os.getenv('LDFLAGS')
|
||||||
$if trace_ccoptions ? {
|
$if trace_ccoptions ? {
|
||||||
|
|
|
@ -519,6 +519,7 @@ fn (mut p Parser) go_expr() ast.GoExpr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pos := spos.extend(p.prev_tok.position())
|
pos := spos.extend(p.prev_tok.position())
|
||||||
|
p.register_auto_import('sync.threads')
|
||||||
return ast.GoExpr{
|
return ast.GoExpr{
|
||||||
call_expr: call_expr
|
call_expr: call_expr
|
||||||
pos: pos
|
pos: pos
|
||||||
|
|
Loading…
Reference in New Issue