`git diff-tree` used to fail on the `3.2` branch (and other non-master
branches) as Travis doesn't actually check that branch from the remote:
```
fatal: ambiguous argument '3.2': unknown revision or path not in the
working tree.
```
The exit code would still be 0 so we'd miss badly formatted commits
targeting stable branches.
We do it manually to ensure that it's going to work as we want it.
(cherry picked from commit e479231b21)
The two POSIX style crash handlers (OSX and X11) now remove their signal
handlers when they are destroyed.
Additonally if they are called while no OS singleton is set, they will
simply abort(). This should not happen now that they remove themselves,
but if a future change seperates OS object and crash handler lifetimes,
this may be easier to report/debug than hanging on SIGSEGV.
Upstream Emscripten changed this in 1.39.1+, so IDBFS is no longer
included by default and has to be linked manually.
The explicit linking doesn't seem to be problematic on earlier
versions (tested `1.38.47-upstream`).
Fixes#33724.
(cherry picked from commit e5dfcb5edd)
A change in upstream Emscripten 1.39.1+ made our buildsystem error
out where it was previously only issuing a warning:
```
[ 5%] Linking Static Library ==> main/libmain.javascript.opt.bc
shared:WARNING: Assuming object file output in the absence of `-c`, based on output filename. Please add with `-c` or `-r` to avoid this warning
Ranlib Library ==> main/libmain.javascript.opt.bc
/opt/emsdk/upstream/bin/llvm-ranlib: error: unable to load 'main/libmain.javascript.opt.bc': file too small to be an archive
```
As advised on emscripten-core/emscripten#9806, we should be using
`emar` here to create the static library and not `emcc`.
This was apparently done to workaround Emscripten issues in the past,
but evidently this is no longer necessary.
The rest of the `env` redefinitions should probably be re-assessed
against the current state of Emscripten.
Fixes#33374.
(cherry picked from commit e9e2a4b044)
@DavidSichma, @ptrojahn
New Platinum sponsor, added to splash screen:
Interblock
New Gold sponsor:
Image Campus
(cherry picked from commit c663d65ffc)
(cherry picked from commit 2fa9cae76c)
New contributors added to AUTHORS:
@creikey, @IronicallySerious, @LikeLakers2, @minraws, @NilsIrl,
@profan, @raphael10241024
New Platinum sponsor, added to splash screen:
Heroic Labs
Merged some duplicates via .mailmap to allow better tracking of
commit counts with `git shortlog -s -n -e --no-merges`.
Thanks to all contributors and donors for making Godot possible!
(cherry picked from commit 664d7e7336)
(cherry picked from commit 0ce197f238)
New contributors added to AUTHORS:
@merumelu, @sparkart
Thanks to all contributors and donors for making Godot possible!
(cherry picked from commit 41beecaa08)
New contributors added to AUTHORS:
@Anutrix, @hbina, @santouits
Thanks to all contributors and donors for making Godot possible!
(cherry picked from commit 6d6b9ccc9a)
Otherwise we run into situations where commits to stable branches
induce very long build times, as they have to basically build from
scratch but also invalidate the cache for future commits on the
master branch.
This commit also makes the cache folder branch-specific, but since
it's still limited to 1 GB of total cache size, we don't enable it
for non-master, as we would still run into issues with non-master
build invalidating the master cache.
(cherry picked from commit b021bdbf1f)
The rationale for keeping those shared by default is that they're typical
dependencies found on any Linux system, and it saves compilation time and
binary size to link their dynamically.
But since official builds default to all-builtin, and Debian/Ubuntu still
don't have libpng16 (which we now require) readily available on all their
supported releases, it's simpler to bundle all the things.
This does not change the fact that those dependencies *can* be unbundled
on Linux, it's only the default option changing.
(cherry picked from commit 1769cbc0e2)
For 2.1, also building by default against bundled openssl.
Emscripten used not to error out on those warnings, but this behaviour changed
recently, so we revert it to be able to compile as we used to for previous 2.1.x
releases. It would be good to fix those undefined symbols though.