Revision 9b5fce21c296410c087628a5c0d7673299fadb85 authored by Alon Zakai on 02 November 2018, 21:59:56 UTC, committed by Alon Zakai on 02 November 2018, 21:59:56 UTC
1 parent af84d8d
upgrading-bundled-libs.Markdown
Upgrading Bundled System Libraries
==================================
This includes musl, libc++, and others whose source is bundled in our repo
for simplicity.
To update them,
* Update the files in `system/` with the new version's files. For example,
for musl that means `system/lib/libc/musl` and `system/include/libc`. You
need to handle Emscripten's local changes, which are marked with
`XXX EMSCRIPTEN` comments, may need to handle merge conflicts there. It is
useful to search the git diff for `EMSCRIPTEN` to see those areas.
* Update the list of symbols. Those symbols are scanned by the linker in order
to know whether to link in a system library or not (so a missing symbol
may cause linking to not include something you need). The files are under
`system/lib`/ and have the suffix `.symbol`. To generate the new contents,
build the system library with the new files, and do something like this
for musl:
`~/Dev/fastcomp/build/bin/llvm-nm ~/.emscripten_cache/asmjs/libc.bc | sort`
and write that to the `.symbol` file. Take a look at the git diff to see
if anything looks odd.
* Run the test suite to make sure everything works. You can open a PR and let
the continuous integration run it for you.
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...