• 3rdp/build/js-no-rwx-pages.patch3rdp/build/GNUmakefile src/sbbs3/GNUma

    From Deuc¿@VERT to Git commit to main/sbbs/master on Monday, February 05, 2024 00:53:06
    https://gitlab.synchro.net/main/sbbs/-/commit/d3a1c675c8dbdd3504b9465f
    Added Files:
    3rdp/build/js-no-rwx-pages.patch
    Modified Files:
    3rdp/build/GNUmakefile src/sbbs3/GNUmakefile
    Log Message:
    Allow RWX pages on NetBSD and OpenBSD.

    By default, both NetBSD and OpenBSD will not allow pages to be mapped
    both writable and executable.

    On OpenBSD, if the filesystem is mounted with the wxallowed option,
    this would work, and before v6.0, passing -z wxallowed to the linker
    would allow it on a per-binary basis. However, since this is not
    the default, and since the JS engine can use mprotect() to switch
    between RW and RX, I've decided to enable this instead. This will
    slow things down, but it will work "out of the box".

    For NetBSD, the situation is different, you can't switch between
    RW and RX using mprotect()... instead, you need to use mremap() to
    get a separate mapping for each set of perms. This does *not*
    appear to be present in the 1.8.5 source, so we can't do the same
    fix as OpenBSD. Instead, NetBSD allows paxctl to add an elf note
    indicating that RWX is needed, and it "just works" (by default).

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net