aboutsummaryrefslogtreecommitdiffhomepage
path: root/GNUmakefile
AgeCommit message (Collapse)Author
7 daysAdd RP2350 support (#4459)Patricio Whittingslow
machine/rp2350: add support * add linker scripts for rp2350 * add bootloader * begin melding rp2040 and rp2350 APIs * add UART * add rp2350 boot patching * Fix RP2350 memory layout (#4626) * Remove rp2040-style second stage bootloader. * Add 'minimum viable' IMAGE_DEF embedded block * Create a pico2 specific target * Implement rp2350 init, clock, and uart support * Merge rp2 reset code back together * Separate chip-specific clock definitions * Clear pad isolation bit on rp2350 * Init UART in rp2350 runtime * Correct usb/serial initialization order * Implement jump-to-bootloader * test: add pico2 to smoketests --------- Signed-off-by: deadprogram <[email protected]> Co-authored-by: Matthew Mets <[email protected]> Co-authored-by: Matt Mets <[email protected]> Co-authored-by: deadprogram <[email protected]>
11 daystargets: add implementation for Tillitis TKey device (#4631)Ron Evans
* initial implementation for Tillitis TKey device * add UART implementation for TKey * add Pin interface implementation for TKey touch sensor * add RNG interface implementation for TKey * add helpful machine package functions to return identifiers such as name and version for TKey * use built-in timer for sleep timing on TKey * modify UART implementation for TKey to implement Serialer interface * implement BLAKE2s ROM function call for TKey device * handle abort by triggering TKey device fault using illegal instruction to halt CPU * simplify TKey implementation by inheriting from existing riscv32 target * return error for trying to configure invalid baudrates on UART * add tkey to builder test * be very specific for features passed to LLVM for specific config in use for TKey * handle feedback items from TKey device code review Signed-off-by: deadprogram <[email protected]>
2024-12-04make: modify smoketest for nintendoswitch target to build something that ↵deadprogram
includes the 'os' package Signed-off-by: deadprogram <[email protected]>
2024-11-20runtime: implement race-free signals using futexesAyke van Laethem
This requires an API introduced in MacOS 11. I think that's fine, since the version before that (MacOS 10.15) is EOL since 2022. Though if needed, we could certainly work around it by using an older and slightly less nice API.
2024-11-18linux: add runtime.fcntl functionleongross
This is needed for the internal/syscall/unix package. Signed-off-by: leongross <[email protected]>
2024-11-10goenv: read git hash embedded in the binaryAyke van Laethem
The git hash that's part of `tinygo version` is now read from the binary itself instead of embedding it with a `-ldflags` flag. This means it is also present when building TinyGo using `go build` or `go install`.
2024-11-07os: implement StartProcessleongross
Signed-off-by: leongross <[email protected]>
2024-10-25GNUmakefile: do not use the -v flag in `go test`Ayke van Laethem
This makes it easier to find what actually went wrong in CI. This flag was added in #4431, I think it was unintentional.
2024-10-22targets: add WaveShare ESP-C3-32S-KitAyke van Laethem
I've had this board for a while now, but never added proper TinyGo support. So here is a PR to do just that.
2024-10-22esp32c3: add smoke tests for a few boardsAyke van Laethem
These boards probably haven't been working since the addition of I2C, because they were missing some constants in the machine package.
2024-10-08crypto/x509/internal/macos: add package stub to build crypto/x509 on macOSElias Naur
2024-10-04GNUmakefile: more stdlib packagesDamian Gryski
2024-10-03GNUmakefile: add some more passing stdlib tests (#4492)Damian Gryski
2024-09-17tinygo: add relative and absolute --dir options to wasmtime args (#4431)Randy Reddig
main: add relative and absolute --dir options to wasmtime args
2024-09-13Fix #4421: Add `-C DIR` flag (#4422)archie2x
feature: Fix #4421: Add `-C DIR` flag Signed-off-by: Roger Standridge <[email protected]>
2024-09-08gen-device: switch generator for Renesas code to use main cmsis-svd repodeadprogram
2024-09-06GNUmakefile, internal/wasm-tools: s/ydnar/bytecodealliance/gRandy Reddig
2024-09-05add board: RAKwireless RAK4631 (#4454)Warren Guy
targets: add rak4631
2024-08-17ci: use Go 1.23Ayke van Laethem
2024-08-17unique: implement custom version of unique packageAyke van Laethem
This version probably isn't as fast as the upstream version, but it is good enough for now. It also doesn't free unreferenced handles like the upstream version.
2024-08-15os/user: use stdlib version of this packageAyke van Laethem
I tried implementing enough CGo support to get the native os/user package to work. But I hit a few bugs, probably in CGo itself. Then I realized I could just as well set the osusergo build tag to disable CGo for this specific case. This actually gets the os/user package to work correctly on Linux (I confirmed it returns my name/uid/homedir etc). On other systems, it probably just returns an error if it can't determine these kinds of things. But that's no worse than the current behavior which just doesn't do anything at all.
2024-08-15make spellfix: fix top level files, too.Dan Kegel
Do manual fix in GNUmakefile, since spellchecking that is just too meta.
2024-08-14make spell: add a few missing misspellings, fix format of .csv file, also ↵Dan Kegel
fix *.md
2024-08-12GNUmakefile: add spellfix target, use it. (#4387)dkegel-fastly
TODO: Remove the go.mod/go.sum in internal/tools once doing so doesn't break CI (e.g. once we drop support for go 1.19) * builder/cc1as.h: fix typo found by 'make spell' * GNUmakefile: remove exception for inbetween, fix instance now found by 'make spell' * GNUmakefile: remove exception for programmmer, fix instance now found by 'make spell' * go.mod: use updated misspell. GNUmakefile: add spellfix target, use it. * ignore directories properly when invoking spellchecker. * make spell: give internal/tools its own go.mod, as misspell requires newer go * make lint: depend on tools and run the installed revive (which was perhaps implied by the change that added revive to internal/tools, but not required in GNUmakefile until we gave internal/tools its own temporary go.mod) * .github: now that 'make spell' works well, run it from CI * GNUmakefile: make spell now aborts if it finds misspelt words, so what it finds doesn't get lost in CI logs * GNUmakefile: tools: avoid -C option on go generate to make test-llvm15-go119 circleci job happy, see https://cs.opensource.google/go/go/+/2af48cbb7d85e5fdc635e75b99f949010c607786 * internal/tools/go.mod: fix format of go version to leave out patchlevel, else go complains.
2024-08-12GNUmakefile: add "help" target (#4390)dkegel-fastly
Example output: $ make help clean Remove build directory fmt Reformat source fmt-check Warn if any source needs reformatting gen-device Generate microcontroller-specific sources llvm-source Get LLVM sources llvm-build Build LLVM lint Lint source tree spell Spellcheck source tree Might even work on windows, since git for windows comes with awk.
2024-08-10cgo: add support for printfAyke van Laethem
The C printf function is sometimes needed for C files included using CGo. This commit makes sure they're available on all systems where CGo is fully supported (that is, everywhere except on AVR). For baremetal systems using picolibc, I've picked the integer-only version of printf to save on flash size. We might want to consider providing a way to pick the floating point version instead, if needed.
2024-08-06ci: don't include prebuilt libraries in the releaseAyke van Laethem
These libraries will be automatically built when needed and cached. The main reason these were needed is for play.tinygo.org, but I've now prebuilt them there directly (so they don't need to be built for every tarball).
2024-07-22all: add linux/mipsle supportAyke van Laethem
This adds linux/mipsle (little endian Mips) support to TinyGo. It also adds experimental linux/mips (big-endian) support. It doesn't quite work yet, some parts of the standard library (like the reflect package) currently seem to assume a little-endian system.
2024-07-17all: simplify wasm-tools-go dependencyRandy Reddig
- add internal/wasm-tools/go.mod file to depend on wasm-tools-go - copy package cm into src/internal/cm - remove wasm-tools-go "vendor" submodule internal/tools: fix typo go.{mod,sum}, internal/tools: add wit-bindgen-go to tools GNUmakefile: use go run for wit-bindgen-go GNUmakefile: add tools target to go:generate tools binaries in internal/tools GNUmakefile: add .PHONY for lint and spell GNUmakefile, internal/cm: vendor package cm into internal/cm go.{mod,sum}: update wasm-tools-go to v0.1.4 internal/wasi: use internal/cm package remove submodule src/vendor/github.com/ydnar/wasm-tools-go GNUmakefile: add comment documenting what wasi-cm target does go.{mod,sum}: remove toolchain; go mod tidy go.mod: revert to Go 1.19 go.mod: go 1.19 go.{mod,sum}, internal/{tools,wasm-tools}: revert root go.mod file to go1.19 Create a wasm-tools specific module that can require go1.22 for wasm-tools-go.
2024-07-14Do not stop compilation on compiler warningsAnatol Pomozov
Compilers like GCC keep adding new checks that produce new warnings. Sometimes it can be false positives. Do not treat such warnings in binaryen library as errors. tinygo won't be able to provide zero warnings in its dependencies. Closes #4332
2024-07-02wasi preview 2 support (#4027)Damian Gryski
* all: wasip2 support Co-authored-by: Randy Reddig <[email protected]>
2024-06-14Add smoke tests for machine packageAyke van Laethem
The machine package wasn't tested for every board. Therefore, add a new serial-like test that also tries to import the machine package. This should highlight potential issues in the future.
2024-05-24LLVM 18 supportAyke van Laethem
2024-05-13targets: add support for Badger2040 Wdeadprogram
Signed-off-by: deadprogram <[email protected]>
2024-05-12targets: add support for m5paperJohann Freymuth
2024-05-05Makefile: add lld to list of build targets for wasm-ldChristian Stewart
The current list of targets does not build wasm-ld. wasm-ld is a symlink created in ./llvm-build/bin pointing to ./lld. Add the "lld" build target to get wasm-ld into ./llvm-build/bin. Fixes a build failure where wasm-ld is not found. Signed-off-by: Christian Stewart <[email protected]>
2024-04-30Add 'make spell' target, fix what it finds. In .go files, only checks comments.Dan Kegel
2024-04-29make: use release esp-17.0.1_20240419 tag for source from espressif LLVM ↵deadprogram
fork for reproducible builds Signed-off-by: deadprogram <[email protected]>
2024-04-22Lint: lint and fix src/{os,reflect} (#4228)dkegel-fastly
* lint: expand to src/{os,reflect}, fix or suppress what it found * internal/tools/tools.go: the tools idiom requires a build tag guard to avoid go test complaints
2024-04-19add stm32 nucleol476rg supportPatrick Ting
2024-04-13lint: add "make lint" target, run it from ciDan Kegel
See https://github.com/tinygo-org/tinygo/issues/4225 Runs in both circleci and github, circleci is run on branch push, github is run on PR Revive builds so fast, don't bother installing it; saves us wondering which one we get Uses tools.go idiom to give control over linter versions to go.mod. Also pacifies linter re AppendToGlobal as a token first fix. TODO: gradually expand the number of directories that are linted, uncomment more entries in revive.toml, and fix or suppress the warnings lint finds. TODO: add linters "go vet" and staticcheck NOT TODO: don't add metalinters like golangci-lint that pull in lots of new of dependencies; we'd rather not clutter go.mod that much, let alone open ourselves up to the additional attack surface.
2024-04-04rp2040: make all RP2040 boards available for simulationAyke van Laethem
This makes all rp2040 boards available for simulation using -tags=<board_name>. Importantly, this includes the Gopher Badge which I'm working on to add to the TinyGo Playground.
2024-03-27all: replace target=wasi with target=wasip1Randy Reddig
This eliminates the 'wasi' build tag in favor of 'GOOS=wasip1', introduced in Go 1.21. For backwards compatablity, -target=wasi is a synonym for -target=wasip1.
2024-03-26wasm-unknown: add math and memory builtins that LLVM needsAyke van Laethem
This new library is needed for wasm targets that aren't WASI and don't need/want a libc, but still need some intrinsics that are generated by LLVM.
2024-03-24ci: don't add --recursive when updating submodulesAyke van Laethem
It's not generally needed. It was added in https://github.com/tinygo-org/tinygo/pull/3958 to fix an issue with binaryen that has since been fixed in a different way, so we don't need the googletest dependency anymore.
2024-03-23Add smoke test for pca10059-s140v7Jonathan Böcker
2024-03-22Makefile: allow overriding the packages to test in `make test`Ayke van Laethem
This way you can for example run `make test GOTESTPKGS=./builder` to only test the builder package. I've often done this by manually modifying the Makefile, so having a make parameter available would make this much easier.
2024-02-26ci: fix binaryen buildv0.31.0Ayke van Laethem
Disable the googletest dependency so that we can avoid that submodule dependency.
2024-02-23targets: add support for Thumbydeadprogram
Signed-off-by: deadprogram <[email protected]>
2024-02-17targets/wasm_unknown: use proper defaults for GCdeadprogram
Signed-off-by: deadprogram <[email protected]>