Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream 3.1.56 #761

Draft
wants to merge 80 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
a2ccccb
Update arm64 linux release (#1204)
sbc100 Mar 15, 2023
04944dd
Add linux/arm64 support to bazel rules (#1156)
robbertvanginkel Mar 30, 2023
886a44a
3.1.35 (#1208)
dschuff Apr 4, 2023
22ede2d
Add `activated_path_skip` to node v14.18.2 packages (#1209)
sbc100 Apr 10, 2023
dd8bbe5
Update node version 14.15.5 -> 15.14.0 (#829)
sbc100 Apr 11, 2023
da96998
3.1.36 (#1210)
sbc100 Apr 17, 2023
b113f24
3.1.37 (#1212)
sbc100 Apr 26, 2023
0329dba
3.1.38 (#1215)
sbc100 May 10, 2023
e8b6477
3.1.39 (#1217)
dschuff May 19, 2023
ae24571
3.1.40 (#1221)
dschuff May 31, 2023
4b47cbf
Update mac builders to use Circle's gen2 mac runner (#1222)
dschuff May 31, 2023
3009d69
Add security policy (#1224)
pnacht May 31, 2023
5753939
Docker: remove remnant of fastcomp (#1226)
kleisauke Jun 1, 2023
e411325
Docker: remove redundant `EMSDK_NODE` env (#1225)
kleisauke Jun 1, 2023
775ba04
3.1.41 (#1230)
sbc100 Jun 6, 2023
d7327b4
Update node, 15.14.0 -> 16.20.0 (#1232)
dschuff Jun 20, 2023
c2260b4
3.1.42 (#1238)
sbc100 Jun 23, 2023
1d59cd2
Prefer `arm64` over `aarch64` internally. NFC (#1246)
sbc100 Jun 27, 2023
88ee963
Add some basic testing of arm64 linux (#1247)
sbc100 Jun 27, 2023
098a3ff
Add a warning when trying to install linux-arm64 binaries (#1249)
sbc100 Jun 27, 2023
c88612d
Fix `activated_path_skip` on repeated running of `emsdk_env.sh` (#1250)
sbc100 Jun 27, 2023
3bde060
Fix a typo (#1251)
kripken Jun 27, 2023
e28e476
Docker: use a entrypoint script (#1227)
kleisauke Jul 6, 2023
d9c66fa
3.1.43 (#1254)
sbc100 Jul 10, 2023
2d3b8a7
Have create_release.py push the new branch automatically (#1255)
sbc100 Jul 10, 2023
11fa694
Update linux arm64 to 3.1.41 (#1256)
sbc100 Jul 10, 2023
4f2db96
Rename `zipfile` to `archive` or `download` as appropriate. NFC (#1257)
sbc100 Jul 10, 2023
b6df670
Update linux arm64 to 3.1.43 (#1258)
sbc100 Jul 11, 2023
a896e3d
3.1.44 (#1260)
sbc100 Jul 25, 2023
ef2a8e9
wasm_cc_binary: Specify a default OS. Allow users to override platfor…
martijneken Jul 28, 2023
350c19a
Add starlark highlighting to Bazel readme (#1264)
mattsoulanille Aug 8, 2023
c8dcb45
3.1.45 (#1269)
dschuff Aug 23, 2023
2d22a55
Update linux arm64 build. NFC (#1270)
sbc100 Aug 23, 2023
5d347a6
Fix the format of the .flake8 file, and exclude the script directory …
dschuff Aug 24, 2023
3391e03
Replace update_bazel_workspace.sh with a python script (#1271)
dschuff Aug 24, 2023
9b0db91
[bazel] populate all_files (#1274)
walkingeyerobot Aug 29, 2023
93360d3
3.1.46 (#1279)
sbc100 Sep 15, 2023
d42c740
Switch to .xz by default for SDK downloads (#1281)
sbc100 Sep 21, 2023
8e82384
Update file extension used by create_release script (#1285)
sbc100 Oct 10, 2023
7171748
Use .tar.xz extension for arm64 linux binary upload (#1287)
sbc100 Oct 10, 2023
37b85e9
3.1.47 (#1286)
sbc100 Oct 10, 2023
40e9cd8
Update linux arm64 to 3.1.47 (#1288)
sbc100 Oct 11, 2023
34e6772
[Bazel] Add an :all target (#1295)
attilaolah Oct 30, 2023
f677ef9
3.1.48 (#1297)
sbc100 Nov 6, 2023
bfda0d0
3.1.49 (#1300)
sbc100 Nov 14, 2023
88c2c95
Fix spelling in README.md (#1305)
fkaelberer Nov 28, 2023
e2627e2
3.1.50 (#1306)
aheejin Nov 30, 2023
b54a6b6
Auto-publish Arm64 images when emscripten-releases-tags.json is updat…
jamsinclair Dec 4, 2023
ef77dcc
Add suggestion to install using `--permanent` or `--system` on window…
sbc100 Dec 4, 2023
cc1b3ef
Error on unknown arguments passed to --activate (#1313)
sbc100 Dec 8, 2023
4e24961
3.1.51 (#1323)
sbc100 Dec 14, 2023
8822664
Remove logic build building native asm.js optimizer. NFC (#1325)
sbc100 Dec 18, 2023
9347bc3
Fix FileExistsError on subsequent bazel builds on Windows (#1326) (#1…
NovaSagittarii Dec 27, 2023
0bbae74
Restore npm install step removed in #1325 (#1329)
sbc100 Jan 3, 2024
96bd9f0
3.1.52 (#1332)
sbc100 Jan 19, 2024
f2baa2f
Only pass -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON when building llv…
sbc100 Jan 24, 2024
4f0128e
[ci] Update to latest version of cicleci windows orb (#1339)
sbc100 Jan 29, 2024
2aa7490
3.1.53 (#1336)
sbc100 Jan 29, 2024
c18280c
3.1.54 (#1343)
sbc100 Feb 15, 2024
7815dca
3.1.55 (#1350)
sbc100 Mar 1, 2024
5726ccc
Remove JS_ENGINES and COMPILER_ENGINE from config file (#1354)
sbc100 Mar 14, 2024
da5a192
3.1.56 (#1353)
aheejin Mar 14, 2024
44bf7cf
CI: Build `latest` docker image rather than `tot` (#1359)
sbc100 Mar 14, 2024
ccd111f
Prefer `curl` for downloading files over `urllib` (#1355)
sbc100 Mar 14, 2024
e10826f
3.1.56 (#1360)
aheejin Mar 15, 2024
8c6f771
Merge tag '3.1.56'
radekdoulik Apr 8, 2024
91ec18f
Bump the package versions too
lewing Apr 12, 2024
c3c488b
Update dependencies from https://github.com/dotnet/emscripten build 2…
dotnet-maestro[bot] Apr 13, 2024
7e772a6
Merge branch 'main' into pr-merge-upstream-3.1.56
lewing Apr 13, 2024
2cdd92e
Update dependencies from https://github.com/dotnet/binaryen build 202…
dotnet-maestro[bot] Apr 13, 2024
2ca427c
Update dependencies from https://github.com/dotnet/emscripten build 2…
dotnet-maestro[bot] Apr 14, 2024
7e5b7d6
Update dependencies from https://github.com/dotnet/binaryen build 202…
dotnet-maestro[bot] Apr 14, 2024
77c3082
Update dependencies from https://github.com/dotnet/emscripten build 2…
dotnet-maestro[bot] Apr 15, 2024
0918bb4
Update dependencies from https://github.com/dotnet/binaryen build 202…
dotnet-maestro[bot] Apr 15, 2024
cfbc0f9
Update dependencies from https://github.com/dotnet/emscripten build 2…
dotnet-maestro[bot] Apr 16, 2024
f48b487
Update dependencies from https://github.com/dotnet/llvm-project build…
dotnet-maestro[bot] Apr 16, 2024
a39ce93
Update dependencies from https://github.com/dotnet/binaryen build 202…
dotnet-maestro[bot] Apr 16, 2024
5831a08
Update dependencies from https://github.com/dotnet/node build 20240415.1
dotnet-maestro[bot] Apr 16, 2024
559366c
Use latest emscripten transport package
radekdoulik Apr 24, 2024
c3a7de6
Use LLVM 19.x
radekdoulik May 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
159 changes: 126 additions & 33 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,52 @@
version: 2.1

orbs:
win: circleci/windows@1.0.0
win: circleci/windows@5.0

executors:
bionic:
docker:
- image: buildpack-deps:bionic
mac:
environment:
EMSDK_NOTTY: "1"
# Without this, any `brew install` command will result in self-update of
# brew itself which takes more than 4 minutes.
HOMEBREW_NO_AUTO_UPDATE: "1"
macos:
xcode: "12.5.1"
resource_class: macos.x86.medium.gen2
mac_arm64:
environment:
EMSDK_NOTTY: "1"
# Without this, any `brew install` command will result in self-update of
# brew itself which takes more than 4 minutes.
HOMEBREW_NO_AUTO_UPDATE: "1"
macos:
xcode: "13.4.1"
resource_class: macos.m1.medium.gen1
linux_arm64:
machine:
image: ubuntu-2004:2023.07.1
resource_class: arm.medium

commands:
setup-macos:
steps:
- checkout
- run:
name: Install CMake
command: brew install cmake
test-macos:
steps:
- run:
name: test.sh
command: test/test.sh
- run:
name: test.py
command: |
source emsdk_env.sh
test/test.py

jobs:
flake8:
Expand All @@ -20,9 +60,9 @@ jobs:
apt-get install -q -y python-pip python3-pip
- run: python2 -m pip install --upgrade pip
- run: python3 -m pip install --upgrade pip
- run: python2 -m pip install flake8==3.7.8
- run: python3 -m pip install flake8==3.7.8
- run: python2 -m flake8 --show-source --statistics
- run: python2 -m pip install flake8==3.9.2
- run: python3 -m pip install flake8==3.9.2
- run: python2 -m flake8 --show-source --statistics --extend-exclude=./scripts
- run: python3 -m flake8 --show-source --statistics
test-linux:
executor: bionic
Expand All @@ -40,35 +80,35 @@ jobs:
- run:
name: Install debian packages
command: apt-get update -q && apt-get install -q -y cmake build-essential openjdk-8-jre-headless ksh zsh
- run: test/test_node_path.sh
- run: test/test.sh
- run: test/test_source_env.sh
- run:
name: test.py
command: |
source emsdk_env.sh
test/test.py
test-mac:
macos:
xcode: "12.5.1"
environment:
EMSDK_NOTTY: "1"
# Without this, any `brew installl` command will result in self-update of
# brew itself which takes more than 4 minutes.
HOMEBREW_NO_AUTO_UPDATE: "1"
test-linux-arm64:
executor: linux_arm64
steps:
- checkout
- run:
name: Install cmake
command: brew install cmake
name: Install debian packages
command: sudo apt-get update -q && sudo apt-get install -q cmake build-essential openjdk-8-jre-headless
- run: test/test.sh
- run:
name: test.py
command: |
source emsdk_env.sh
test/test.py
test-mac:
executor: mac
steps:
- setup-macos
- test-macos
test-mac-arm64:
executor: mac_arm64
steps:
- setup-macos
- test-macos
test-windows:
executor:
name: win/vs2019
name: win/server-2019
shell: bash.exe
environment:
# We need python installed before we can test anytyhing.
Expand Down Expand Up @@ -133,23 +173,23 @@ jobs:
$env:SYSTEM_FLAG="--system"
test/test_path_preservation.ps1

build-docker-image:
build-docker-image-x64:
executor: bionic
steps:
- checkout
- run:
name: install docker
command: apt-get update -q && apt-get install -q -y docker.io
- setup_remote_docker
# Build and test the tip-of-tree build of EMSDK
# Build the `latest` version of EMSDK as docker image
- run:
name: build
command: make -C ./docker version=tot build
command: make -C ./docker version=latest build
- run:
name: test
command: make -C ./docker version=tot test
command: make -C ./docker version=latest test

publish-docker-image:
publish-docker-image-x64:
executor: bionic
steps:
- checkout
Expand All @@ -169,6 +209,53 @@ jobs:
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
make -C ./docker version=${CIRCLE_TAG} alias=latest push

publish-docker-image-arm64:
executor: linux_arm64
steps:
- checkout
- run:
name: check if emscripten-releases-tags.json has changed
command: |
CHANGED_FILES=$(git diff --name-only <<pipeline.git.base_revision>>..<<pipeline.git.revision>>)
if [[ ! $CHANGED_FILES =~ "emscripten-releases-tags.json" ]]; then
echo "emscripten-releases-tags.json has not changed, skipping build and publish"
circleci-agent step halt
fi
- run:
name: extract latest emscripten arm64 linux version
command: |
ARM64_VERSION=$(grep -oP '(?<="latest-arm64-linux": ")[^"]*' emscripten-releases-tags.json)
ARM64_IMAGE_TAG=${ARM64_VERSION}-arm64
echo "export ARM64_VERSION=$ARM64_VERSION" >> $BASH_ENV
echo "export ARM64_IMAGE_TAG=$ARM64_IMAGE_TAG" >> $BASH_ENV
echo "ARM64_VERSION=$ARM64_VERSION"
echo "ARM64_IMAGE_TAG=$ARM64_IMAGE_TAG"
- run:
name: check if docker image already exists
command: |
if [ -z "$ARM64_VERSION" ]; then
echo "ARM64_VERSION is empty, skipping publish"
circleci-agent step halt
exit 0
fi
DOCKER_IMAGE_EXISTS=$(curl -s -o /dev/null -w "%{http_code}" https://hub.docker.com/v2/repositories/emscripten/emsdk/tags/$ARM64_IMAGE_TAG)
if [ "$DOCKER_IMAGE_EXISTS" = "200" ]; then
echo "Docker image: $ARM64_VERSION"
echo "Docker image already exists, skipping build and publish"
circleci-agent step halt
fi
- run:
name: build
command: make -C ./docker version=${ARM64_VERSION} build
- run:
name: test
command: make -C ./docker version=${ARM64_VERSION} test
- run:
name: push image
command: |
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
make -C ./docker version=${ARM64_VERSION} alias=${ARM64_IMAGE_TAG} only_alias=true push

test-bazel-linux:
executor: bionic
steps:
Expand All @@ -190,11 +277,7 @@ jobs:
- run: test/test_bazel.sh

test-bazel-mac:
macos:
xcode: "12.5.1"
environment:
EMSDK_NOTTY: "1"
HOMEBREW_NO_AUTO_UPDATE: "1"
executor: mac
steps:
- checkout
- run: brew install grep
Expand All @@ -206,7 +289,7 @@ jobs:

test-bazel-windows:
executor:
name: win/vs2019
name: win/server-2019
shell: powershell.exe -ExecutionPolicy Bypass
environment:
PYTHONUNBUFFERED: "1"
Expand Down Expand Up @@ -234,21 +317,31 @@ workflows:
test-linux:
jobs:
- test-linux
test-linux-arm64:
jobs:
- test-linux-arm64
test-mac:
jobs:
- test-mac
test-mac-arm64:
jobs:
- test-mac-arm64
test-windows:
jobs:
- test-windows
build-docker-image:
jobs:
- build-docker-image
- publish-docker-image:
- build-docker-image-x64
- publish-docker-image-x64:
filters:
branches:
ignore: /.*/
tags:
only: /.*/
- publish-docker-image-arm64:
filters:
branches:
only: main
test-bazel-linux:
jobs:
- test-bazel-linux
Expand Down
3 changes: 2 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Ignore everything
*

# Allow to run the test script inside the Docker container
# Allow the entrypoint/test script inside the Docker container
!/docker/entrypoint.sh
!/docker/test_dockerimage.sh

# Allow license file
Expand Down
31 changes: 16 additions & 15 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,20 @@ ignore =
E501, # Line too long
E121, # Continuation line under-indented for hanging indent
E722 # bare excepts
E741, # Variable names such as 'l', 'O', or 'I'
exclude =
./llvm
./gnu
./upstream
./fastcomp
./fastcomp-clang
./releases
./clang
./emscripten
./binaryen
./git
./node
./python
./temp
./zips
./crunch
./llvm,
./gnu,
./upstream,
./fastcomp,
./fastcomp-clang,
./releases,
./clang,
./emscripten,
./binaryen,
./git,
./node,
./python,
./temp,
./downloads,
./crunch,
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ __pycache__
/node
/python
/temp
/zips
/downloads
/crunch
/java
/mingw
Expand Down
1 change: 1 addition & 0 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet9" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json" />
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
<add key="general-testing" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/general-testing/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ important concepts to help understanding the internals of the SDK:
## System Requirements

Using the emsdk pre-compiled packages requires only the minimal set of
dependenencies lists below. When building from source a wider set of tools
dependencies lists below. When building from source a wider set of tools
include git, cmake, and a host compiler are required. See:
https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html.

Expand All @@ -67,8 +67,8 @@ https://emscripten.org/docs/building_from_source/toolchain_what_is_needed.html.
- `python`: Version 2.7.0 or above.
- `java`: For running closure compiler (optional)

The emsdk pre-compiled binaries are built aginst Ubuntu/Xenial 16.04 LTS and
therefore depend on system libraries compatiable with versions of `glibc` and
The emsdk pre-compiled binaries are built against Ubuntu/Xenial 16.04 LTS and
therefore depend on system libraries compatible with versions of `glibc` and
`libstdc++` present in that release. If your linux distribution is very old
you may not be able to use the pre-compiled binaries packages.

Expand Down
16 changes: 16 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Security Policy

If you have discovered a security vulnerability in this project, please report it
privately. **Do not disclose it as a public issue.** This gives us time to work with you
to fix the issue before public exposure, reducing the chance that the exploit will be
used before a patch is released.

Please submit the report as a [security bug on the Chromium tracker](https://bugs.chromium.org/p/chromium/issues/entry?template=Security%20Bug).

Please provide the following information in your report:

- A description of the vulnerability and its impact
- How to reproduce the issue
- Make it clear that it's an Emscripten SDK bug.

We ask that you give us 90 days to work on a fix before public exposure.
Loading