Commit Graph

156 Commits

Author SHA1 Message Date
Sam Clegg
1fe80678a9 Missing update from #746 (#751) 2021-03-09 11:13:09 -08:00
Sam Clegg
67dc4b4989 Switch emscripten branch from master to main (#750) 2021-03-08 15:52:14 -08:00
Sam Clegg
226b548c31 Rename binaryen-master to binaryen-main (#746)
This matches the branch name that was already updated/renamed.
2021-03-08 08:33:25 -08:00
Sam Clegg
0a841562df Avoid post-install when nothing is installed (#736)
This avoids re-running the post-install scripts when commands such as
`./emsdk install latest` a re-run.  This re-running of npm ci can be
significant slowdown especially during testing and developerment.

Becuase of the refactoring this change change also means we exit ealier
when a given tool fails to install.  In general we want to error out as
early as possible on the first failure so as not to bury it.
2021-03-01 09:32:07 -08:00
Sam Clegg
ef638b3860 Rename llvm-git-master -> llvm-git-main (#718)
To match the branch rename that happened in #693.
2021-02-17 19:11:07 -08:00
Sam Clegg
57ebbbdabc Avoid adding our java or python to the PATH (#706)
For Java we use the value in the config file so it doesn't need to be in
the PATH.

For python, all our tools should launch via scripts that check for
EMSDK_PYTHON so having python in the PATH for emsdk users should not be
needed.

The motivation for this is that we don't want to clobber any existing
python or java versions that users might already have in their PATH.

This is the easy part of #705.
2021-02-15 13:46:54 -08:00
Sam Clegg
9e96410d7f Update node version to 14.15.5 (latest TLS release) (#708)
See https://github.com/WebAssembly/binaryen/issues/3551
2021-02-12 16:47:20 -08:00
Matthew McRaven
02edc9765b Set LLVM's git branch to main in manifest. (#693)
LLVM renamed their default branch to main from master.
This breaks builds of the SDK from the sources.

This commit retargets LLVM builds to use the git branch main when appropriate.
The version name "master" remains the same to maintain compatibility with existing build scripts

Fixes #692.
2021-01-28 17:49:46 -08:00
Matthew McRaven
6357c6dcab Set binaryen's git branch to main in manifest. (#684)
Binaryen renamed their default branch to main from master.
This breaks builds of the SDK from the sources.

This commit retargets binaryen builds to use the git branch `main` when appropriate.
The version name "master" remains the same to maintain compatibility with existing build scripts

Fixes #683.
2021-01-21 18:57:59 -08:00
Sam Clegg
10290f2f1d Update mac circleci environment (#644)
Apparently `Image xcode:9.0 is not supported` these days.
2020-10-24 10:01:10 -07:00
Sam Clegg
42abe55fd7 Remove native optimizer build from emscripten master install (#622)
This is still used for the legacy emscripten tags installation
but the native optimizer no longer exists on master.

This fixes `emsdk install emscripten-master-64bit`
2020-09-21 16:59:19 -07:00
Amin Yahyaabadi
edc53e7a0a Add missing python locations to emsdk.ps1 (#615) 2020-09-15 15:14:52 -07:00
Sam Clegg
e08b17c8bf Remove copy_pregenerated_cache (#609)
Newer SDKs don't require this and removing it doesn't break
any older SDKs (it just slows down their first use).
2020-09-10 16:32:23 -07:00
Sam Clegg
ff8a62a3fb Pre-bundle requests module with macOS bundles python (#589)
The problem is that python can have trouble finding the default
certifcate set on macOS.  The actual bundle is installed by the certifi
package which the requests module uses under the hood.

Fixes: #588
2020-08-11 11:51:47 -07:00
Sam Clegg
0e5f2d8e11 Rename osx -> macos (#563) 2020-07-21 12:26:30 -07:00
Sam Clegg
4aa028017c Use bundled/embedded python3 binary on OSX (#561)
See https://github.com/emscripten-core/emscripten/issues/7198
2020-07-21 10:21:02 -07:00
Sam Clegg
d8984b2a9d Rename build_llvm_monorepo to just build_llvm. NFC. (#560)
And build_llvm_fastcomp to just build_fastcomp (matches its name
in the json file.
2020-07-20 17:33:54 -07:00
Derek Schuff
c08015164e Update nodejs to v12.18.1 (#529)
It includes an update to v8 7.8
2020-06-24 10:41:47 -07:00
Sam Clegg
14c0a9ec21 Update default emscripten cache directory (#501)
See: https://github.com/WebAssembly/waterfall/pull/644

For the sake of older versions of emscripten explicitly set
EM_CACHE environment variable to point to the in-tree cache
directory.
2020-05-13 16:28:49 -07:00
Alon Zakai
4265173445 Remove legacy builds (#500)
"Legacy" here meaning anything using only < 1.38.0, and anything
using 'nightly' mozilla builds (which have not been done for years).

This also lets us remove node 4.1.1 (but not 8.9.1).
2020-05-13 08:10:23 -07:00
Sam Clegg
64d54b832f Add pywin32 to windows python installation (#487)
Fixes: #458
2020-05-04 11:09:32 -07:00
Sam Clegg
1e62b13573 Remove reference of old clang binary. (#469)
I think this should have been part of #395.

Fixes: https://github.com/emscripten-core/emscripten/issues/10904
2020-04-16 09:30:12 -07:00
Sam Clegg
b1f867a5a3 Re-enable building master from source for linux 32-bit (#471)
Doing this for windows is trickier as we would also need to provide
the python binaries for win32.

Note that we don't provide node binaries in this case because the
node project itself doesn't produce 32-bit builds for linux anymore.
This should still be useable for 32-bit linux users although they
will need to provide their own node (or use the system provided
one).

Fixes: #470
2020-04-15 17:10:44 -07:00
Alon Zakai
8a35734a47 Fix precompiled library support + testing (#444)
Support multiple libraries for precompiled things, as we use a
different one for LTO, etc.
2020-03-05 10:45:46 -08:00
Sam Clegg
573278be09 Switch to python3 when installing python on windows installs. (#349) 2020-02-04 17:03:20 -08:00
Brion Vibber
ff44c97ffa Re-add binaryen dep to upstream-master SDK builds (#435)
This should ensure that BINARYEN_PATH is added to the resulting
~/.emscripten file when building from source:

https://github.com/emscripten-core/emsdk/issues/434
2020-01-30 09:44:35 -08:00
Sam Clegg
3631f0aac3 Remove use of incoming branches (#423)
See https://github.com/emscripten-core/emscripten/issues/10067
2020-01-14 13:59:15 -08:00
juj
d30ba160ed Add npm install step as post-build to Emscripten (#404)
* Add npm install step as post-build to Emscripten

* Address review

* Run npm install on releases-upstream and releases-fastcomp

* Fix node path

* Add node to PATH

* Only install production packages with npm

* Address review
2020-01-10 22:11:38 +02:00
juj
a0d34f6a61 Add upstream-incoming SDK targets for macOS and Linux as well (#413) 2019-12-17 21:52:41 +02:00
juj
2546d5ab51 Build wasm master (#401)
* Build wasm upstream

* Fix lld build for wasm-ld. Add note about compiler-rt not working.

* Address review

* Address review

* Address review

* Address review

* If targeting fastcomp Clang, apply EMCC_WASM_BACKEND=0 so that previous leftover environment with EMCC_WASM_BACKEND=1 will not cause a conflict

* Add docs about setting up Emscripten
2019-12-16 23:59:15 +02:00
juj
e10be710da Rename old fastcomp-based tools to a specific fastcomp- prefixed name (#400)
* Rename old fastcomp-based tools to a specific fastcomp- prefixed name to clearly distinguish legacy toolchain

* Update test.py
2019-12-12 09:15:26 +02:00
juj
12f1824ffb Remove Tools and SDKs that do no longer work after migration from Mozilla to Google hosting. (#395) 2019-12-03 09:20:05 +02:00
Sam Clegg
e047fe4c1e Add python and java to 'releases-upstream' for windows (#376)
These are part of `releases-fastcomp` but for some reason are not
included in the upstream equivalent.  I imagine they were simply
overlooked.
2019-10-18 14:08:39 -07:00
Sam Clegg
efc64876db Update node version to 12.9.1 (#348)
Turns out 10.16.3 has issues running some emscripten tests due to a
v8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=8347.
2019-09-03 12:16:46 -07:00
Sam Clegg
2dd05dca80 reland: Update default node version to 10.16.3 (#341)
Original change that got reverted: #331

See https://github.com/emscripten-core/emscripten/issues/9332
2019-08-30 12:46:41 -07:00
Sam Clegg
f285fdbb0c Revert "Update default node version to 10.16.3 (#331)" (#339)
Apparently this broke on mac: #337
2019-08-28 16:16:01 -07:00
Alon Zakai
7179fac39b Set EMSCRIPTEN_ROOT in releases builds (#333)
Without setting this, if a non-releases build was previously activated, it will keep affecting EMSCRIPTEN_ROOT in the emitted config file.

Helps with #326
2019-08-28 11:20:14 -07:00
Sam Clegg
7bc47b7232 Update default node version to 10.16.3 (#331)
See https://github.com/emscripten-core/emscripten/issues/9332
2019-08-27 13:02:02 -07:00
Sam Clegg
5dd09e4893 Convert emsdk_manifest.json to unix line endings (#330) 2019-08-27 11:47:57 -07:00
Brion Vibber
2b568055af Basic ARM and Aarch64 support for emsdk (#277)
This adds an "arch" field to various structures, so ARM and Aarch64
Linux can download appropriate versions of node and in theory
other tools, without trying to download x86 builds.

Since there are no prebuilt packages for clang and binaryen on ARM
or Aarch64 this will require building them, which can take a long
time, but works once installed.

Node 4.1.1 and 8.9.1 entries for ARM (armv7l) and aarch64 are
added, and the various x86/x86_64-only things are marked as such
to be filtered out on ARM machines.

Other downloads work as long as they don't have an arch specified,
which indicates they're expected to be arch-independent.

Does not yet fully work on ARM64 Windows (but works in WSL as the
Linux support is fine).
2019-08-02 15:14:11 -07:00
Alon Zakai
f1998bb124 Use the bundled optimizer[.exe], which the releases builds contain already (#289) 2019-06-25 18:02:50 -07:00
Alon Zakai
3e6d8b395f Use prebuilt cache contents (#282)
See WebAssembly/waterfall#542

The builds now contain lib/wasm-obj/ or lib/asmjs/ which have some cache contents. This places those in the cache so the user doesn't need to build them on first run, which for libc at least can be quite slow.

The mechanism here is to run emcc a first time in the emsdk. That clears the cache (since the emsdk just updated the .emscripten file). We can then safely place the files in the cache.

Note that FROZEN_CACHE is not used, since we do want to leave the user the option to build other things to the cache - we'll never ship all possible system and ports builds in the emsdk downloads, probably.

This contains a test, which passes on tot-upstream. The last tagged release doesn't have this yet.
2019-06-25 12:41:28 -07:00
Alon Zakai
077a8b2b97 emsdk list fixes (#257)
List the recommended downloads (latest, latest-upstream) first, and with version and hash. Then list precompiled things, then list build-from-source things.

Remove old upstream-clang build from source, which has been incorrect since llvm switched to a monorepo anyhow. If we want the emsdk to support source builds of llvm, we'll need to fix that - however, as we can use plain upstream llvm anyhow, that shouldn't be hard for developers to build themselves (and normal users will get a precompiled version anyhow).

Remove the option to build fastcomp from source with wasm backend support, as it is horribly old there.

Noticed these issues in emscripten-core/emscripten#8728
2019-06-05 06:25:03 -07:00
Alon Zakai
515f46fae8 Change default emsdk download location to emscripten-releases/deps (#254)
Instead of from mozilla S3.

This should make the core python, java, node downloads work, as we have mirrored them to the new location. I think that should be everything - if we missed something, we will get an error, and so know we need to fix something.

(The non-deps downloads still use a full url to emscripten-releases in the manifest, which is not changed here.)

Also change the download location for old llvm builds to emscripten-releases/old/
2019-05-30 14:22:07 -07:00
Alon Zakai
963d839afa Bundle java and python for emscripten-releases on windows, which matches the old behavior (#253) 2019-05-30 09:05:38 -07:00
Alon Zakai
76a5ae0b82 If an archive has not been downloaded, download it and assume its contents are new (#248)
This allows us to always unpack our builds into upstream/ or fastcomp/, instead of creating a new directory each time. Since without this, we'd get told to download a new file, and the emsdk would see that where it would be unpacked had contents, and assumed that even though it wasn't downloaded it must be the same. So we'd silently skip it.

It's useful to always unpack into the same dir since it's easier for people that create their own .emscripten file (the location of emscripten etc. is all fixed under the emsdk), and also it avoids directories accumulating, which each take hundreds of megabytes, so over time it can get burdensome.
2019-05-28 15:57:04 -07:00
Alon Zakai
7b8322f45e Remove waterfall integration (#246)
We can remove this now that we have emscripten-releases working and use it everywhere we used the emsdk's waterfall integration.

In particular this should fix the current lkgr.json errors people are seeing (by removing all the lkgr stuff), which I believe started when I refactored that code while doing the releases work - I must have gotten something wrong on non-linux OSes. But anyhow, easier to remove that unnecessary code than fix it at this point.
2019-05-24 14:04:43 -07:00
Alon Zakai
de1134d8de Add emscripten-releases support for release tags (#243)
* Structures emscripten-releases-tags.txt to mention the latest release, and then a list of all previous releases.
* Adds a new release for 1.38.33.
* If the manifest has emscripten_releases_hash, then we write out emscripten-version.txt with the proper version. We start with the hash, and check if there is a released version for it, if so we emit that, otherwise we emit the hash.
* Windows zipfile fix.
2019-05-23 17:08:23 -07:00
Alon Zakai
e2434062a8 Prepare for emscripten-releases (#237)
Updated to our current initial plan here:

* Add emscripten-releases-tags.txt which is a JSON file with a map of tag name to git hash in the emscripten-releases repo. Right now this file is just checked in here; in the future we may make the emsdk update it from git tags with update-tags etc.
* That file contains a "latest" tag, which is fetched for when getting latest-releases-[upstream|fastcomp]. We may want that to eventually be updated based on the latest green stuff on the bots perhaps.
* Rename the current sdk-[upstream|fastcomp]-* etc. to sdk-waterfall-[upstream\|fastcomp]-*. Then we'll have sdk-releases-[upstream|fastcomp]-* etc. This is just an internal name change - emsdk install latest-upstream still works as before, and still uses the waterfall (so we don't break our github CI).
* Add support for emsdk install latest-releases-[upstream\|fastcomp]
* Add a test using the actual emscripten-releases builds
2019-05-22 17:23:04 -07:00
juj
4eeff61368 Add SDK definitions for upstream wasm backend enabled LLVM, "sdk-wasm-master-32/64bit". (#213) 2019-05-06 11:52:13 +03:00