Age | Commit message (Collapse) | Author |
|
This explains:
- `package.sh dev [--no-depends]`
- `use_fresh_config_sub` & `config_sub_path`
|
|
When a git patch that doesn't apply is encountered, start a git am
session and _then_ drop the user in it instead of expeting the user to
start the session on their own.
Also prompt for leftover files and delete them if the user does not want
them.
|
|
|
|
The `-fuse-ld=mold` flag was only added in the not-yet-released GCC 12.
Cherry-picked from the following upstream commit:
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=ad964f7eaef9c03ce68a01cfdd7fde9d56524868
|
|
This hash format offers faster symbol lookup than the System V hash.
We've been using it in all our shared libraries for a long time, but did
not have it enabled by default in our toolchain, so ports couldn't make
use of it.
|
|
Before this change, our dynamic linker's global constructor handler
relied on the GNU linker implicitly including the content of `.ctors`
section inside `.init_array`. The mold linker does not do this, so
global constructors would fail to be called in the mold-built userland.
There is no point in sticking to `.ctors`, as most other systems already
use the superior `.init_array` scheme. This commit changes the kernel
linker script to not discard this new section, and enables it by default
in our toolchain.
|
|
This partially enables support for menus in half-life. Currently, mouse
input does not work in it, the arrow keys are needed for navigation.
|
|
|
|
|
|
Patches regenerated with the new ./package.sh dev mode. It seems to
work as advertised, after a bit of experimentation :^).
|
|
This path needs to be set, or otherwise SDL2_mixer will not build.
|
|
|
|
|
|
|
|
The new `use_fresh_config_sub` option puts the config.sub in the root of
the tree, but `readline` puts it in the `support/` folder. So we need to
tell the ports infrastructure to place the file in that folder.
|
|
And use that to avoid shelling out multiple times for checking
properties in lint-ports.py.
|
|
|
|
This regressed in cdd6d68, setting the correct path makes it build
again.
|
|
|
|
|
|
|
|
|
|
And autogenerate a readme.
This fixes the one patch that wasn't made with git.
|
|
|
|
|
|
|
|
All of these patches did the same thing, which is already in upstream
config.sub.
With this change, we need only add `use_fresh_config_sub=true` to
the package.sh file.
Note that this is not done automatically in case the port has a modified
config.sub file.
|
|
Release mode strips the debug symbols from the resulting binaries,
making it harder than necessary to read backtraces.
|
|
|
|
|
|
We can now play Half-Life using LibGL without crashing on launch! :^)
|
|
According to the OpenGL spec, invoking functions without an active
context results in undefined behavior. Since ScummVM seems to be the
only port having issues with our behavior, patch their code instead.
|
|
This is no longer needed, as both toolchains now support
std::filesystem.
|
|
|
|
The line endings for this patch were inadvertently normalized because
of our old `.gitattributes` rules.
|
|
The patches mainly convert this SDL1 game to SDL2. It has some
graphical artifacts, but it's playable!
|
|
Add a port of Half-Life, the classic game by VALVe Software
|
|
The port exposes some dynamic loader and toolchain shortcomings,
namely RTLD_NEXT, RTLD_NOLOAD, and std::filesystem. Hopefully we can
discover a ton of multi-threading bugs in Serenity with this port :^)
|
|
|
|
The `remove-conflicting-declaration-in-glob` patch seems to not be
needed anymore.
|
|
What will it take to port WireGuard to SerenityOS? No idea. But this is
a start :^)
|
|
This commit backports the LLVM commit that adds support for the
`--update-section` flag to llvm-objcopy. We use this feature of GNU
objcopy to embed the symbol map in the kernel.
The corresponding LLVM Phabricator Differential Revision can be found
here: https://reviews.llvm.org/D112116
This patch is identical to the upstream commit, except for two hunks
that had to be changed as they didn't apply cleanly.
|
|
|
|
|
|
This removes the shlib hack from the install step, which repackaged the
static library as the shared one. It also has the benefit of making the
port work with the Clang toolchain :^).
|
|
This change is backported from upstream master and prevents unnecessary
spam to our debug console about NULL mutexes.
|
|
By default, ScummVM will still run in software rendering mode, but the
options to enable OpenGL will become available.
|
|
|
|
Running `./package.sh interactive` in a port directory will
spawn a new shell with the serenity build environment set up.
This makes porting software much easier as build commands can
be run interactively instead of having to modify package.sh
just to test things.
|
|
The --enable-optimizations flag attempts to enable PGO. Profile-guided
optimization is great in general, but will not work at all when doing a
cross-compile. If there's a more fine-grained flag for generic
optimization levels that doesn't try to do PGO, we should enable that
instead. The flag also enables `-fno-semantic-interposition`, but our
GCC patches enable that by default for -fPIC anyway, so that's not
necessary.
|