mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-16 10:43:29 +00:00
wasm: add Boehm GC support
This adds support for `-gc=boehm` on `-target=wasip1` and `-target=wasm` (in a browser or NodeJS). Notably it does *not* add Boehm GC support for `-target=wasip2`, since that target doesn't have a real libc.
This commit is contained in:
committed by
Ron Evans
parent
9c3b706533
commit
c08b2dfe06
+6
-1
@@ -120,7 +120,7 @@ var libWasiLibc = Library{
|
||||
return nil
|
||||
},
|
||||
sourceDir: func() string { return filepath.Join(goenv.Get("TINYGOROOT"), "lib/wasi-libc") },
|
||||
librarySources: func(target string) ([]string, error) {
|
||||
librarySources: func(target string, libcNeedsMalloc bool) ([]string, error) {
|
||||
type filePattern struct {
|
||||
glob string
|
||||
exclude []string
|
||||
@@ -169,6 +169,11 @@ var libWasiLibc = Library{
|
||||
{glob: "libc-bottom-half/sources/*.c"},
|
||||
}
|
||||
|
||||
// We're using the Boehm GC, so we need a heap implementation in the libc.
|
||||
if libcNeedsMalloc {
|
||||
globs = append(globs, filePattern{glob: "dlmalloc/src/dlmalloc.c"})
|
||||
}
|
||||
|
||||
// See: LIBC_TOP_HALF_MUSL_SOURCES in the Makefile
|
||||
sources := []string{
|
||||
"libc-top-half/musl/src/misc/a64l.c",
|
||||
|
||||
Reference in New Issue
Block a user