Merge #253854: staging-next 2023-09-07

This commit is contained in:
Vladimír Čunát 2023-09-14 07:38:41 +02:00
commit f2ea252d23
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
165 changed files with 4738 additions and 2604 deletions

View File

@ -937,6 +937,28 @@ Like `stripDebugList`, but only applies to packages target platform. By defau
Flags passed to the `strip` command applied to the files in the directories listed in `stripDebugList`. Defaults to `-S` (i.e. `--strip-debug`). Flags passed to the `strip` command applied to the files in the directories listed in `stripDebugList`. Defaults to `-S` (i.e. `--strip-debug`).
##### `stripExclude` {#var-stdenv-stripExclude}
A list of filenames or path patterns to avoid stripping. A file is excluded if its name _or_ path (from the derivation root) matches.
This example prevents all `*.rlib` files from being stripped:
```nix
stdenv.mkDerivation {
# ...
stripExclude = [ "*.rlib" ]
}
```
This example prevents files within certain paths from being stripped:
```nix
stdenv.mkDerivation {
# ...
stripExclude = [ "lib/modules/*/build/* ]
}
```
##### `dontPatchELF` {#var-stdenv-dontPatchELF} ##### `dontPatchELF` {#var-stdenv-dontPatchELF}
If set, the `patchelf` command is not used to remove unnecessary `RPATH` entries. Only applies to Linux. If set, the `patchelf` command is not used to remove unnecessary `RPATH` entries. Only applies to Linux.

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkg-config { lib, stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkg-config
, waf, python3 }: , wafHook, python3 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ams-lv2"; pname = "ams-lv2";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk"; sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ]; buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ];
meta = with lib; { meta = with lib; {

View File

@ -50,7 +50,7 @@
, suil , suil
, taglib , taglib
, vamp-plugin-sdk , vamp-plugin-sdk
, waf , wafHook
, xjadeo , xjadeo
, videoSupport ? true , videoSupport ? true
}: }:
@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
waf.hook wafHook
]; ];
buildInputs = [ buildInputs = [

View File

@ -52,7 +52,7 @@
, suil , suil
, taglib , taglib
, vamp-plugin-sdk , vamp-plugin-sdk
, waf , wafHook
, xjadeo , xjadeo
, videoSupport ? true , videoSupport ? true
}: }:
@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
waf.hook wafHook
]; ];
buildInputs = [ buildInputs = [

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, lv2, pkg-config, python3, waf }: { lib, stdenv, fetchurl, lv2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fomp"; pname = "fomp";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-xnGijydiO3B7BjSlryFuH1j/OPio9hCYbniq2IXp2W8="; sha256 = "sha256-xnGijydiO3B7BjSlryFuH1j/OPio9hCYbniq2IXp2W8=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ lv2 python3 ]; buildInputs = [ lv2 python3 ];
meta = with lib; { meta = with lib; {

View File

@ -30,7 +30,7 @@
, serd , serd
, sord , sord
, sratom , sratom
, waf , wafHook
, wrapGAppsHook , wrapGAppsHook
, zita-convolver , zita-convolver
, zita-resampler , zita-resampler
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
intltool intltool
pkg-config pkg-config
python3 python3
waf.hook wafHook
wrapGAppsHook wrapGAppsHook
]; ];

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv { lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
, lv2, pkg-config, python3, raul, serd, sord, sratom , lv2, pkg-config, python3, raul, serd, sord, sratom
, waf , wafHook
, suil , suil
}: }:
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
deepClone = true; deepClone = true;
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 python3.pkgs.wrapPython ]; nativeBuildInputs = [ pkg-config wafHook python3 python3.pkgs.wrapPython ];
buildInputs = [ buildInputs = [
boost ganv glibmm gtkmm2 libjack2 lilv lv2 boost ganv glibmm gtkmm2 libjack2 lilv lv2
python3 raul serd sord sratom suil python3 raul serd sord sratom suil

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3 { lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3
, serd, sord , sratom, suil, waf }: , serd, sord , sratom, suil, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jalv"; pname = "jalv";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-ktFBeBtmQ3MgfDQ868XpuM7UYfryb9zLld8AB7BjnhY="; sha256 = "sha256-ktFBeBtmQ3MgfDQ868XpuM7UYfryb9zLld8AB7BjnhY=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ buildInputs = [
gtk2 libjack2 lilv lv2 python3 serd sord sratom suil gtk2 libjack2 lilv lv2 python3 serd sord sratom suil
]; ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fftwSinglePrec, lv2, pkg-config, waf, python3 }: { lib, stdenv, fetchurl, fftwSinglePrec, lv2, pkg-config, wafHook, python3 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mda-lv2"; pname = "mda-lv2";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s="; sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s=";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ fftwSinglePrec lv2 ]; buildInputs = [ fftwSinglePrec lv2 ];
meta = with lib; { meta = with lib; {

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2 { lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2
, libsndfile, ladspaH, liblo, libsigcxx, lrdf, waf , libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
@ -12,7 +12,7 @@ stdenv.mkDerivation {
sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4="; sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile
ladspaH liblo libsigcxx lrdf ladspaH liblo libsigcxx lrdf
]; ];

View File

@ -10,7 +10,7 @@
, libjack2 , libjack2
, pkg-config , pkg-config
, python3 , python3
, waf , wafHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
gtkmm2 gtkmm2
libjack2 libjack2
python3 python3
waf.hook wafHook
]; ];
meta = { meta = {

View File

@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, python3Packages, intltool, glib, itstool, gtk3 { lib, fetchFromGitHub, python3Packages, intltool, glib, itstool, gtk3
, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, waf }: , wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "hamster"; pname = "hamster";
@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
wrapGAppsHook wrapGAppsHook
intltool intltool
itstool itstool
waf.hook wafHook
glib glib
gobject-introspection gobject-introspection
]; ];

View File

@ -10,7 +10,7 @@
, desktop-file-utils , desktop-file-utils
, shared-mime-info , shared-mime-info
, wrapGAppsHook , wrapGAppsHook
, waf , wafHook
, bash , bash
, dbus , dbus
}: }:
@ -31,7 +31,7 @@ buildPythonApplication rec {
nativeBuildInputs = [ nativeBuildInputs = [
wrapGAppsHook intltool wrapGAppsHook intltool
# For setup hook # For setup hook
gobject-introspection waf.hook gobject-introspection wafHook
itstool # for help pages itstool # for help pages
desktop-file-utils # for update-desktop-database desktop-file-utils # for update-desktop-database
shared-mime-info # for update-mime-info shared-mime-info # for update-mime-info

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
diff --git a/Cargo.toml b/Cargo.toml
index 1b715bd..960e8da 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -35,7 +35,7 @@ libc = "0.2"
parity-tokio-ipc = { git = "https://github.com/open-trade/parity-tokio-ipc" }
flexi_logger = { version = "0.22", features = ["async", "use_chrono_for_offset"] }
runas = "0.2"
-magnum-opus = { git = "https://github.com/open-trade/magnum-opus" }
+magnum-opus = { git = "https://github.com/TheRadioGuy/magnum-opus" }
dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true }
rubato = { version = "0.12", optional = true }
samplerate = { version = "0.2", optional = true }

View File

@ -1,106 +1,73 @@
{ lib { lib
, fetchFromGitHub
, makeDesktopItem
, copyDesktopItems
, makeWrapper
, rustPlatform , rustPlatform
, cmake , fetchFromGitHub
, yasm
, nasm
, pkg-config , pkg-config
, clang , wrapGAppsHook
, atk
, bzip2
, cairo
, dbus
, gdk-pixbuf
, glib
, gst_all_1
, gtk3 , gtk3
, xdotool , libgit2
, libxcb , libpulseaudio
, libXfixes , libsodium
, alsa-lib
, pulseaudio
, libXtst , libXtst
, libvpx , libvpx
, libyuv , libyuv
, libopus , libopus
, libaom
, libxkbcommon
, libsciter , libsciter
, wrapGAppsHook , xdotool
, writeText , pam
, pango
, zlib
, zstd
, stdenv
, darwin
, alsa-lib
, makeDesktopItem
}: }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "rustdesk"; pname = "rustdesk";
version = "1.1.9"; version = "1.2.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rustdesk"; owner = "rustdesk";
repo = "rustdesk"; repo = "rustdesk";
rev = version; rev = version;
sha256 = "sha256-IlrfqwNyaSHE9Ct0mn7MUxEg7p1Ku34eOMYelEAYFW8="; hash = "sha256-fgdhPBrC8HuuEKorzG9hY4K3KVwB8hENtE3RM5agGWk=";
}; };
patches = [
# based on https://github.com/rustdesk/rustdesk/pull/1900
./fix-for-rust-1.65.diff
];
cargoLock = { cargoLock = {
lockFile = ./Cargo.lock; lockFile = ./Cargo.lock;
outputHashes = { outputHashes = {
"confy-0.4.0" = "sha256-e91cvEixhpPzIthAxzTa3fDY6eCsHUy/eZQAqs7QTDo="; "confy-0.4.0-2" = "sha256-r5VeggXrIq5Cwxc2WSrxQDI5Gvbw979qIUQfMKHgBUI=";
"parity-tokio-ipc-0.7.3-1" = "sha256-eULJePtBu0iBI3It/bPH0h82Obsb1PJALgwYwrnCFYI="; "evdev-0.11.5" = "sha256-aoPmjGi/PftnH6ClEWXHvIj0X3oh15ZC1q7wPC1XPr0=";
"rdev-0.5.0-2" = "sha256-7CEZ2wIM4QAPfY1tGKqXfHplTaxHnccVqFRPjY21Svo="; "hwcodec-0.1.1" = "sha256-EQGJr5kH8O48y1oSrzFF3QGGpGFKP3v4gn2JquAkdlY=";
"tokio-socks-0.5.1-1" = "sha256-45QQ6FrhGU9uEhbKXTKd/mY6MDumO6p46NmlakdyDQk="; "impersonate_system-0.1.0" = "sha256-qbaTw9gxMKDjX5pKdUrKlmIxCxWwb99YuWPDvD2A3kY=";
"libappindicator-0.6.1" = "sha256-JGnnZrcwbh8WJ6+/4bYhfD3HvgF2C7XaaGb6TaMRWdw="; "keepawake-0.4.3" = "sha256-sLQf9q88dB2bkTN01UlxRWSpoF1kFsqqpYC4Sw6cbEY=";
"magnum-opus-0.4.0" = "sha256-U5uuN4YolOYDnFNbtPpwYefcBDTUUyioui0UCcW8dyo="; "machine-uid-0.3.0" = "sha256-rEOyNThg6p5oqE9URnxSkPtzyW8D4zKzLi9pAnzTElE=";
"magnum-opus-0.4.0" = "sha256-T4qaYOl8lCK1h9jWa9KqGvnVfDViT9Ob5R+YgnSw2tg=";
"mouce-0.2.1" = "sha256-3PtNEmVMXgqKV4r3KiKTkk4oyCt4BKynniJREE+RyFk=";
"pam-0.7.0" = "sha256-qe2GH6sfGEUnqLiQucYLB5rD/GyAaVtm9pAxWRb1H3Q=";
"parity-tokio-ipc-0.7.3-2" = "sha256-WXDKcDBaJuq4K9gjzOKMozePOFiVX0EqYAFamAz/Yvw=";
"rdev-0.5.0-2" = "sha256-Agxx/hoV45/NGsrUZLYdm1Y9088Z9urUcDnjVjY/odk=";
"reqwest-0.11.18" = "sha256-3k2wcVD+DzJEdP/+8BqP9qz3tgEWcbWZj5/CjrZz5LY=";
"rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM="; "rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM=";
"sciter-rs-0.5.57" = "sha256-ZZnZDhMjK0LjgmK0da1yvB0uoKueLhhhQtzmjoN+1R0="; "sciter-rs-0.5.57" = "sha256-NQPDlMQ0sGY8c9lBMlplT82sNjbgJy2m/+REnF3fz8M=";
"systray-0.4.1" = "sha256-p1PMr/8oS6zHx4+Ng4zCqt0xZ57cq3wAu6/agyWq5Jw="; "tao-0.22.2" = "sha256-vZx7WM6vK9UarbFQ/FMnTNEEDS+tglhWcPXt/h7YMFA=";
"tfc-0.6.1" = "sha256-ukxJl7Z+pUXCjvTsG5Q0RiXocPERWGsnAyh3SIWm0HU=";
"tokio-socks-0.5.1-2" = "sha256-x3aFJKo0XLaCGkZLtG9GYA+A/cGGedVZ8gOztWiYVUY=";
"tray-icon-0.5.1" = "sha256-1VyUg8V4omgdRIYyXhfn8kUvhV5ef6D2cr2Djz2uQyc=";
"x11-2.19.0" = "sha256-GDCeKzUtvaLeBDmPQdyr499EjEfT6y4diBMzZVEptzc=";
}; };
}; };
# Change magnus-opus version to upstream so that it does not use
# vcpkg for libopus since it does not work.
cargoPatches = [
./cargo.patch
];
# Manually simulate a vcpkg installation so that it can link the libraries
# properly.
postUnpack =
let
vcpkg_target = "x64-linux";
updates_vcpkg_file = writeText "update_vcpkg_rustdesk"
''
Package : libyuv
Architecture : ${vcpkg_target}
Version : 1.0
Status : is installed
Package : libvpx
Architecture : ${vcpkg_target}
Version : 1.0
Status : is installed
'';
in
''
export VCPKG_ROOT="$TMP/vcpkg";
mkdir -p $VCPKG_ROOT/.vcpkg-root
mkdir -p $VCPKG_ROOT/installed/${vcpkg_target}/lib
mkdir -p $VCPKG_ROOT/installed/vcpkg/updates
ln -s ${updates_vcpkg_file} $VCPKG_ROOT/installed/vcpkg/status
mkdir -p $VCPKG_ROOT/installed/vcpkg/info
touch $VCPKG_ROOT/installed/vcpkg/info/libyuv_1.0_${vcpkg_target}.list
touch $VCPKG_ROOT/installed/vcpkg/info/libvpx_1.0_${vcpkg_target}.list
ln -s ${libvpx.out}/lib/* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${libyuv.out}/lib/* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
'';
nativeBuildInputs = [ pkg-config cmake makeWrapper copyDesktopItems yasm nasm clang wrapGAppsHook rustPlatform.bindgenHook ];
buildInputs = [ alsa-lib pulseaudio libXfixes libxcb xdotool gtk3 libvpx libopus libXtst libyuv ];
# Checks require an active X display.
doCheck = false;
desktopItems = [ desktopItems = [
(makeDesktopItem { (makeDesktopItem {
name = "rustdesk"; name = "rustdesk";
@ -113,17 +80,60 @@ rustPlatform.buildRustPackage rec {
}) })
]; ];
postPatch = '' nativeBuildInputs = [
rm Cargo.lock pkg-config
ln -s ${./Cargo.lock} Cargo.lock rustPlatform.bindgenHook
''; wrapGAppsHook
];
buildFeatures = lib.optionals stdenv.isLinux [ "linux-pkg-config" ];
# Checks require an active X server
doCheck = false;
buildInputs = [
atk
bzip2
cairo
dbus
gdk-pixbuf
glib
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
gtk3
libgit2
libpulseaudio
libsodium
libXtst
libvpx
libyuv
libopus
libaom
libxkbcommon
xdotool
pam
pango
zlib
zstd
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.AppKit
darwin.apple_sdk.frameworks.CoreAudio
darwin.apple_sdk.frameworks.CoreFoundation
darwin.apple_sdk.frameworks.CoreGraphics
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.IOKit
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
] ++ lib.optionals stdenv.isLinux [
alsa-lib
];
# Add static ui resources and libsciter to same folder as binary so that it # Add static ui resources and libsciter to same folder as binary so that it
# can find them. # can find them.
postInstall = '' postInstall = ''
mkdir -p $out/{share/src,lib/rustdesk} mkdir -p $out/{share/src,lib/rustdesk}
# so needs to be next to the executable # .so needs to be next to the executable
mv $out/bin/rustdesk $out/lib/rustdesk mv $out/bin/rustdesk $out/lib/rustdesk
ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk ln -s ${libsciter}/lib/libsciter-gtk.so $out/lib/rustdesk
@ -132,15 +142,19 @@ rustPlatform.buildRustPackage rec {
cp -a $src/src/ui $out/share/src cp -a $src/src/ui $out/share/src
install -Dm0644 $src/logo.svg $out/share/icons/hicolor/scalable/apps/rustdesk.svg install -Dm0644 $src/res/logo.svg $out/share/icons/hicolor/scalable/apps/rustdesk.svg
''; '';
env = {
SODIUM_USE_PKG_CONFIG = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
};
meta = with lib; { meta = with lib; {
description = "Yet another remote desktop software"; description = "Virtual / remote desktop infrastructure for everyone! Open source TeamViewer / Citrix alternative";
homepage = "https://rustdesk.com"; homepage = "https://rustdesk.com";
license = licenses.gpl3Only; license = licenses.agpl3Only;
maintainers = with maintainers; [ ocfox leixb ]; maintainers = with maintainers; [ ocfox leixb ];
platforms = [ "x86_64-linux" ];
mainProgram = "rustdesk"; mainProgram = "rustdesk";
}; };
} }

View File

@ -1,31 +0,0 @@
diff --git a/libs/hbb_common/src/config.rs b/libs/hbb_common/src/config.rs
index 74982de5..308bcf80 100644
--- a/libs/hbb_common/src/config.rs
+++ b/libs/hbb_common/src/config.rs
@@ -656,7 +656,7 @@ const PEERS: &str = "peers";
impl PeerConfig {
pub fn load(id: &str) -> PeerConfig {
- let _ = CONFIG.read().unwrap(); // for lock
+ let _lock = CONFIG.read().unwrap();
match confy::load_path(&Self::path(id)) {
Ok(config) => config,
Err(err) => {
@@ -667,7 +667,7 @@ impl PeerConfig {
}
pub fn store(&self, id: &str) {
- let _ = CONFIG.read().unwrap(); // for lock
+ let _lock = CONFIG.read().unwrap();
if let Err(err) = confy::store_path(Self::path(id), self) {
log::error!("Failed to store config: {}", err);
}
@@ -808,7 +808,7 @@ pub struct LanPeers {
impl LanPeers {
pub fn load() -> LanPeers {
- let _ = CONFIG.read().unwrap(); // for lock
+ let _lock = CONFIG.read().unwrap();
match confy::load_path(&Config::file_("_lan_peers")) {
Ok(peers) => peers,
Err(err) => {

View File

@ -3,7 +3,7 @@
, mkDerivation , mkDerivation
, fetchFromGitLab , fetchFromGitLab
, fetchpatch , fetchpatch
, waf , wafHook
, pkg-config , pkg-config
, cmake , cmake
, qtbase , qtbase
@ -65,7 +65,7 @@ mkDerivation rec {
--replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support" --replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support"
''; '';
nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config waf.hook cmake ]; nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config wafHook cmake ];
buildInputs = [ buildInputs = [
qtbase qtbase

View File

@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
assert svnSupport -> perlSupport; assert svnSupport -> perlSupport;
let let
version = "2.41.0"; version = "2.42.0";
svn = subversionClient.override { perlBindings = perlSupport; }; svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ]; gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
in in
@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl { src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
hash = "sha256-50i6/UJM/oCyEsvG8bvMw6R9SGL7HreYiHd1BHhWgEA="; hash = "sha256-MnghDp/SmUuEhN1+Pd2eqLlA71IXDNtgbaqU2IfJOw0=";
}; };
outputs = [ "out" ] ++ lib.optional withManual "doc"; outputs = [ "out" ] ++ lib.optional withManual "doc";
@ -396,7 +396,7 @@ stdenv.mkDerivation (finalAttrs: {
''; '';
platforms = lib.platforms.all; platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ primeos wmertens globin ]; maintainers = with lib.maintainers; [ primeos wmertens globin kashw2 ];
mainProgram = "git"; mainProgram = "git";
}; };
}) })

View File

@ -21,11 +21,11 @@ let
self = python3Packages.buildPythonApplication rec { self = python3Packages.buildPythonApplication rec {
pname = "mercurial${lib.optionalString fullBuild "-full"}"; pname = "mercurial${lib.optionalString fullBuild "-full"}";
version = "6.5.1"; version = "6.5.2";
src = fetchurl { src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
sha256 = "sha256-M/fejYs2B/orQIzeS4cl4RfrCtQZJqeH6qtAnKik/C8="; sha256 = "sha256-r8OdcGeXZZPIMyuOl6Eq/Tk7VQN8X7nDyrGkLHVg9go=";
}; };
format = "other"; format = "other";
@ -35,7 +35,7 @@ let
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball { cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
inherit src; inherit src;
name = "mercurial-${version}"; name = "mercurial-${version}";
sha256 = "sha256-tPv0UeZOsHDGKzXWeA/fFio7d3EN+KGioDu/1WH1drc="; sha256 = "sha256-dcyHmLkRadNK30Vv0XsCEaZGTIcF/L29lLe58ggB3Lg=";
sourceRoot = "mercurial-${version}/rust"; sourceRoot = "mercurial-${version}/rust";
} else null; } else null;
cargoRoot = if rustSupport then "rust" else null; cargoRoot = if rustSupport then "rust" else null;
@ -90,6 +90,7 @@ let
description = "A fast, lightweight SCM system for very large distributed projects"; description = "A fast, lightweight SCM system for very large distributed projects";
homepage = "https://www.mercurial-scm.org"; homepage = "https://www.mercurial-scm.org";
downloadPage = "https://www.mercurial-scm.org/release/"; downloadPage = "https://www.mercurial-scm.org/release/";
changelog = "https://wiki.mercurial-scm.org/Release${versions.majorMinor version}";
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ]; maintainers = with maintainers; [ eelco lukegb pacien techknowlogick ];
platforms = platforms.unix; platforms = platforms.unix;

View File

@ -107,6 +107,8 @@ let
&& !(stdenv.targetPlatform.useAndroidPrebuilt or false) && !(stdenv.targetPlatform.useAndroidPrebuilt or false)
&& !(stdenv.targetPlatform.isiOS or false) && !(stdenv.targetPlatform.isiOS or false)
&& gccForLibs != null; && gccForLibs != null;
gccForLibs_solib = getLib gccForLibs
+ optionalString (targetPlatform != hostPlatform) "/${targetPlatform.config}";
# older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu # older compilers (for example bootstrap's GCC 5) fail with -march=too-modern-cpu
isGccArchSupported = arch: isGccArchSupported = arch:
@ -374,7 +376,7 @@ stdenv.mkDerivation {
'' ''
+ optionalString useGccForLibs '' + optionalString useGccForLibs ''
echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags echo "-L${gccForLibs}/lib/gcc/${targetPlatform.config}/${gccForLibs.version}" >> $out/nix-support/cc-ldflags
echo "-L${gccForLibs.lib}/${targetPlatform.config}/lib" >> $out/nix-support/cc-ldflags echo "-L${gccForLibs_solib}/lib" >> $out/nix-support/cc-ldflags
'' ''
# TODO We would like to connect this to `useGccForLibs`, but we cannot yet # TODO We would like to connect this to `useGccForLibs`, but we cannot yet

View File

@ -69,8 +69,8 @@ _multioutConfig() {
# try to detect share/doc/${shareDocName} # try to detect share/doc/${shareDocName}
# Note: sadly, $configureScript detection comes later in configurePhase, # Note: sadly, $configureScript detection comes later in configurePhase,
# and reordering would cause more trouble than worth. # and reordering would cause more trouble than worth.
if [ -z "$shareDocName" ]; then if [ -z "${shareDocName:-}" ]; then
local confScript="$configureScript" local confScript="${configureScript:-}"
if [ -z "$confScript" ] && [ -x ./configure ]; then if [ -z "$confScript" ] && [ -x ./configure ]; then
confScript=./configure confScript=./configure
fi fi

View File

@ -75,7 +75,7 @@ patchShebangs() {
read -r oldInterpreterLine < "$f" read -r oldInterpreterLine < "$f"
read -r oldPath arg0 args <<< "${oldInterpreterLine:2}" read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"
if [[ -z "$pathName" ]]; then if [[ -z "${pathName:-}" ]]; then
if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
pathName=HOST_PATH pathName=HOST_PATH
else else

View File

@ -21,6 +21,9 @@ _separateDebugInfo() {
while IFS= read -r -d $'\0' i; do while IFS= read -r -d $'\0' i; do
if ! isELF "$i"; then continue; fi if ! isELF "$i"; then continue; fi
[ -z "${READELF:-}" ] && echo "_separateDebugInfo: '\$READELF' variable is empty, skipping." 1>&2 && break
[ -z "${OBJCOPY:-}" ] && echo "_separateDebugInfo: '\$OBJCOPY' variable is empty, skipping." 1>&2 && break
# Extract the Build ID. FIXME: there's probably a cleaner way. # Extract the Build ID. FIXME: there's probably a cleaner way.
local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')" local id="$($READELF -n "$i" | sed 's/.*Build ID: \([0-9a-f]*\).*/\1/; t; d')"
if [ "${#id}" != 40 ]; then if [ "${#id}" != 40 ]; then

View File

@ -49,11 +49,19 @@ stripDirs() {
local ranlibCmd="$2" local ranlibCmd="$2"
local paths="$3" local paths="$3"
local stripFlags="$4" local stripFlags="$4"
local excludeFlags=()
local pathsNew= local pathsNew=
[ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1 [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1
[ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1 [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1
local pattern
if [ -n "${stripExclude:-}" ]; then
for pattern in "${stripExclude[@]}"; do
excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')' )
done
fi
local p local p
for p in ${paths}; do for p in ${paths}; do
if [ -e "$prefix/$p" ]; then if [ -e "$prefix/$p" ]; then
@ -67,7 +75,7 @@ stripDirs() {
local striperr local striperr
striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')" striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"
# Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh. # Do not strip lib/debug. This is a directory used by setup-hooks/separate-debug-info.sh.
find $paths -type f -a '!' -path "$prefix/lib/debug/*" -print0 | find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 |
# Make sure we process files under symlinks only once. Otherwise # Make sure we process files under symlinks only once. Otherwise
# 'strip` can corrupt files when writes to them in parallel: # 'strip` can corrupt files when writes to them in parallel:
# https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039 # https://github.com/NixOS/nixpkgs/issues/246147#issuecomment-1657072039

View File

@ -1,5 +1,5 @@
{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala { lib, stdenv, pkg-config, fetchFromGitHub, python3, vala
, gtk3, libwnck, libxfce4util, xfce4-panel, waf, xfce , gtk3, libwnck, libxfce4util, xfce4-panel, wafHook, xfce
, gitUpdater , gitUpdater
}: }:
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA="; sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA=";
}; };
nativeBuildInputs = [ pkg-config vala waf.hook python3 ]; nativeBuildInputs = [ pkg-config vala wafHook python3 ];
buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ]; buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ];
postPatch = '' postPatch = ''

View File

@ -47,102 +47,43 @@ let
inherit (lib) optionals optional; inherit (lib) optionals optional;
in in
optionals (is49 || is6) [ #
./9/fix-struct-redefinition-on-glibc-2.36.patch # Patches below are organized into three general categories:
] ++ optionals (is49 || (is6 && !stdenv.targetPlatform.isRedox)) [ # 1. Patches relevant to gcc>=12 on every platform
./use-source-date-epoch.patch # 2. Patches relevant to gcc>=12 on specific platforms
] ++ optionals (is6 && !stdenv.targetPlatform.isRedox) [ # 3. Patches relevant only to gcc<12
./6/0001-Fix-build-for-glibc-2.31.patch #
] ++ optionals (!atLeast6) [
./parallel-bconfig.patch
] ++ optionals (is49) [ ## 1. Patches relevant to gcc>=12 on every platform ####################################
(./. + "/${lib.versions.major version}.${lib.versions.minor version}/parallel-strsignal.patch")
(./. + "/${lib.versions.major version}.${lib.versions.minor version}/libsanitizer.patch") []
(fetchpatch {
name = "avoid-ustat-glibc-2.28.patch";
url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
sha256 = "0b32sb4psv5lq0ij9fwhi1b4pjbwdjnv24nqprsk14dsc6xmi1g0";
})
] ++ optionals (is7) [
# https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00633.html
(./. + "/${majorVersion}/riscv-pthread-reentrant.patch")
# https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
(./. + "/${majorVersion}/riscv-no-relax.patch")
# Fix for asan w/glibc-2.34. Although there's no upstream backport to v7,
# the patch from gcc 8 seems to work perfectly fine.
(./. + "/${majorVersion}/gcc8-asan-glibc-2.34.patch")
(./. + "/${majorVersion}/0001-Fix-build-for-glibc-2.31.patch")
] ++ optional (majorVersion == "9") ./9/fix-struct-redefinition-on-glibc-2.36.patch
++ optional (atLeast6 && !atLeast12) ./fix-bug-80431.patch ++ optional (atLeast6 && !atLeast12) ./fix-bug-80431.patch
++ optional (is7 || is8) ./9/fix-struct-redefinition-on-glibc-2.36.patch
++ optional (targetPlatform != hostPlatform) ./libstdc++-target.patch ++ optional (targetPlatform != hostPlatform) ./libstdc++-target.patch
++ optional (atLeast7 && !atLeast10 && targetPlatform.isNetBSD) ./libstdc++-netbsd-ctypes.patch ++ optionals (noSysDirs) (
++ optional (noSysDirs) (if atLeast12 then ./gcc-12-no-sys-dirs.patch else ./no-sys-dirs.patch) [(if atLeast12 then ./gcc-12-no-sys-dirs.patch else ./no-sys-dirs.patch)] ++
++ optionals (is6 && langAda) [ ({
./gnat-cflags.patch "13" = [ ./13/no-sys-dirs-riscv.patch ];
./6/gnat-glibc234.patch "12" = [ ./no-sys-dirs-riscv.patch ];
] ++ optional (noSysDirs && atLeast10 && !atLeast13 && (is10 || (!atLeast12 -> hostPlatform.isRiscV))) ./no-sys-dirs-riscv.patch "11" = [ ./no-sys-dirs-riscv.patch ];
++ optional (noSysDirs && is13) ./13/no-sys-dirs-riscv.patch "10" = [ ./no-sys-dirs-riscv.patch ];
++ optional (noSysDirs && is9 && hostPlatform.isRiscV) ./no-sys-dirs-riscv-gcc9.patch "9" = [ ./no-sys-dirs-riscv-gcc9.patch ];
++ optionals (langAda || atLeast12) [ }."${majorVersion}" or [])
./gnat-cflags-11.patch )
] ++ optionals (langAda && (is9 || is10)) [ ++ optional (atLeast12 && langAda) ./gnat-cflags-11.patch
./gnat-cflags.patch ++ optional langFortran (if atLeast12 then ./gcc-12-gfortran-driving.patch else ./gfortran-driving.patch)
] ++ optionals atLeast12 [ ++ optional atLeast7 ./ppc-musl.patch
./gcc-12-gfortran-driving.patch ++ optional is12 ./12/lambda-ICE-PR109241.patch # backport ICE fix on ccache code
./ppc-musl.patch
] ++ optionals is12 [
# backport ICE fix on ccache code
./12/lambda-ICE-PR109241.patch
]
# We only apply this patch when building a native toolchain for aarch64-darwin, as it breaks building
# a foreign one: https://github.com/iains/gcc-12-branch/issues/18
++ optionals (stdenv.isDarwin && stdenv.isAarch64 && buildPlatform == hostPlatform && hostPlatform == targetPlatform) ({
"13" = [ (fetchpatch {
name = "gcc-13-darwin-aarch64-support.patch";
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3c5cbc8e9cf444a1967786af48e430588e1eb481/gcc/gcc-13.2.0.diff";
sha256 = "sha256-Y5r3U3dwAFG6+b0TNCFd18PNxYu2+W/5zDbZ5cHvv+U=";
}) ];
"12" = [ (fetchurl {
name = "gcc-12-darwin-aarch64-support.patch";
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/f1188b90d610e2ed170b22512ff7435ba5c891e2/gcc/gcc-12.3.0.diff";
sha256 = "sha256-naL5ZNiurqfDBiPSU8PTbTmLqj25B+vjjiqc4fAFgYs=";
}) ];
}."${majorVersion}" or [])
++ optional (atLeast9 && langD) ./libphobos.patch ++ optional (atLeast9 && langD) ./libphobos.patch
++ optional (is7 && hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
url = "https://git.busybox.net/buildroot/plain/package/gcc/7.1.0/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = "0mrvxsdwip2p3l17dscpc1x8vhdsciqw1z5q9i6p5g9yg1cqnmgs";
}) ## 2. Patches relevant to gcc>=12 on specific platforms ####################################
++ optional (!atLeast12 && langFortran) ./gfortran-driving.patch
++ optional (!atLeast49 && hostPlatform.isDarwin) ./gfortran-darwin-NXConstStr.patch ### Musl+Go+gcc12
++ optionals (is49) [
# glibc-2.26
./struct-ucontext.patch
./struct-sigaltstack-4.9.patch
]
# TODO: deduplicate this with copy above -- leaving duplicated for now in order to avoid changing eval results by reordering
++ optional (atLeast7 && !atLeast12 && targetPlatform.libc == "musl" && targetPlatform.isPower) ./ppc-musl.patch
++ optional ((is6 || is7) && targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch {
url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb";
sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2";
})
++ optional ((is6 || is7 || is8) && !atLeast9 && targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch
++ optional (is6 && langGo) ./gogcc-workaround-glibc-2.36.patch
# TODO: deduplicate this with copy above -- leaving duplicated for now in order to avoid changing eval results by reordering
++ optionals (is11 && stdenv.isDarwin) [
(fetchpatch {
# There are no upstream release tags in https://github.com/iains/gcc-11-branch.
# ff4bf32 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.4.0
url = "https://github.com/iains/gcc-11-branch/compare/ff4bf326d03e750a8d4905ea49425fe7d15a04b8..gcc-11.4-darwin-r0.diff";
hash = "sha256-6prPgR2eGVJs7vKd6iM1eZsEPCD1ShzLns2Z+29vlt4=";
})
]
# https://github.com/osx-cross/homebrew-avr/issues/280#issuecomment-1272381808
++ optional (is11 && stdenv.isDarwin && targetPlatform.isAvr) ./avr-gcc-11.3-darwin.patch
# backport fixes to build gccgo with musl libc # backport fixes to build gccgo with musl libc
++ optionals (atLeast12 && langGo && stdenv.hostPlatform.isMusl) [ ++ optionals (stdenv.hostPlatform.isMusl && langGo && atLeast12) [
(fetchpatch { (fetchpatch {
excludes = [ "gcc/go/gofrontend/MERGE" ]; excludes = [ "gcc/go/gofrontend/MERGE" ];
url = "https://github.com/gcc-mirror/gcc/commit/cf79b1117bd177d3d4c6ed24b6fa243c3628ac2d.diff"; url = "https://github.com/gcc-mirror/gcc/commit/cf79b1117bd177d3d4c6ed24b6fa243c3628ac2d.diff";
@ -179,16 +120,143 @@ optionals (is49 || is6) [
}) })
] ]
## Darwin
# Fix detection of bootstrap compiler Ada support (cctools as) on Nix Darwin # Fix detection of bootstrap compiler Ada support (cctools as) on Nix Darwin
++ optional (atLeast12 && stdenv.isDarwin && langAda) ./ada-cctools-as-detection-configure.patch ++ optional (atLeast12 && stdenv.isDarwin && langAda) ./ada-cctools-as-detection-configure.patch
# Use absolute path in GNAT dylib install names on Darwin # Use absolute path in GNAT dylib install names on Darwin
++ optional (atLeast12 && stdenv.isDarwin && langAda) ./gnat-darwin-dylib-install-name.patch ++ optional (atLeast12 && stdenv.isDarwin && langAda) ./gnat-darwin-dylib-install-name.patch
# We only apply this patch when building a native toolchain for aarch64-darwin, as it breaks building
# a foreign one: https://github.com/iains/gcc-12-branch/issues/18
++ optionals (stdenv.isDarwin && stdenv.isAarch64 && buildPlatform == hostPlatform && hostPlatform == targetPlatform) ({
"13" = [ (fetchpatch {
name = "gcc-13-darwin-aarch64-support.patch";
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/3c5cbc8e9cf444a1967786af48e430588e1eb481/gcc/gcc-13.2.0.diff";
sha256 = "sha256-Y5r3U3dwAFG6+b0TNCFd18PNxYu2+W/5zDbZ5cHvv+U=";
}) ];
"12" = [ (fetchurl {
name = "gcc-12-darwin-aarch64-support.patch";
url = "https://raw.githubusercontent.com/Homebrew/formula-patches/f1188b90d610e2ed170b22512ff7435ba5c891e2/gcc/gcc-12.3.0.diff";
sha256 = "sha256-naL5ZNiurqfDBiPSU8PTbTmLqj25B+vjjiqc4fAFgYs=";
}) ];
"11" = [ (fetchpatch {
# There are no upstream release tags in https://github.com/iains/gcc-11-branch.
# ff4bf32 is the commit from https://github.com/gcc-mirror/gcc/releases/tag/releases%2Fgcc-11.4.0
url = "https://github.com/iains/gcc-11-branch/compare/ff4bf326d03e750a8d4905ea49425fe7d15a04b8..gcc-11.4-darwin-r0.diff";
hash = "sha256-6prPgR2eGVJs7vKd6iM1eZsEPCD1ShzLns2Z+29vlt4=";
}) ];
}.${majorVersion} or [])
## Windows
# Obtain latest patch with ../update-mcfgthread-patches.sh # Obtain latest patch with ../update-mcfgthread-patches.sh
++ optional (atLeast6 && !atLeast13 && !withoutTargetLibc && targetPlatform.isMinGW && threadsCross.model == "mcf") ++ optional (atLeast6 && !atLeast13 && !withoutTargetLibc && targetPlatform.isMinGW && threadsCross.model == "mcf")
(./. + "/${majorVersion}/Added-mcf-thread-model-support-from-mcfgthread.patch") (./. + "/${majorVersion}/Added-mcf-thread-model-support-from-mcfgthread.patch")
##############################################################################
##
## 3. Patches relevant only to gcc<12
##
## Above this point are patches which might potentially be applied
## to gcc version 12 or newer. Below this point are patches which
## will *only* be used for gcc versions older than gcc12.
##
##############################################################################
## gcc 11.0 and older ##############################################################################
# https://github.com/osx-cross/homebrew-avr/issues/280#issuecomment-1272381808
++ optional (is11 && stdenv.isDarwin && targetPlatform.isAvr) ./avr-gcc-11.3-darwin.patch
# openjdk build fails without this on -march=opteron; is upstream in gcc12
++ optionals (is11) [ ./11/gcc-issue-103910.patch ]
## gcc 10.0 and older ##############################################################################
++ optional (langAda && (is9 || is10)) ./gnat-cflags.patch
++ optional (is10 && buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch {
url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch";
sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA=";
})
## gcc 9.0 and older ##############################################################################
++ optional (majorVersion == "9") ./9/fix-struct-redefinition-on-glibc-2.36.patch
++ optional (atLeast7 && !atLeast10 && targetPlatform.isNetBSD) ./libstdc++-netbsd-ctypes.patch
## gcc 8.0 and older ##############################################################################
# for 49 this is applied later
++ optional (atLeast49 && !is49 && !atLeast9) ./libsanitizer-no-cyclades-9.patch
++ optional (is7 || is8) ./9/fix-struct-redefinition-on-glibc-2.36.patch
## gcc 7.0 and older ##############################################################################
++ optional (is7 && hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
url = "https://git.busybox.net/buildroot/plain/package/gcc/7.1.0/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
sha256 = "0mrvxsdwip2p3l17dscpc1x8vhdsciqw1z5q9i6p5g9yg1cqnmgs";
})
++ optionals (is7) [
# https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00633.html
(./. + "/${majorVersion}/riscv-pthread-reentrant.patch")
# https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00297.html
(./. + "/${majorVersion}/riscv-no-relax.patch")
# Fix for asan w/glibc-2.34. Although there's no upstream backport to v7,
# the patch from gcc 8 seems to work perfectly fine.
(./. + "/${majorVersion}/gcc8-asan-glibc-2.34.patch")
(./. + "/${majorVersion}/0001-Fix-build-for-glibc-2.31.patch")
]
++ optional ((is6 || is7) && targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch {
url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb";
sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2";
})
++ optional ((is6 || is7 || is8) && !atLeast9 && targetPlatform.libc == "musl") ./libgomp-dont-force-initial-exec.patch
## gcc 6.0 and older ##############################################################################
++ optional (is6 && langGo) ./gogcc-workaround-glibc-2.36.patch
++ optional (is49 || is6) ./9/fix-struct-redefinition-on-glibc-2.36.patch
++ optional (is49 || (is6 && !stdenv.targetPlatform.isRedox)) ./use-source-date-epoch.patch
++ optional (is6 && !stdenv.targetPlatform.isRedox) ./6/0001-Fix-build-for-glibc-2.31.patch
++ optionals (is6 && langAda) [
./gnat-cflags.patch
./6/gnat-glibc234.patch
]
## gcc 4.9 and older ##############################################################################
++ optional (!atLeast6) ./parallel-bconfig.patch
++ optionals (is49) [
(./. + "/${lib.versions.major version}.${lib.versions.minor version}/parallel-strsignal.patch")
(./. + "/${lib.versions.major version}.${lib.versions.minor version}/libsanitizer.patch")
(fetchpatch {
name = "avoid-ustat-glibc-2.28.patch";
url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
sha256 = "0b32sb4psv5lq0ij9fwhi1b4pjbwdjnv24nqprsk14dsc6xmi1g0";
})
# has to be applied after "avoid-ustat-glibc-2.28.patch"
./libsanitizer-no-cyclades-9.patch
# glibc-2.26
./struct-ucontext.patch
./struct-sigaltstack-4.9.patch
]
# Retpoline patches pulled from the branch hjl/indirect/gcc-4_9-branch (by H.J. Lu, the author of GCC upstream retpoline commits) # Retpoline patches pulled from the branch hjl/indirect/gcc-4_9-branch (by H.J. Lu, the author of GCC upstream retpoline commits)
++ optionals is49 ++ optionals is49
(builtins.map ({commit, sha256}: fetchpatch {url = "https://github.com/hjl-tools/gcc/commit/${commit}.patch"; inherit sha256;}) (builtins.map ({commit, sha256}: fetchpatch {url = "https://github.com/hjl-tools/gcc/commit/${commit}.patch"; inherit sha256;})
@ -206,7 +274,6 @@ optionals (is49 || is6) [
{ commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; } { commit = "1e961ed49b18e176c7457f53df2433421387c23b"; sha256 = "04dnqqs4qsvz4g8cq6db5id41kzys7hzhcaycwmc9rpqygs2ajwz"; }
{ commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }]) { commit = "e137c72d099f9b3b47f4cc718aa11eab14df1a9c"; sha256 = "1ms0dmz74yf6kwgjfs4d2fhj8y6mcp2n184r3jk44wx2xc24vgb2"; }])
++ optional (atLeast49 && !atLeast9) ./libsanitizer-no-cyclades-9.patch
++ optional (is49 && !atLeast6) [ ++ optional (is49 && !atLeast6) [
# gcc-11 compatibility # gcc-11 compatibility
(fetchpatch { (fetchpatch {
@ -217,14 +284,11 @@ optionals (is49 || is6) [
}) })
] ]
# openjdk build fails without this on -march=opteron; is upstream in gcc12
++ optionals (is11) [ ./11/gcc-issue-103910.patch ]
++ optional (is10 && buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch { ## gcc 4.8 only ##############################################################################
url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch";
sha256 = "sha256-XtykrPd5h/tsnjY1wGjzSOJ+AyyNLsfnjuOZ5Ryq9vA="; ++ optional (!atLeast49 && hostPlatform.isDarwin) ./gfortran-darwin-NXConstStr.patch
}) ++ optionals is48 [
++ lib.optionals is48 [
(fetchpatch { (fetchpatch {
name = "libc_name_p.diff"; # needed to build with gcc6 name = "libc_name_p.diff"; # needed to build with gcc6
url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=ec1cc0263f1"; url = "https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff_plain;h=ec1cc0263f1";

View File

@ -46,11 +46,11 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "go"; pname = "go";
version = "1.20.7"; version = "1.20.8";
src = fetchurl { src = fetchurl {
url = "https://go.dev/dl/go${version}.src.tar.gz"; url = "https://go.dev/dl/go${version}.src.tar.gz";
hash = "sha256-LF7pyeweczsNu8K9/tP2IwblHYFyvzj09OVCsnUg9Zc="; hash = "sha256-ONcXFPpSeflyQEUZVtjkfjwbal3ny4QTeUnWK13TGC4=";
}; };
strictDeps = true; strictDeps = true;

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -55,7 +55,7 @@ stdenv.mkDerivation {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [ patches = [
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15 ./find-darwin-sdk-version.patch # don't test for macOS being >= 10.15
./gnu-install-dirs.patch ./gnu-install-dirs.patch
../../common/compiler-rt/libsanitizer-no-cyclades-11.patch ../../common/compiler-rt/libsanitizer-no-cyclades-11.patch

View File

@ -137,7 +137,7 @@ let
./lldb/procfs.patch ./lldb/procfs.patch
./lldb/gnu-install-dirs.patch ./lldb/gnu-install-dirs.patch
]; ];
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -147,7 +147,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -19,11 +19,11 @@ stdenv.mkDerivation {
'' + lib.optionalString stdenv.hostPlatform.isMusl '' '' + lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch} patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch} patch -p1 -d $(ls -d llvm-*) -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [
./no-threads.patch ../../common/libcxxabi/no-threads.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
]; ];

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -1,33 +0,0 @@
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 19 Sep 2017 13:13:06 -0500
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
needs it
---
cmake/Modules/AddCompilerRT.cmake | 8 ------
test/asan/CMakeLists.txt | 52 ---------------------------------------
test/tsan/CMakeLists.txt | 47 -----------------------------------
3 files changed, 107 deletions(-)
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index bc5fb9ff7..b64eb4246 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
endif()
- if(APPLE)
- # Ad-hoc sign the dylibs
- add_custom_command(TARGET ${libname}
- POST_BUILD
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
- )
- endif()
endif()
install(TARGETS ${libname}
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
2.14.1

View File

@ -56,7 +56,7 @@ stdenv.mkDerivation {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [ patches = [
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
./gnu-install-dirs.patch ./gnu-install-dirs.patch
# ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the

View File

@ -152,7 +152,7 @@ let
./lldb/procfs.patch ./lldb/procfs.patch
./lldb/gnu-install-dirs.patch ./lldb/gnu-install-dirs.patch
]; ];
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -162,7 +162,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -22,11 +22,11 @@ stdenv.mkDerivation {
'' + lib.optionalString stdenv.hostPlatform.isMusl '' '' + lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch} patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [
./no-threads.patch ../../common/libcxxabi/no-threads.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
]; ];

View File

@ -1,12 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4138acf..41b4763 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
" is also set to ON.")
endif()
add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
+ add_definitions(-D_LIBCPP_HAS_NO_THREADS)
endif()
if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -1,33 +0,0 @@
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 19 Sep 2017 13:13:06 -0500
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
needs it
---
cmake/Modules/AddCompilerRT.cmake | 8 ------
test/asan/CMakeLists.txt | 52 ---------------------------------------
test/tsan/CMakeLists.txt | 47 -----------------------------------
3 files changed, 107 deletions(-)
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index bc5fb9ff7..b64eb4246 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
endif()
- if(APPLE)
- # Ad-hoc sign the dylibs
- add_custom_command(TARGET ${libname}
- POST_BUILD
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
- )
- endif()
endif()
install(TARGETS ${libname}
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
2.14.1

View File

@ -57,7 +57,7 @@ stdenv.mkDerivation {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
patches = [ patches = [
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config ./X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
./gnu-install-dirs.patch ./gnu-install-dirs.patch
# ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the

View File

@ -139,19 +139,20 @@ let
src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78"; src = fetch "lldb" "0g3pj1m3chafavpr35r9fynm85y2hdyla6klj0h28khxs2613i78";
patches = patches =
let let
resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" resourceDirPatch = callPackage
{ ({ substituteAll, libclang }: substituteAll
clangLibDir = "${libclang.lib}/lib"; {
} '' src = ./lldb/resource-dir.patch;
substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir clangLibDir = "${libclang.lib}/lib";
'')) { }; })
{ };
in in
[ [
./lldb/procfs.patch ./lldb/procfs.patch
resourceDirPatch resourceDirPatch
./lldb/gnu-install-dirs.patch ./lldb/gnu-install-dirs.patch
]; ];
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -161,7 +162,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation {
'' + lib.optionalString stdenv.hostPlatform.isMusl '' '' + lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch} patch -p1 -d libcxx -i ${../../libcxx-0001-musl-hacks.patch}
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,35 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -138,12 +138,13 @@ let
lldb = callPackage ../common/lldb.nix { lldb = callPackage ../common/lldb.nix {
patches = patches =
let let
resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" resourceDirPatch = callPackage
{ ({ substituteAll, libclang }: substituteAll
clangLibDir = "${libclang.lib}/lib"; {
} '' src = ./lldb/resource-dir.patch;
substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir clangLibDir = "${libclang.lib}/lib";
'')) { }; })
{ };
in in
[ [
./lldb/procfs.patch ./lldb/procfs.patch
@ -164,7 +165,7 @@ let
&& !stdenv.targetPlatform.isAarch64 && !stdenv.targetPlatform.isAarch64
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
) ./lldb/cpu_subtype_arm64e_replacement.patch; ) ./lldb/cpu_subtype_arm64e_replacement.patch;
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -174,7 +175,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
postUnpack = lib.optionalString stdenv.isDarwin '' postUnpack = lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,35 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -139,12 +139,13 @@ let
lldb = callPackage ../common/lldb.nix { lldb = callPackage ../common/lldb.nix {
patches = patches =
let let
resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" resourceDirPatch = callPackage
{ ({ substituteAll, libclang }: substituteAll
clangLibDir = "${libclang.lib}/lib"; {
} '' src = ./lldb/resource-dir.patch;
substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir clangLibDir = "${libclang.lib}/lib";
'')) { }; })
{ };
in in
[ [
./lldb/procfs.patch ./lldb/procfs.patch
@ -165,7 +166,7 @@ let
&& !stdenv.targetPlatform.isAarch64 && !stdenv.targetPlatform.isAarch64
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
) ./lldb/cpu_subtype_arm64e_replacement.patch; ) ./lldb/cpu_subtype_arm64e_replacement.patch;
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -175,7 +176,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
postUnpack = lib.optionalString stdenv.isDarwin '' postUnpack = lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,37 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-debuginfod $out/bin/${prefix}debuginfod
ln -s ${llvm}/bin/llvm-debuginfod-find $out/bin/${prefix}debuginfod-find
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -187,12 +187,13 @@ in let
lldb = callPackage ../common/lldb.nix { lldb = callPackage ../common/lldb.nix {
patches = patches =
let let
resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" resourceDirPatch = callPackage
{ ({ substituteAll, libclang }: substituteAll
clangLibDir = "${libclang.lib}/lib"; {
} '' src = ./lldb/resource-dir.patch;
substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir clangLibDir = "${libclang.lib}/lib";
'')) { }; })
{ };
in in
[ [
./lldb/procfs.patch ./lldb/procfs.patch
@ -213,7 +214,7 @@ in let
&& !stdenv.targetPlatform.isAarch64 && !stdenv.targetPlatform.isAarch64
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
) ./lldb/cpu_subtype_arm64e_replacement.patch; ) ./lldb/cpu_subtype_arm64e_replacement.patch;
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -223,7 +224,7 @@ in let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postUnpack = lib.optionalString stdenv.isDarwin '' postUnpack = lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
prePatch = '' prePatch = ''

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,37 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-debuginfod $out/bin/${prefix}debuginfod
ln -s ${llvm}/bin/llvm-debuginfod-find $out/bin/${prefix}debuginfod-find
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -192,12 +192,13 @@ in let
'') { }; '') { };
patches = patches =
let let
resourceDirPatch = callPackage ({ runCommand, libclang }: (runCommand "resource-dir.patch" resourceDirPatch = callPackage
{ ({ substituteAll, libclang }: substituteAll
clangLibDir = "${libclang.lib}/lib"; {
} '' src = ./lldb/resource-dir.patch;
substitute '${./lldb/resource-dir.patch}' "$out" --subst-var clangLibDir clangLibDir = "${libclang.lib}/lib";
'')) { }; })
{ };
in in
[ [
# FIXME: do we need this? ./procfs.patch # FIXME: do we need this? ./procfs.patch
@ -218,7 +219,7 @@ in let
&& !stdenv.targetPlatform.isAarch64 && !stdenv.targetPlatform.isAarch64
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0") && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
) ./lldb/cpu_subtype_arm64e_replacement.patch; ) ./lldb/cpu_subtype_arm64e_replacement.patch;
inherit llvm_meta release_version; inherit llvm_meta;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -228,7 +229,7 @@ in let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postUnpack = lib.optionalString stdenv.isDarwin '' postUnpack = lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
prePatch = '' prePatch = ''

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -41,7 +41,7 @@ let
]; ];
patches = [ patches = [
./purity.patch ../../common/clang/5-8-purity.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
(substituteAll { (substituteAll {
src = ./LLVMgold-path.patch; src = ./LLVMgold-path.patch;

View File

@ -41,7 +41,7 @@ let
]; ];
patches = [ patches = [
./purity.patch ../../common/clang/5-8-purity.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
(substituteAll { (substituteAll {
src = ../../clang-6-10-LLVMgold-path.patch; src = ../../clang-6-10-LLVMgold-path.patch;

View File

@ -1,30 +0,0 @@
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Thu, 18 May 2017 11:56:12 -0500
Subject: [PATCH] "purity" patch for 5.0
---
lib/Driver/ToolChains/Gnu.cpp | 7 -------
1 file changed, 7 deletions(-)
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
index fe3c0191bb..c6a482bece 100644
--- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (!Args.hasArg(options::OPT_static)) {
if (Args.hasArg(options::OPT_rdynamic))
CmdArgs.push_back("-export-dynamic");
-
- if (!Args.hasArg(options::OPT_shared)) {
- const std::string Loader =
- D.DyldPrefix + ToolChain.getDynamicLinker(Args);
- CmdArgs.push_back("-dynamic-linker");
- CmdArgs.push_back(Args.MakeArgString(Loader));
- }
}
CmdArgs.push_back("-o");
--
2.11.0

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -45,7 +45,7 @@ let
]; ];
patches = [ patches = [
./purity.patch ../../common/clang/5-8-purity.patch
# make clang -xhip use $PATH to find executables # make clang -xhip use $PATH to find executables
./HIP-use-PATH-7.patch ./HIP-use-PATH-7.patch
# Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is # Backport for the `--unwindlib=[libgcc|compiler-rt]` flag, which is

View File

@ -1,30 +0,0 @@
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Thu, 18 May 2017 11:56:12 -0500
Subject: [PATCH] "purity" patch for 5.0
---
lib/Driver/ToolChains/Gnu.cpp | 7 -------
1 file changed, 7 deletions(-)
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
index fe3c0191bb..c6a482bece 100644
--- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (!Args.hasArg(options::OPT_static)) {
if (Args.hasArg(options::OPT_rdynamic))
CmdArgs.push_back("-export-dynamic");
-
- if (!Args.hasArg(options::OPT_shared)) {
- const std::string Loader =
- D.DyldPrefix + ToolChain.getDynamicLinker(Args);
- CmdArgs.push_back("-dynamic-linker");
- CmdArgs.push_back(Args.MakeArgString(Loader));
- }
}
CmdArgs.push_back("-o");
--
2.11.0

View File

@ -1,33 +0,0 @@
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 19 Sep 2017 13:13:06 -0500
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
needs it
---
cmake/Modules/AddCompilerRT.cmake | 8 ------
test/asan/CMakeLists.txt | 52 ---------------------------------------
test/tsan/CMakeLists.txt | 47 -----------------------------------
3 files changed, 107 deletions(-)
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index bc5fb9ff7..b64eb4246 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
endif()
- if(APPLE)
- # Ad-hoc sign the dylibs
- add_custom_command(TARGET ${libname}
- POST_BUILD
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
- )
- endif()
endif()
install(TARGETS ${libname}
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
2.14.1

View File

@ -56,7 +56,7 @@ stdenv.mkDerivation {
patches = [ patches = [
# https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
../../common/compiler-rt/glibc.patch ../../common/compiler-rt/glibc.patch
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./gnu-install-dirs.patch ./gnu-install-dirs.patch
../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch ] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch

View File

@ -149,7 +149,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -45,7 +45,7 @@ let
]; ];
patches = [ patches = [
./purity.patch ../../common/clang/5-8-purity.patch
./xpc.patch ./xpc.patch
# Backport for -static-pie, which the latter touches, and which is nice in # Backport for -static-pie, which the latter touches, and which is nice in
# its own right. # its own right.

View File

@ -1,30 +0,0 @@
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Thu, 18 May 2017 11:56:12 -0500
Subject: [PATCH] "purity" patch for 5.0
---
lib/Driver/ToolChains/Gnu.cpp | 7 -------
1 file changed, 7 deletions(-)
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
index fe3c0191bb..c6a482bece 100644
--- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (!Args.hasArg(options::OPT_static)) {
if (Args.hasArg(options::OPT_rdynamic))
CmdArgs.push_back("-export-dynamic");
-
- if (!Args.hasArg(options::OPT_shared)) {
- const std::string Loader =
- D.DyldPrefix + ToolChain.getDynamicLinker(Args);
- CmdArgs.push_back("-dynamic-linker");
- CmdArgs.push_back(Args.MakeArgString(Loader));
- }
}
CmdArgs.push_back("-o");
--
2.11.0

View File

@ -1,33 +0,0 @@
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 19 Sep 2017 13:13:06 -0500
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
needs it
---
cmake/Modules/AddCompilerRT.cmake | 8 ------
test/asan/CMakeLists.txt | 52 ---------------------------------------
test/tsan/CMakeLists.txt | 47 -----------------------------------
3 files changed, 107 deletions(-)
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index bc5fb9ff7..b64eb4246 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
endif()
- if(APPLE)
- # Ad-hoc sign the dylibs
- add_custom_command(TARGET ${libname}
- POST_BUILD
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
- )
- endif()
endif()
install(TARGETS ${libname}
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
2.14.1

View File

@ -56,7 +56,7 @@ stdenv.mkDerivation {
patches = [ patches = [
# https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
../../common/compiler-rt/glibc.patch ../../common/compiler-rt/glibc.patch
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./gnu-install-dirs.patch ./gnu-install-dirs.patch
../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch ] ++ lib.optional (useLLVM) ./crtbegin-and-end.patch

View File

@ -150,7 +150,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -23,7 +23,7 @@ stdenv.mkDerivation {
''; '';
patches = [ patches = [
./no-threads.patch ../../common/libcxxabi/no-threads.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
]; ];

View File

@ -1,12 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4138acf..41b4763 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
" is also set to ON.")
endif()
add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
+ add_definitions(-D_LIBCPP_HAS_NO_THREADS)
endif()
if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,34 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -1,33 +0,0 @@
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
From: Will Dietz <w@wdtz.org>
Date: Tue, 19 Sep 2017 13:13:06 -0500
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
needs it
---
cmake/Modules/AddCompilerRT.cmake | 8 ------
test/asan/CMakeLists.txt | 52 ---------------------------------------
test/tsan/CMakeLists.txt | 47 -----------------------------------
3 files changed, 107 deletions(-)
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index bc5fb9ff7..b64eb4246 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
endif()
- if(APPLE)
- # Ad-hoc sign the dylibs
- add_custom_command(TARGET ${libname}
- POST_BUILD
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
- )
- endif()
endif()
install(TARGETS ${libname}
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
2.14.1

View File

@ -56,7 +56,7 @@ stdenv.mkDerivation {
patches = [ patches = [
# https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce # https://github.com/llvm/llvm-project/commit/947f9692440836dcb8d88b74b69dd379d85974ce
../../common/compiler-rt/glibc.patch ../../common/compiler-rt/glibc.patch
./codesign.patch # Revert compiler-rt commit that makes codesign mandatory ../../common/compiler-rt/7-12-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
./gnu-install-dirs.patch ./gnu-install-dirs.patch
../../common/compiler-rt/libsanitizer-no-cyclades-9.patch ../../common/compiler-rt/libsanitizer-no-cyclades-9.patch
# Fix build on armv6l # Fix build on armv6l

View File

@ -150,7 +150,7 @@ let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -19,11 +19,11 @@ stdenv.mkDerivation {
'' + lib.optionalString stdenv.hostPlatform.isMusl '' '' + lib.optionalString stdenv.hostPlatform.isMusl ''
patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch} patch -p1 -d $(ls -d libcxx-*) -i ${../../libcxx-0001-musl-hacks.patch}
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d $(ls -d llvm-*) -i ${./wasm.patch} patch -p1 -d $(ls -d llvm-*) -i ${../../common/libcxxabi/wasm.patch}
''; '';
patches = [ patches = [
./no-threads.patch ../../common/libcxxabi/no-threads.patch
./gnu-install-dirs.patch ./gnu-install-dirs.patch
]; ];

View File

@ -1,12 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4138acf..41b4763 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -362,6 +362,7 @@ if (NOT LIBCXXABI_ENABLE_THREADS)
" is also set to ON.")
endif()
add_definitions(-D_LIBCXXABI_HAS_NO_THREADS)
+ add_definitions(-D_LIBCPP_HAS_NO_THREADS)
endif()
if (LIBCXXABI_HAS_EXTERNAL_THREAD_API)

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -0,0 +1,48 @@
{ lib, runCommand, stdenv, llvm, lld, version, release_version }:
let
targetPrefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in
runCommand "llvm-binutils-${version}"
{
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
}
(''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${targetPrefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${targetPrefix}$(basename $prog)
done
llvmBin="${llvm}/bin"
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib
ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt
ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp
ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip
ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump
ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf
ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size
ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings
ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line
if [ -e "$llvmBin/llvm-debuginfod" ]; then
ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod
ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find
fi
ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld
# Only >=13 show GNU windres compatible in help
'' + lib.optionalString (lib.versionAtLeast release_version "13") ''
ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres
'')

View File

@ -45,25 +45,21 @@ stdenv.mkDerivation (rec {
outputs = [ "out" "lib" "dev" ]; outputs = [ "out" "lib" "dev" ];
sourceRoot = sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${src.name}/${pname}";
if lib.versionOlder release_version "13" then null
else "${src.name}/${pname}";
nativeBuildInputs = [ nativeBuildInputs = [
cmake cmake
] ++ lib.optionals (lib.versionAtLeast release_version "15") [
ninja
] ++ [
python3 python3
which which
swig swig
lit lit
makeWrapper makeWrapper
] ++ lib.optionals (lib.versionAtLeast release_version "14") [
lua5_3 lua5_3
] ++ lib.optionals enableManpages [ ] ++ lib.optionals enableManpages [
python3.pkgs.sphinx python3.pkgs.sphinx
python3.pkgs.recommonmark python3.pkgs.recommonmark
] ++ lib.optionals (lib.versionAtLeast release_version "14") [
ninja
]; ];
buildInputs = [ buildInputs = [
@ -87,11 +83,13 @@ stdenv.mkDerivation (rec {
# #
# See here for context: # See here for context:
# https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132 # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
++ lib.optional ( ++ lib.optional
(
stdenv.targetPlatform.isDarwin stdenv.targetPlatform.isDarwin
&& !stdenv.targetPlatform.isAarch64 && !stdenv.targetPlatform.isAarch64
&& (lib.versionAtLeast release_version "15") && (lib.versionAtLeast release_version "15")
) ( )
(
runCommand "bsm-audit-session-header" { } '' runCommand "bsm-audit-session-header" { } ''
install -Dm444 \ install -Dm444 \
"${lib.getDev darwin.apple_sdk.sdk}/include/bsm/audit_session.h" \ "${lib.getDev darwin.apple_sdk.sdk}/include/bsm/audit_session.h" \
@ -104,7 +102,7 @@ stdenv.mkDerivation (rec {
cmakeFlags = [ cmakeFlags = [
"-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}" "-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
"-DLLVM_ENABLE_RTTI=OFF" "-DLLVM_ENABLE_RTTI=OFF"
"-DClang_DIR=${libclang.dev}/lib/cmake" "-DClang_DIR=${lib.getDev libclang}/lib/cmake"
"-DLLVM_EXTERNAL_LIT=${lit}/bin/lit" "-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
"-DLLDB_USE_SYSTEM_DEBUGSERVER=ON" "-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
@ -127,28 +125,21 @@ stdenv.mkDerivation (rec {
]; ];
doCheck = false; doCheck = false;
doInstallCheck = lib.versionOlder release_version "15";
# TODO: cleanup with mass-rebuild # TODO: cleanup with mass-rebuild
installCheckPhase = installCheckPhase = ''
if ((lib.versions.major release_version) == "14") then '' if [ ! -e $lib/${python3.sitePackages}/lldb/_lldb*.so ] ; then
if [ ! -e $lib/${python3.sitePackages}/lldb/_lldb*.so ] ; then echo "ERROR: python files not installed where expected!";
echo "ERROR: python files not installed where expected!"; return 1;
return 1; fi
fi '' # Something lua is built on older versions but this file doesn't exist.
if [ ! -e "$lib/lib/lua/${lua5_3.luaversion}/lldb.so" ] ; then + lib.optionalString (lib.versionAtLeast release_version "14") ''
echo "ERROR: lua files not installed where expected!"; if [ ! -e "$lib/lib/lua/${lua5_3.luaversion}/lldb.so" ] ; then
return 1; echo "ERROR: lua files not installed where expected!";
fi return 1;
'' else if (((lib.versions.major release_version) == "15") || (lib.versions.major release_version) == "16") then '' fi
if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then '';
return 1;
fi
'' else ''
if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then
echo "ERROR: python files not installed where expected!";
return 1;
fi
'';
postInstall = '' postInstall = ''
wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/ wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/
@ -157,7 +148,7 @@ stdenv.mkDerivation (rec {
# vscode: # vscode:
install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
ln -s $out/bin/${if (lib.versionOlder release_version "12") then "llvm-vscode" else "lldb-vscode"} $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin ln -s $out/bin/*-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
''; '';
meta = llvm_meta // { meta = llvm_meta // {
@ -174,17 +165,15 @@ stdenv.mkDerivation (rec {
(lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64) (lib.versionOlder release_version "11" && stdenv.isDarwin && stdenv.isAarch64)
|| (((lib.versions.major release_version) == "13") && stdenv.isDarwin); || (((lib.versions.major release_version) == "13") && stdenv.isDarwin);
}; };
} // lib.optionalAttrs (lib.versionOlder release_version "15") {
doInstallCheck = true;
} // lib.optionalAttrs enableManpages { } // lib.optionalAttrs enableManpages {
pname = "lldb-manpages"; pname = "lldb-manpages";
buildPhase = buildPhase = lib.optionalString (lib.versionOlder release_version "15") ''
if lib.versionOlder release_version "15" then '' make ${if (lib.versionOlder release_version "12") then "docs-man" else "docs-lldb-man"}
make ${if (lib.versionOlder release_version "12") then "docs-man" else "docs-lldb-man"} '';
'' else null;
ninjaFlags = if lib.versionAtLeast release_version "15" then [ "docs-lldb-man" ] else null;
ninjaFlags = lib.optionals (lib.versionAtLeast release_version "15") [ "docs-lldb-man" ];
propagatedBuildInputs = [ ]; propagatedBuildInputs = [ ];

View File

@ -1,37 +0,0 @@
{ lib, runCommand, stdenv, llvm, lld, version }:
let
prefix = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) "${stdenv.targetPlatform.config}-";
in runCommand "llvm-binutils-${version}" {
preferLocalBuild = true;
passthru = {
isLLVM = true;
};
} ''
mkdir -p $out/bin
for prog in ${lld}/bin/*; do
ln -s $prog $out/bin/${prefix}$(basename $prog)
done
for prog in ${llvm}/bin/*; do
ln -sf $prog $out/bin/${prefix}$(basename $prog)
done
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}dlltool
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ranlib
ln -s ${llvm}/bin/llvm-cxxfilt $out/bin/${prefix}c++filt
ln -s ${llvm}/bin/llvm-debuginfod $out/bin/${prefix}debuginfod
ln -s ${llvm}/bin/llvm-debuginfod-find $out/bin/${prefix}debuginfod-find
ln -s ${llvm}/bin/llvm-dwp $out/bin/${prefix}dwp
ln -s ${llvm}/bin/llvm-nm $out/bin/${prefix}nm
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}objcopy
ln -s ${llvm}/bin/llvm-objcopy $out/bin/${prefix}strip
ln -s ${llvm}/bin/llvm-objdump $out/bin/${prefix}objdump
ln -s ${llvm}/bin/llvm-rc $out/bin/${prefix}windres
ln -s ${llvm}/bin/llvm-readobj $out/bin/${prefix}readelf
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
ln -s ${llvm}/bin/llvm-strings $out/bin/${prefix}strings
ln -s ${llvm}/bin/llvm-symbolizer $out/bin/${prefix}addr2line
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
''

View File

@ -184,11 +184,28 @@ in let
inherit llvm_meta; inherit llvm_meta;
}; };
lldb = callPackage ./lldb { lldb = callPackage ../common/lldb.nix {
src = callPackage ({ runCommand }: runCommand "lldb-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/lldb "$out"
'') { };
patches =
let
resourceDirPatch = callPackage
({ substituteAll, libclang }: substituteAll
{
src = ./lldb/resource-dir.patch;
clangLibDir = "${libclang.lib}/lib";
})
{ };
in
[
./lldb/procfs.patch # FIXME: do we need this?
resourceDirPatch
./lldb/gnu-install-dirs.patch
];
inherit llvm_meta; inherit llvm_meta;
inherit (darwin) libobjc bootstrap_cmds;
inherit (darwin.apple_sdk.libs) xpc;
inherit (darwin.apple_sdk.frameworks) Foundation Carbon Cocoa;
}; };
# Below, is the LLVM bootstrapping logic. It handles building a # Below, is the LLVM bootstrapping logic. It handles building a
@ -198,7 +215,7 @@ in let
# doesnt support like LLVM. Probably we should move to some other # doesnt support like LLVM. Probably we should move to some other
# file. # file.
bintools-unwrapped = callPackage ./bintools {}; bintools-unwrapped = callPackage ../common/bintools.nix { };
bintoolsNoLibc = wrapBintoolsWith { bintoolsNoLibc = wrapBintoolsWith {
bintools = tools.bintools-unwrapped; bintools = tools.bintools-unwrapped;

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
postUnpack = lib.optionalString stdenv.isDarwin '' postUnpack = lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin export TRIPLE=x86_64-apple-darwin
'' + lib.optionalString stdenv.hostPlatform.isWasm '' '' + lib.optionalString stdenv.hostPlatform.isWasm ''
patch -p1 -d llvm -i ${./wasm.patch} patch -p1 -d llvm -i ${../../common/libcxxabi/wasm.patch}
''; '';
prePatch = '' prePatch = ''

View File

@ -1,16 +0,0 @@
diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake
index 15497d405e0..33f7f18193a 100644
--- a/cmake/modules/HandleLLVMOptions.cmake
+++ b/cmake/modules/HandleLLVMOptions.cmake
@@ -127,7 +127,10 @@ else(WIN32)
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
endif()
else(FUCHSIA OR UNIX)
- MESSAGE(SEND_ERROR "Unable to determine platform")
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Wasi")
+ else()
+ MESSAGE(SEND_ERROR "Unable to determine platform")
+ endif()
endif(FUCHSIA OR UNIX)
endif(WIN32)

View File

@ -1,144 +0,0 @@
{ lib, stdenv, llvm_meta
, runCommand
, monorepoSrc
, cmake
, ninja
, zlib
, ncurses
, swig
, which
, libedit
, libxml2
, libllvm
, libclang
, python3
, version
, libobjc
, xpc
, Foundation
, bootstrap_cmds
, Carbon
, Cocoa
, lit
, makeWrapper
, enableManpages ? false
, lua5_3
}:
stdenv.mkDerivation (rec {
pname = "lldb";
inherit version;
src = runCommand "${pname}-src-${version}" {} ''
mkdir -p "$out"
cp -r ${monorepoSrc}/cmake "$out"
cp -r ${monorepoSrc}/${pname} "$out"
'';
sourceRoot = "${src.name}/${pname}";
patches = [
./procfs.patch
(runCommand "resource-dir.patch" {
clangLibDir = "${libclang.lib}/lib";
} ''
substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
'')
./gnu-install-dirs.patch
];
outputs = [ "out" "lib" "dev" ];
nativeBuildInputs = [
cmake ninja python3 which swig lit makeWrapper lua5_3
] ++ lib.optionals enableManpages [
python3.pkgs.sphinx python3.pkgs.recommonmark
];
buildInputs = [
ncurses
zlib
libedit
libxml2
libllvm
] ++ lib.optionals stdenv.isDarwin [
libobjc
xpc
Foundation
bootstrap_cmds
Carbon
Cocoa
];
hardeningDisable = [ "format" ];
cmakeFlags = [
"-DLLDB_INCLUDE_TESTS=${if doCheck then "YES" else "NO"}"
"-DLLVM_ENABLE_RTTI=OFF"
"-DClang_DIR=${libclang.dev}/lib/cmake"
"-DLLVM_EXTERNAL_LIT=${lit}/bin/lit"
] ++ lib.optionals stdenv.isDarwin [
"-DLLDB_USE_SYSTEM_DEBUGSERVER=ON"
] ++ lib.optionals (!stdenv.isDarwin) [
"-DLLDB_CODESIGN_IDENTITY=" # codesigning makes nondeterministic
] ++ lib.optionals enableManpages [
"-DLLVM_ENABLE_SPHINX=ON"
"-DSPHINX_OUTPUT_MAN=ON"
"-DSPHINX_OUTPUT_HTML=OFF"
] ++ lib.optionals doCheck [
"-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
"-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
];
doCheck = false;
installCheckPhase = ''
if [ ! -e "$lib/${python3.sitePackages}/lldb/_lldb.so" ] ; then
return 1;
fi
'';
postInstall = ''
wrapProgram $out/bin/lldb --prefix PYTHONPATH : $lib/${python3.sitePackages}/
# Editor support
# vscode:
install -D ../tools/lldb-vscode/package.json $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/package.json
mkdir -p $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
ln -s $out/bin/lldb-vscode $out/share/vscode/extensions/llvm-org.lldb-vscode-0.1.0/bin
'';
meta = llvm_meta // {
homepage = "https://lldb.llvm.org/";
description = "A next-generation high-performance debugger";
longDescription = ''
LLDB is a next generation, high-performance debugger. It is built as a set
of reusable components which highly leverage existing libraries in the
larger LLVM Project, such as the Clang expression parser and LLVM
disassembler.
'';
};
} // lib.optionalAttrs enableManpages {
pname = "lldb-manpages";
ninjaFlags = [ "docs-lldb-man" ];
propagatedBuildInputs = [];
# manually install lldb man page
installPhase = ''
mkdir -p $out/share/man/man1
install docs/man/lldb.1 -t $out/share/man/man1/
'';
postPatch = null;
postInstall = null;
outputs = [ "out" ];
doCheck = false;
meta = llvm_meta // {
description = "man pages for LLDB ${version}";
};
})

View File

@ -101,8 +101,8 @@ in rec {
}; };
vala_0_56 = generic { vala_0_56 = generic {
version = "0.56.9"; version = "0.56.13";
sha256 = "VVeMfE8Ges4CjlQYBq8kD4CEy2/wzFVMqorAjL+Lzi8="; sha256 = "SYgiMDbH4eSHTEdtDei9nL5QDuJe8Zp25WDcC21Wrgc=";
}; };
vala = vala_0_56; vala = vala_0_56;

View File

@ -1,13 +1,15 @@
{ self, callPackage, fetchFromGitHub, lib, passthruFun }: { self, callPackage, fetchFromGitHub, lib, passthruFun }:
callPackage ./default.nix { callPackage ./default.nix rec {
version = "2.0.5-2022-09-13"; # The patch version is the timestamp of the git commit,
# obtain via `cat $(nix-build -A luajit_2_0.src)/.relver`
version = "2.0.1693340858";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LuaJIT"; owner = "LuaJIT";
repo = "LuaJIT"; repo = "LuaJIT";
rev = "46e62cd963a426e83a60f691dcbbeb742c7b3ba2"; rev = "c6ee7e19d107b4f9a140bb2ccf99162e26318c69";
hash = "sha256-/XR9+6NjXs2TrUVKJNkH2h970BkDNFqMDJTWcy/bswU="; hash = "sha256-3/7ASZRniytw5RkOy0F9arHkZevq6dxmya+Ba3A5IIA=";
}; };
extraMeta = { # this isn't precise but it at least stops the useless Hydra build extraMeta = { # this isn't precise but it at least stops the useless Hydra build

View File

@ -1,13 +1,15 @@
{ self, callPackage, fetchFromGitHub, passthruFun }: { self, callPackage, fetchFromGitHub, passthruFun }:
callPackage ./default.nix { callPackage ./default.nix rec {
version = "2.1.0-2022-10-04"; # The patch version is the timestamp of the git commit,
# obtain via `cat $(nix-build -A luajit_2_1.src)/.relver`
version = "2.1.1693350652";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LuaJIT"; owner = "LuaJIT";
repo = "LuaJIT"; repo = "LuaJIT";
rev = "6c4826f12c4d33b8b978004bc681eb1eef2be977"; rev = "41fb94defa8f830ce69a8122b03f6ac3216d392a";
hash = "sha256-GMgoSVHrfIuLdk8mW9XgdemNFsAkkQR4wiGGjaAXAKg="; hash = "sha256-iY80CA97RqJ9gF1Kl7ms/lC6m6KScjxWmljh5Gy7Brg=";
}; };
inherit self passthruFun; inherit self passthruFun;

Some files were not shown because too many files have changed in this diff Show More