Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: WebAssembly/wasi-sdk
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: wasi-sdk-22
Choose a base ref
...
head repository: WebAssembly/wasi-sdk
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: wasi-sdk-23
Choose a head ref
  • 19 commits
  • 59 files changed
  • 8 contributors

Commits on Apr 23, 2024

  1. Configuration menu
    Copy the full SHA
    34d77e5 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2024

  1. 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`.
    alexcrichton authored May 5, 2024
    Configuration menu
    Copy the full SHA
    95e3c2c View commit details
    Browse the repository at this point in the history

Commits on May 9, 2024

  1. 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]>
    dicej authored May 9, 2024
    Configuration menu
    Copy the full SHA
    af429ed View commit details
    Browse the repository at this point in the history

Commits on May 22, 2024

  1. 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.
    alexcrichton authored May 22, 2024
    Configuration menu
    Copy the full SHA
    307694b View commit details
    Browse the repository at this point in the history
  2. 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.
    alexcrichton authored May 22, 2024
    Configuration menu
    Copy the full SHA
    68df37e View commit details
    Browse the repository at this point in the history

Commits on Jun 11, 2024

  1. Configuration menu
    Copy the full SHA
    8827cdf View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2024

  1. add wasi-sdk-p2.cmake (#430)

    This is analogous to wasi-sdk.cmake and wasi-sdk-pthread.cmake, but for WASIp2.
    
    Signed-off-by: Joel Dice <[email protected]>
    dicej authored Jun 20, 2024
    Configuration menu
    Copy the full SHA
    7ff81cb View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Avoid extra Cargo installation artifacts (#432)

    As @bjorn3 mentioned in #420, using `--no-track` should get rid of the extra files that show up after the `cargo install`. Fixes #420.
    abrown authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    35c271e View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. Update to the latest wasi-libc. (#435)

    Update to wasi-libc 3f43ea9abb24ed8d24d760989e1d87ea385f8eaa.
    sunfishcode authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    873163a View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2024

  1. 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
    alexcrichton authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    e29a3fe View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2024

  1. Configuration menu
    Copy the full SHA
    3adc86a View commit details
    Browse the repository at this point in the history
  2. Expand README build instructions (#438)

    Updating for the rewrite in #429
    alexcrichton authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    2e7bb65 View commit details
    Browse the repository at this point in the history
  3. 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.
    alexcrichton authored Jul 12, 2024
    Configuration menu
    Copy the full SHA
    778a02b View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2024

  1. 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.
    alexcrichton authored Jul 13, 2024
    Configuration menu
    Copy the full SHA
    297b6d0 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2024

  1. Configuration menu
    Copy the full SHA
    de63287 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. 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
    alexcrichton authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    489ce6e View commit details
    Browse the repository at this point in the history
  2. 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.
    alexcrichton authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    ca4fa08 View commit details
    Browse the repository at this point in the history
  3. 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]>
    dicej authored Jul 16, 2024
    Configuration menu
    Copy the full SHA
    1a3d5ee View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. 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
    alexcrichton authored Jul 17, 2024
    Configuration menu
    Copy the full SHA
    08be2d4 View commit details
    Browse the repository at this point in the history
Loading