-
Notifications
You must be signed in to change notification settings - Fork 193
Comparing changes
Open a pull request
base repository: WebAssembly/wasi-sdk
base: wasi-sdk-22
head repository: WebAssembly/wasi-sdk
compare: wasi-sdk-23
- 19 commits
- 59 files changed
- 8 contributors
Commits on Apr 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 34d77e5 - Browse repository at this point
Copy the full SHA 34d77e5View commit details
Commits on May 5, 2024
-
Update the version of
wasm-component-ld
used (#416)Recent changes have added various flags for customizing the component-creation process in addition to supporting more flags being forwarded to `wasm-ld`.
Configuration menu - View commit details
-
Copy full SHA for 95e3c2c - Browse repository at this point
Copy the full SHA 95e3c2cView commit details
Commits on May 9, 2024
-
exclude 32-bit Windows artifact in download-workflow-artifacts.sh (#417)
This helps ensure the identically-named 32-bit tarfile doesn't overwrite the 64-bit one when we extract everything into a single directory. I'll follow this up by making an updated wasi-sdk-22.0.m-mingw.tar.gz and adding it to the wasi-sdk-22 release. Fixes #326 Signed-off-by: Joel Dice <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for af429ed - Browse repository at this point
Copy the full SHA af429edView commit details
Commits on May 22, 2024
-
Add DWARF debugging information to all artifacts by default (#422)
* Add DWARF debugging information to all artifacts by default This commit adds DWARF debugging information with the `-g` compiler flag to all WASI artifacts for wasi-sdk. The LLVM build itself does not have debugging information, only the sysroot artifacts. This is intended to assist with debugging. The main downside to this is binary size of generated artifacts will, by default, be larger. Stripping debug information from an artifact though involves removing custom sections which is generally pretty easy to do through wasm tooling. * Pass extra cflags to wasi-libc * Fix tests from previous commit * Update some expected error messages and remove some files with duplicate error messages that are no longer needed. * Remove undefined behavior in `stat.c` where padding bytes were being compared.
Configuration menu - View commit details
-
Copy full SHA for 307694b - Browse repository at this point
Copy the full SHA 307694bView commit details -
Pass
-O2 -DNDEBUG
to wasi-libc again (#423)I forgot in #422 that by specifying `EXTRA_CFLAGS` to the wasi-libc build that it would override the defaults of wasi-libc which is to pass these two flags in. This passes them back in to ensure the default build still has the same flags.
Configuration menu - View commit details
-
Copy full SHA for 68df37e - Browse repository at this point
Copy the full SHA 68df37eView commit details
Commits on Jun 11, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 8827cdf - Browse repository at this point
Copy the full SHA 8827cdfView commit details
Commits on Jun 20, 2024
-
This is analogous to wasi-sdk.cmake and wasi-sdk-pthread.cmake, but for WASIp2. Signed-off-by: Joel Dice <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 7ff81cb - Browse repository at this point
Copy the full SHA 7ff81cbView commit details
Commits on Jul 8, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 35c271e - Browse repository at this point
Copy the full SHA 35c271eView commit details
Commits on Jul 10, 2024
-
Update to the latest wasi-libc. (#435)
Update to wasi-libc 3f43ea9abb24ed8d24d760989e1d87ea385f8eaa.
Configuration menu - View commit details
-
Copy full SHA for 873163a - Browse repository at this point
Copy the full SHA 873163aView commit details
Commits on Jul 11, 2024
-
Rewrite the build system with CMake (#429)
* Rewrite the build system with CMake This commit is an attempt to provide a concrete path forward on #425. I personally think it's pretty important to get the ability to have more architectures here but at the same time I also think it's important to to take this as an opportunity to refactor and improve the build system of this repository. To that end this represents my attempt to improve the status quo. This removes the old `Makefile` and replaces it with a CMake-based system to build all these projects. Overall this is intended to be a "no functional change" intended sort of refactoring. Changing build systems inevitably causes issues, however, so this change additionally has a very high likelihood of needing follow-up fixes. At a high enough level this commit introduces two major changes to how this repository is built: 1. The `make`-based system (the root `Makefile`) is replaced with CMake. This additionally updates tests to use CMake. 2. A single "build" is split into either building a toolchain or building a sysroot. This enables builds to only build one or the other as necessary. The first change, using CMake, is due to the fact that using `make` on Windows basically is not pleasant coupled with the fact that more advanced logic, such as changing flags, compilers, etc, is much easier with a CMake-based system. The second change is intended to cover the use case of #425 in addition to refactoring the current build. Throughout this change I have intentionally not tried to keep a 1:1 correspondance with behaviors in the old `Makefile` because much of this PR is intended to address shortcomings in the old build system. A list of changes, improvements, etc, made here are: * CMake provides a much nicer portability story to Windows than `make`. This is moving towards the direction of not needing `bash`, for example, to build an SDK. Currently `wasi-libc` still requires this, but that's now the only "hard" dependency. * The set of targets built can now be configured for smaller builds and/or debugging just a single target. All WASI targets are still built by default but it's much easier to add/remove them. * Different targets are now able to be built in parallel as opposed to the unconditional serial-nature of the `Makefile`. * Use of `ninja` is no longer required and separate build systems can be used if desired. * The sysroot and the toolchain can now be built with different CMake build profiles. For example the `Makefile` hardcoded `MinSizeRel` and `RelWithDebInfo` and this can now be much more easily customized by the SDK builder. * Tarballs are now more consistently produced and named. For a tarball of the name `foo.tar.gz` it's guaranteed that there's a single folder `foo` created when unpacking the tarball. * The macOS binaries are no longer hybrid x64/arm64 binaries which greatly inflates the size of the SDK. There's now a separate build for each architecture. * CI now produces arm64-linux binaries. The sysroot is not built on the arm64-linux builder and the sysroot from the x86_64-linux builder is used instead. * Tests are almost ready to execute on Windows, there's just a few minor issues related to exit statuses and probably line endings which need to be worked out. Will require someone with a Windows checkout, however. * Tests are now integrated into CMake. This means that the wasm binaries are able to be built in parallel and the tests are additionally executed in parallel with `ctest`. It is possible to build/run a single test. Tests no longer place all of their output in the source tree. * Out-of-tree builds are now possible and the build/installation directories can both be customized. * CI configuration of Windows/macOS/Linux is much more uniform by having everything in one build matrix instead of separate matrices. * Linux builds are exclusively done in docker containers in CI now. CI no longer produces two Linux builds only for one to be discarded when artifacts are published. * Windows 32-bit builds are no longer produced in CI since it's expected that everyone actually wants the 64-bit ones instead. * Use of `ccache` is now automatically enabled if it's detected on the system. * Many preexisting shell scripts are now translated to CMake one way or another. * There's no longer a separate build script for how to build wasi-sdk in docker and outside of docker which needs to be kept in sync, everything funnels through the same script. * The `docker/Dockerfile` build of wasi-sdk now uses the actual toolchain built from CI and additionally doesn't duplicate various CMake-based configuration files. Overall one thing I want to additionally point out is that I'm not CMake expert. I suspect there's lots of little stylistic and such improvements that can be made. * Fix skipping tests on windows * Fetch a full depth in the finalize workflow too * Fix multi-arch docker build * Fix assembling of sysroot * Fix script syntax * Clean up the merge script slightly * Remove Pat's email * Move configuration of CMAKE_EXECUTABLE_SUFFIX * Remove redundant sysroot option * Fix comment in testcase.sh * Update new p2 cmake files * Remove now-duplicate wasi-sdk-p2.cmake
Configuration menu - View commit details
-
Copy full SHA for e29a3fe - Browse repository at this point
Copy the full SHA e29a3feView commit details
Commits on Jul 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 3adc86a - Browse repository at this point
Copy the full SHA 3adc86aView commit details -
Expand README build instructions (#438)
Updating for the rewrite in #429
Configuration menu - View commit details
-
Copy full SHA for 2e7bb65 - Browse repository at this point
Copy the full SHA 2e7bb65View commit details -
Link LLVM-based tools dynamically to LLVM (take 2) (#441)
This is a revival of #397 but only applies the logic to non-Windows platforms. Windows builds still seem to not work so Windows is not improved as a result of this change.
Configuration menu - View commit details
-
Copy full SHA for 778a02b - Browse repository at this point
Copy the full SHA 778a02bView commit details
Commits on Jul 13, 2024
-
Automate more of the release process (#440)
This commit updates the release process of `wasi-sdk` to remove most of the manual interaction and steps done. Instead now draft releases are automatically created for tags made. This means that there's only two steps necessary: (1) pushing a tag and (2) hitting publish on the generated release. This commit also removes a number of the CI scripts previously used to manage releases.
Configuration menu - View commit details
-
Copy full SHA for 297b6d0 - Browse repository at this point
Copy the full SHA 297b6d0View commit details
Commits on Jul 15, 2024
-
Configuration menu - View commit details
-
Copy full SHA for de63287 - Browse repository at this point
Copy the full SHA de63287View commit details
Commits on Jul 16, 2024
-
Update build of toolchain/sysroot to not touch installation root (#446)
* Update build of toolchain/sysroot to not touch installation root This changes everything to ensure that only the `install` step actually tries to install things. Everything is staged into temporary `./install` folders inside of the build directory and then running the build system's `install` target will actually copy out everything using CMake builtins. Closes #442 * Better integrate generating a version file
Configuration menu - View commit details
-
Copy full SHA for 489ce6e - Browse repository at this point
Copy the full SHA 489ce6eView commit details -
Update wasm-component-ld to 0.5.4 (#439)
This updates to the latest version of the linker which has better support for standard flags like `--version` and various other LLD flags.
Configuration menu - View commit details
-
Copy full SHA for ca4fa08 - Browse repository at this point
Copy the full SHA ca4fa08View commit details -
update wasm-component-ld to 0.5.5 (#448)
This includes support for a new `--component-type` option, which allows passing one or more component types as WIT files rather than (or in addition to) object files, which can be preferable when such files must be stored in source control. Signed-off-by: Joel Dice <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1a3d5ee - Browse repository at this point
Copy the full SHA 1a3d5eeView commit details
Commits on Jul 17, 2024
-
Don't modify the host compiler's sysroot (#445)
This commit updates the building of the wasi-sdk sysroot to leverage the `-resource-dir` argument from Clang to avoid modifying the host compiler's sysroot with compiler-rt things. This should help improve the experience of building a standalone sysroot with whatever host Clang is on the system. Closes #444
Configuration menu - View commit details
-
Copy full SHA for 08be2d4 - Browse repository at this point
Copy the full SHA 08be2d4View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff wasi-sdk-22...wasi-sdk-23