Commit 6b3dc93
authored
Fix SDK Docker build scripts, update Emscripten (#172)
* Refresh and fix SDK Docker image build scripts
The way the script is currently it does not work (anymore). I'm aware
of two issues with the current setup:
1. emsdk underneath installs and uses Node JS and the version of Node JS
is not pinned by the script and isn't tied to the version of the SDK
used.
As a result, emsdk moved to a newer version of Node JS than the one
that was probably used when the scripts were created. This new
version (it seems, the version currently being used is 18.20.3)
requires a relatively fresh version of glibc which just isn't
available in Ubuntu Bionic used as a base image. That results in
obscure errors from CMake (see
#170)
2. for whatever reason, the version of the protobuf static libraries
currently in the repo, don't seem to work. I don't really know
how the issue happened, but there were at least 2 users that faced
the problem (see
#161).
To resolve the first issue, we have a bunch of options:
1. Fix the version of emsdk
2. Fix the version of Node JS
3. Update the version of glibc
I figured I can combine options 1 and 3 together for the following
reasons:
1. Fixing the version of emsdk fixes the problem
2. The problem arised from the fact that the versions of software
used in the build script are a bit old, so an update might be
in order, even though we have other solutions to the problem.
> NOTE: It's my understanding that fixing emsdk version should also
> pin Node JS version, so if we deploy option 1, option 2 seem
> redundant.
For the second problem, I think there is only one ultimate solution
- not store binary artifacts in the repository and instead build
them from the sources in the repo.
It seems that in the past there was a concern that building protobuf
libraries takes a long time - it's still certainly the case. However,
I think we can compensate for that in two ways:
1. Drop WAVM - it does not seem like WAVM is still needed (the project
itself appears to be dead and hasn't had any updates for at least 2
years), but also one of the comments in
#158, that
removed the WAVM from the docs, also suggests that three doesn't
seem to be a good reason to keep WAVM in the SDK build script.
2. Take advantage of potential hardware threads in the system when
calling make - most laptops or servers these days have multiple
cores, so if we have to build protobuf libraries twice, we can
speed it up by using more cores.
With all those changes made, the build time adds up to something like
32 minutes on my laptop, compared to the 48m without building
protobuf libraries from sources (and without adding -j option to make).
So I think the additional time spent on building protobuf library is
compensated by other changes.
Signed-off-by: Mikhail Krinkin <[email protected]>
* Update emsdk version to 3.1.67 in Bazel configuration
This CL mostly follows the instructions in
https://github.com/emscripten-core/emsdk/blob/main/bazel/README.md.
Even so, there are a few things that are worth mentioning:
1. I tested the changes locally and in my tests
incompatible_enable_cc_toolchain_resolution bazel flag made no
difference (e.g. everything builds with or without the flag);
I still keep it though because instructions say that it should
be there and it does not cause any harm.
2. I don't think that we still need to patch emsdk to exclude npm
modules from the toolchain, because it appears that upstream
already removed those as a toolchain dependency in
emscripten-core/emsdk#1045.
It's worth noting, that even though I don't think that emsdk patch
is still needed, I actually wasn't able to reproduce the problem
reported in #149
locally without the emsdk.patch even with the current version of
emsdk used by C++ SDK.
Signed-off-by: Mikhail Krinkin <[email protected]>
* Update building.md to match updated sdk_container.sh
This is a followup to the previous commits that refreshed the build
scripts and emsdk. This change reconciles the docs with the current
state of the build scripts.
Signed-off-by: Mikhail Krinkin <[email protected]>
---------
Signed-off-by: Mikhail Krinkin <[email protected]>1 parent 54167e2 commit 6b3dc93
File tree
10 files changed
+63
-94
lines changed- bazel
- docs
10 files changed
+63
-94
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| 21 | + | |
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
28 | 25 | | |
29 | 26 | | |
30 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
166 | | - | |
167 | | - | |
168 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
169 | 170 | | |
170 | 171 | | |
171 | 172 | | |
| |||
178 | 179 | | |
179 | 180 | | |
180 | 181 | | |
181 | | - | |
| 182 | + | |
182 | 183 | | |
183 | 184 | | |
184 | 185 | | |
185 | | - | |
186 | | - | |
187 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
188 | 189 | | |
189 | 190 | | |
190 | 191 | | |
191 | 192 | | |
192 | 193 | | |
193 | | - | |
194 | | - | |
195 | | - | |
| 194 | + | |
196 | 195 | | |
197 | 196 | | |
198 | 197 | | |
| |||
Binary file not shown.
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
24 | 23 | | |
25 | 24 | | |
26 | | - | |
| 25 | + | |
27 | 26 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
33 | 37 | | |
34 | 38 | | |
35 | 39 | | |
| |||
41 | 45 | | |
42 | 46 | | |
43 | 47 | | |
44 | | - | |
| 48 | + | |
45 | 49 | | |
46 | 50 | | |
47 | 51 | | |
48 | 52 | | |
49 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
50 | 58 | | |
51 | 59 | | |
52 | 60 | | |
53 | | - | |
54 | | - | |
55 | | - | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
56 | 64 | | |
57 | 65 | | |
58 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
59 | 80 | | |
60 | 81 | | |
61 | 82 | | |
62 | | - | |
| 83 | + | |
63 | 84 | | |
64 | | - | |
| 85 | + | |
65 | 86 | | |
66 | 87 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
| |||
0 commit comments