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: af62dc53559c
Choose a base ref
...
head repository: NixOS/nixpkgs
compare: 20eff68d97e0
Choose a head ref
  • 4 commits
  • 2 files changed
  • 2 contributors

Commits on Apr 15, 2020

  1. macvim: Fix compatibility with Xcode 11.4

    Xcode 11.4 has an updated sys/_types/_fd_def.h header that references a
    new symbol from libSystem. This is a problem because we're using
    `/usr/bin/clang` to compile the non-Xcode portion, and this pulls in
    headers from Xcode's SDK. Somehow it's still linking to the Nix
    libraries (I can't figure out where configure finds these to put into
    `LDFLAGS` as we're not using the cc-wrapper). The end result is we get a
    linker error where this new symbol can't be found at link time, even
    though it's a weak import and isn't required at runtime.
    
    Ideally we'd provide a full 10.12 SDK to `/usr/bin/clang`, but we can't
    do that because even the DevSDK package we use for our 10.12 SDK doesn't
    contain everything (in particular it's missing nearly all dylibs) so we
    just get linker errors if we do that.
    
    Instead we'll just do a horrible hack and provide an `-isystem` path to
    a folder structure that contains only the 10.12 `sys/_types/_fd_def.h`
    header. This avoids the new symbol without causing all the errors that
    happen if we pull in the entire `${darwin.Libsystem}/include`.
    lilyball committed Apr 15, 2020
    Copy the full SHA
    f3ccd5d View commit details
    Browse the repository at this point in the history
  2. macvim: 8.2.319 -> 8.2.539

    lilyball committed Apr 15, 2020
    Copy the full SHA
    e4311a7 View commit details
    Browse the repository at this point in the history

Commits on Apr 28, 2020

  1. macvim: Clean up hybrid compilation environment

    MacVim compiles the Vim part using `/usr/bin/clang` and the GUI part
    using Xcode. The Xcode portion always uses Xcode's own SDK and we have
    no workable alternative. The Vim portion so far has been compiling using
    a hybrid compilation environment, where it uses the SDK for most stuff
    but picks up a bunch of library linker paths (including libSystem) by
    virtue of Ruby's LDFLAGS. This hybrid compilation environment meant that
    if the SDK headers referenced a symbol that the library itself didn't
    have, this could produce link errors.
    
    Previously we attempted to fix this by synthesizing an include path that
    contained just the one header from Nix's Libsystem that referenced the
    missing symbol, to get rid of the reference and allow linking to work
    again, but this was very hacky and runs the risk of future Xcode SDK
    changes producing the same errors with different headers, or of future
    SDK versions expecting the intercepted header to contain a definition
    that Nix's doesn't.
    
    This new approach is to just clean up the compilation environment such
    that the Vim portion is compiling against the Xcode SDK as well, by
    sanitizing the LDFLAGS produced by the configure script so it stops
    referencing Nix's versions of OS libraries. This means the resulting Vim
    binary no longer depends at runtime on Nix for anything except the
    scripting language support, but that's how it's been for the MacVim
    binary all along anyway, and this approach should keep us insulated
    against future Xcode SDK changes.
    lilyball committed Apr 28, 2020
    Copy the full SHA
    ee28064 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2020

  1. Merge pull request #85321 from lilyball/macvim

    macvim: 8.2.319 -> 8.2.539
    veprbl committed May 3, 2020
    Copy the full SHA
    20eff68 View commit details
    Browse the repository at this point in the history