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

Update emsdk #3

Open
wants to merge 68 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
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
90d2168
(bazel) Set @platforms//os:emscripten for platform_wasm (#1363)
trzeciak Apr 4, 2024
229d83f
3.1.57 (#1367)
sbc100 Apr 10, 2024
176dec4
arm64-linux binaries are now available for all releases (#1369)
sbc100 Apr 10, 2024
ad59642
fix(bazel): use param file for compile (#1373)
zaucy Apr 22, 2024
e0a6aa0
3.1.58 (#1372)
sbc100 Apr 23, 2024
f58f80d
Update docker/README.md (#1375)
anitahammer Apr 28, 2024
d52c465
3.1.59 (#1377)
sbc100 Apr 30, 2024
399e539
[bazel] add tarball as an optional output (#1383)
walkingeyerobot May 15, 2024
ce74ca2
3.1.60 (#1385)
dschuff May 20, 2024
fc9146e
Upgrade CI to Ubuntu 20.04 LTS (Focal) (#1183)
DreamOfIce May 28, 2024
8c38d2f
Upgrade node from v16.20.0 to v18.20.3 (#1387)
sbc100 May 28, 2024
4205979
Remove setting of SSL_CERT_FILE from emsdk launcher script (#1391)
sbc100 May 28, 2024
dd3b9c6
Add feature to support WASM Relaxed SIMD (#1389)
yolanda15 May 30, 2024
ca7b40a
3.1.61 (#1394)
dschuff Jun 1, 2024
d291611
[Bazel] Let audio workout bootstrap js file be generated. (#1404)
WilliamIzzo83 Jun 14, 2024
0e8c5bb
Sets wasm_worning_as_error disabled by default. (#1406)
WilliamIzzo83 Jun 20, 2024
4b9e83d
Remove Intel mac CircleCI configuration (#1409)
dschuff Jun 20, 2024
a6db8d2
Add logging of sys.executable on startup. NFC (#1412)
sbc100 Jun 25, 2024
8caaa25
Add some logging after download is finished. NFC (#1413)
sbc100 Jun 25, 2024
a33daf3
Ensure temporary files have proper unique names for bazel builds. (#1…
kalmard0 Jun 27, 2024
7fbd555
Use "command -v" instead of "which" to detect python executable (#1419)
akoeplinger Jul 1, 2024
82d41a7
[Bazel] Support generating a secondary cache (#1405)
allsey87 Jul 1, 2024
0fde048
3.1.62 (#1421)
sbc100 Jul 2, 2024
7728283
3.1.63 (#1425)
sbc100 Jul 12, 2024
a52ef14
Remove unnecessary dependencies that make the sandbox slow
spanferov-figma Jun 27, 2024
9cc27a8
Use -fdebug-prefix-map=$PWD=/figma-root
spanferov-figma Jun 27, 2024
de5510f
Get node binary via @nodejs//:node
spanferov-figma Jun 27, 2024
adbb6cb
Remove unnecessary dependencies
spanferov-figma Jun 27, 2024
e5797f9
Support relocatable pre-compiled headers
spanferov-figma Jun 27, 2024
6b389f4
Support bazel debuginfo fission
spanferov-figma Jun 27, 2024
332fb83
Support older emscripten versions
spanferov-figma Jul 19, 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
112 changes: 64 additions & 48 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
version: 2.1

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

executors:
bionic:
ubuntu:
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
- image: buildpack-deps:focal
mac_arm64:
environment:
EMSDK_NOTTY: "1"
Expand All @@ -27,7 +18,7 @@ executors:
resource_class: macos.m1.medium.gen1
linux_arm64:
machine:
image: ubuntu-2004:202101-01
image: ubuntu-2004:2023.07.1
resource_class: arm.medium

commands:
Expand All @@ -50,22 +41,20 @@ commands:

jobs:
flake8:
executor: bionic
executor: ubuntu
steps:
- checkout
- run:
name: install pip
command: |
apt-get update -q
apt-get install -q -y python-pip python3-pip
- run: python2 -m pip install --upgrade pip
apt-get install -q -y python3-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: python3 -m flake8 --show-source --statistics
- run: python3 -m pip install flake8==3.9.2
- run: python3 -m flake8 --show-source --statistics --extend-exclude=./scripts

test-linux:
executor: bionic
executor: ubuntu
environment:
EMSDK_NOTTY: "1"
# This is needed because the old gcc-7 that is installed on debian/bionic
Expand Down Expand Up @@ -96,19 +85,14 @@ jobs:
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
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 @@ -173,29 +157,43 @@ jobs:
$env:SYSTEM_FLAG="--system"
test/test_path_preservation.ps1

build-docker-image:
executor: bionic
build-docker-image-x64:
executor: ubuntu
steps:
- checkout
- run:
name: install docker
command: apt-get update -q && apt-get install -q -y docker.io
command: |
apt-get update -q
apt-get install -q -y ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -q
apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- 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:
executor: bionic
publish-docker-image-x64:
executor: ubuntu
steps:
- checkout
- run:
name: install docker
command: apt-get update -q && apt-get install -q -y docker.io
command: |
apt-get update -q
apt-get install -q -y ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update -q
apt-get install -q -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
- setup_remote_docker
- run:
name: build
Expand All @@ -209,8 +207,24 @@ 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: build
command: make -C ./docker version=${CIRCLE_TAG} build
- run:
name: test
command: make -C ./docker version=${CIRCLE_TAG} test
- run:
name: push image
command: |
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
make -C ./docker version=${CIRCLE_TAG} alias=${CIRCLE_TAG}-arm64 only_alias=true push

test-bazel-linux:
executor: bionic
executor: ubuntu
steps:
- checkout
- run: apt-get install -q -y curl gnupg
Expand All @@ -229,11 +243,10 @@ jobs:
apt-get install -q -y bazel
- run: test/test_bazel.sh

test-bazel-mac:
executor: mac
test-bazel-mac-arm64:
executor: mac_arm64
steps:
- checkout
- run: brew install grep
- run:
name: install bazelisk
command: |
Expand All @@ -242,7 +255,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 @@ -273,9 +286,6 @@ workflows:
test-linux-arm64:
jobs:
- test-linux-arm64
test-mac:
jobs:
- test-mac
test-mac-arm64:
jobs:
- test-mac-arm64
Expand All @@ -284,8 +294,14 @@ workflows:
- 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:
ignore: /.*/
Expand All @@ -294,9 +310,9 @@ workflows:
test-bazel-linux:
jobs:
- test-bazel-linux
test-bazel-mac:
test-bazel-mac-arm64:
jobs:
- test-bazel-mac
- test-bazel-mac-arm64
test-bazel-windows:
jobs:
- test-bazel-windows
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
./downloads
./crunch
./llvm,
./gnu,
./upstream,
./fastcomp,
./fastcomp-clang,
./releases,
./clang,
./emscripten,
./binaryen,
./git,
./node,
./python,
./temp,
./downloads,
./crunch,
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/Focal 20.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
21 changes: 21 additions & 0 deletions bazel/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@ alias(
}),
)

alias(
name = "dwp_files",
actual = select({
":linux": "@emscripten_bin_linux//:dwp_files",
":linux_arm64": "@emscripten_bin_linux_arm64//:dwp_files",
":macos": "@emscripten_bin_mac//:dwp_files",
":macos_arm64": "@emscripten_bin_mac_arm64//:dwp_files",
":windows": "@emscripten_bin_win//:dwp_files",
"//conditions:default": ":empty",
}),
)

alias(
name = "ar_files",
actual = select({
Expand All @@ -82,5 +94,14 @@ platform(
name = "platform_wasm",
constraint_values = [
"@platforms//cpu:wasm32",
"@platforms//os:emscripten",
],
)

platform(
name = "platform_wasi",
constraint_values = [
"@platforms//cpu:wasm32",
"@platforms//os:wasi",
],
)
1 change: 1 addition & 0 deletions bazel/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bazel_dep(name = "platforms", version = "0.0.9")
64 changes: 64 additions & 0 deletions bazel/MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading