Skip to content

Building the NativeClient loader as part of the engine build? #1879

@illwieckz

Description

@illwieckz

Right now we ship the loader (nacl_loader, nacl_helper_bootstrap) with the external deps.

With the ongoing efforts of making it rebuildable easily, especially the CMake effort, it will become possible to rebuild the loader as part of the engine build itself:

The proposal is that it would be rebuilt as a CMake sub-project, to not pollute engine CFLAGS and don't get CFLAGS pollution from engine.

We may as a start only build the native loader and ship the irt nexe with the external deps, since we also have a plan to repackage saigo, if we manage to build the irt nexe with saigo we may include the irt nexe build as part of the engine build too, and that could be done for every platform.

There are special cases:

  • macos-arm64 can probably build the macos-amd64 loader with some compiler flag, so the rebuild will probably be enabled.
  • linux-arm64 would require an armhf compiler so we may make the rebuild of the loader optional and ship it in external deps, unless we find a compiler flag that can turn an arm64 compiler into an armhf one (not sure if -m32 would be enough). We would also need to ship the armhf libc in the external deps for the loader, unless we find a way to get a working statically built loader.
  • freebsd-amd64 would use a precompiled loader from the deps, as getting a linux cross-compiler on freebsd is too much complex.
  • I do remember having read that either windows-amd64 or windows-i686 may rely on MinGW for building one file even when MSVC is the compiler, so we have to check that and if true, the loader for such platform would have to be shipped prebuilt in external deps.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions