Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 19 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@
This project makes possible to rebuild Native Client for usage with the
[Dæmon game engine](https://github.com/DaemonEngine/Daemon). Chromium development tools are **NOT** required to build.

Target & compiler|Build status|Target & compiler|Build status
-|-|-|-
<sub>Linux amd64 GCC</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Linux%20amd64%20GCC)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)|<sub>Windows amd64 MSVC</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Windows%20amd64%20MSVC)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)
<sub>Linux amd64 Clang</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Linux%20amd64%20Clang)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)|<sub>Windows i686 MSVC</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Windows%20i686%20MSVC)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)
<sub>Linux i686 GCC</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Linux%20i686%20GCC)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)|<sub>Windows amd64 MinGW</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Windows%20amd64%20MinGW)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)
<sub>Linux armhf GCC</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=Linux%20armhf%20GCC)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)|<sub>macOS amd64 AppleClang</sub>|[![Build Status](https://img.shields.io/github/check-runs/DaemonEngine/native_client/master?nameFilter=macOS%20amd64%20AppleClang)](https://github.com/DaemonEngine/native_client/actions/workflows/build_test.yml?query=branch%3Amaster)

Native Client (also known as NaCl) is a sandboxing technology by Google.
It was used by Chrome extensions and Chrome apps.
The Dæmon engine is the open-source game engine powering the [Unvanquished game](https://unvanquished.net),
Expand Down Expand Up @@ -50,14 +57,15 @@ Many of the original project pages are no longer available. Some documentation a

## Status

Linux amd64: Well-tested, everything works
Linux i686: Builds
Linux armhf: Well-tested, debugger support incomplete, platform qualification issues
Linux arm64: Well-tested, can run armhf version well if CPU supports 32-bit programs
MacOS amd64: All tests passed on a CI bot. Probably everything works fine. Debugger untested
MacOS arm64: Well-tested, runs via Rosetta (so a couple obscure x86 features are not usable for client code), no debugger
Windows amd64: Well-tested, everything works
Windows i686: Builds, lightly tested
- Linux amd64: Well-tested, everything works
- Linux i686: Builds
- Linux armhf: Well-tested, debugger support incomplete, platform qualification issues
- Linux arm64: Well-tested, can run armhf version well if CPU supports 32-bit programs
- MacOS amd64: All tests passed on a CI bot. Probably everything works fine. Debugger untested
- MacOS arm64: Well-tested, runs via Rosetta (so a couple obscure x86 features are not usable for client code), no debugger
- Windows amd64: Well-tested, everything works
- Windows i686: Builds, lightly tested


## Dependencies
- SCons
Expand Down Expand Up @@ -101,6 +109,7 @@ scons --mode=opt-host platform=x86-64 werror=0 sel_ldr

On Linux, add `--no-clang` to use GCC instead of Clang.


### Build the IRT (C runtime 'dynamic library' used by NaCl code)

This requires the Saigo NaCl toolchain. You can provide it by either
Expand Down Expand Up @@ -150,6 +159,7 @@ python -m SCons --mode=nacl,opt-windows --no-clang saigo=1 werror=0 mingw_dir=C:
When using MinGW, you must pass `mingw=1` and `--no-clang`. You can locate the toolchain by either
passing `mingw_dir=...` or putting it in the PATH. MinGW only works with `platform=x86_64`.


### ARM testing

There are some special build system features that facilitate testing for the
Expand All @@ -170,6 +180,7 @@ This is useful but there are many tests that it cannot run, for example because
spawning multiple process. Also it is important to test on a full machine to exercise the
arcane kernel interactions such as `longjmp`ing out of a signal handler.


#### Running tests on a different machine than they were built
To test on an emulated or slow ARM machine, you can build the binaries on another system first
and then copy everything to the test machine. You need to copy both the build system files and
Expand Down
Loading