Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
base: 27d0689e60f6
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 856d10a9b833
Choose a head ref
  • 5 commits
  • 1 file changed
  • 2 contributors

Commits on Aug 10, 2019

  1. libressl: build libcrypto with noexecstack

    For some reasons, libcrypto would be built with the executable stack
    flag set. I found out about this when Nginx failed to load the shared
    library, because I was running it with MemoryDenyWriteExecute=true,
    which does not permit executable stacks.
    
    I am not sure why the stack ends up executable; the other shared
    libraries which are part of LibreSSL do not have this flag set. You can
    verify this with 'execstack -q'. Non-executable stacks should be the
    default, and from checking some other files, that does appear to be the
    case. The LibreSSL sources do not contain the string "execstack", so
    I am not sure what causes the default to be overridden.
    
    Adding '-z noexecstack' to the linker flags makes the linker unset the
    flag. Now my Nginx can load the library, and so far I have not run into
    other issues.
    ruuda committed Aug 10, 2019
    Copy the full SHA
    8b6a920 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2019

  1. libressl: fix noexecstack on Darwin

    The flags to disable executable stacks are different for Clang and GCC,
    and Clang is used on Darwin.
    ruuda committed Aug 11, 2019
    Copy the full SHA
    b3c613b View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2019

  1. libressl: do not set noexecstack on Darwin at all

    It is not needed on Darwin. [1] Thanks Matthew for explaining this.
    
    [1]: #66454 (comment)
    ruuda committed Aug 13, 2019
    Copy the full SHA
    c02b4a1 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2019

  1. libressl: use CFLAGS to avoid exectuable stack

    It turns out that libcrypto had an exectuable stack, because it linked
    some objects without a .note.GNU-stack section. Compilers add this
    section by default, but the objects produced from .S files did not
    contain it. The .S files do include a directive to add the section, but
    guarded behind an #ifdef HAVE_GNU_STACK. So define HAVE_GNU_STACK, to
    ensure that all objects have a .note.GNU-stack section.
    ruuda committed Aug 20, 2019
    Copy the full SHA
    fdd78a5 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2019

  1. Merge pull request #66454 from ruuda/libcrypto-noexecstack

    libressl: build libcrypto with noexecstack
    matthewbauer committed Aug 21, 2019
    Copy the full SHA
    856d10a View commit details
    Browse the repository at this point in the history