1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

gc: fix msvc not using libatomic_ops (#15418)

This commit is contained in:
Emily Hudson
2022-08-14 11:16:52 +01:00
committed by GitHub
parent 8f98f1db9e
commit 90d9b200f9
78 changed files with 18859 additions and 2 deletions

View File

@@ -29,9 +29,8 @@ $if dynamic_boehm ? {
}
}
} $else {
#flag -DGC_BUILTIN_ATOMIC=1
$if macos || linux {
#flag -DGC_BUILTIN_ATOMIC=1
#flag -I @VEXEROOT/thirdparty/libgc/include
$if (!macos && prod && !tinyc && !debug) || !(amd64 || arm64 || i386 || arm32) {
// TODO: replace the architecture check with a `!$exists("@VEXEROOT/thirdparty/tcc/lib/libgc.a")` comptime call
@@ -43,6 +42,7 @@ $if dynamic_boehm ? {
#flag -lpthread
} $else $if freebsd {
// Tested on FreeBSD 13.0-RELEASE-p3, with clang, gcc and tcc:
#flag -DGC_BUILTIN_ATOMIC=1
#flag -DBUS_PAGE_FAULT=T_PAGEFLT
$if !tinyc {
#flag -I @VEXEROOT/thirdparty/libgc/include
@@ -55,6 +55,7 @@ $if dynamic_boehm ? {
}
#flag -lpthread
} $else $if openbsd {
#flag -DGC_BUILTIN_ATOMIC=1
#flag -I/usr/local/include
#flag $first_existing("/usr/local/lib/libgc.a", "/usr/lib/libgc.a")
#flag -lpthread
@@ -62,16 +63,27 @@ $if dynamic_boehm ? {
#flag -DGC_NOT_DLL=1
#flag -DGC_WIN32_THREADS=1
$if tinyc {
#flag -DGC_BUILTIN_ATOMIC=1
#flag -I @VEXEROOT/thirdparty/libgc/include
#flag @VEXEROOT/thirdparty/tcc/lib/libgc.a
#flag -luser32
} $else $if msvc {
// Build libatomic_ops
#flag @VEXEROOT/thirdparty/libatomic_ops/atomic_ops.o
#flag -I @VEXEROOT/thirdparty/libatomic_ops
#flag -I @VEXEROOT/thirdparty/libgc/include
#flag @VEXEROOT/thirdparty/libgc/gc.o
} $else {
#flag -DGC_BUILTIN_ATOMIC=1
#flag -I @VEXEROOT/thirdparty/libgc/include
#flag @VEXEROOT/thirdparty/libgc/gc.o
}
} $else $if $pkgconfig('bdw-gc') {
#flag -DGC_BUILTIN_ATOMIC=1
#pkgconfig bdw-gc
} $else {
#flag -DGC_BUILTIN_ATOMIC=1
#flag -lgc
}
}