Merge branch 'master' into staging
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
{ stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
|
||||
|
||||
let
|
||||
defaultVersion = "94";
|
||||
defaultVersion = "95";
|
||||
|
||||
# Map from git revs to SHA256 hashes
|
||||
sha256s = {
|
||||
version_94 = "1wk20fhyppb2ljni7ifqnsx9kl1kcl6c0svc0qljf0bs6rvr9qdm";
|
||||
version_95 = "1w4js9bm5qv5aws8bzz4f0n3ni2l7h4fidkq9v5bldf0zxncy8m3";
|
||||
"1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
|
||||
};
|
||||
in
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
, fontconfig
|
||||
, gmp
|
||||
, gperf
|
||||
, haskell
|
||||
, libX11
|
||||
, libpoly
|
||||
, perl
|
||||
@@ -14,16 +13,14 @@
|
||||
, verilog
|
||||
, xorg
|
||||
, zlib
|
||||
, ghc
|
||||
}:
|
||||
|
||||
let
|
||||
# yices wants a libgmp.a and fails otherwise
|
||||
gmpStatic = gmp.override { withStatic = true; };
|
||||
|
||||
# Compiling PreludeBSV fails with more recent GHC versions
|
||||
# > imperative statement (not BVI context)
|
||||
# https://github.com/B-Lang-org/bsc/issues/20#issuecomment-583724030
|
||||
ghcWithPackages = haskell.packages.ghc844.ghc.withPackages (g: (with g; [old-time regex-compat syb]));
|
||||
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "bluespec";
|
||||
version = "unstable-2020.02.09";
|
||||
|
||||
@@ -6,26 +6,28 @@ let
|
||||
let files = builtins.attrNames (builtins.readDir dir);
|
||||
in map (f: dir + ("/" + f)) files;
|
||||
in {
|
||||
stable = mkFlutter {
|
||||
stable = mkFlutter rec {
|
||||
pname = "flutter";
|
||||
channel = "stable";
|
||||
version = "1.12.13+hotfix.9";
|
||||
sha256Hash = "1ql3zvmmk5zk47y30lajxaam04q6vr373dayq15jv4vpc0fzif1y";
|
||||
version = "1.17.5";
|
||||
filename = "flutter_linux_${version}-${channel}.tar.xz";
|
||||
sha256Hash = "0kapja3nh7dfhjbn2np02wghijrjnpzsv4hz10fj54hs8hdx19di";
|
||||
patches = getPatches ./patches/stable;
|
||||
};
|
||||
beta = mkFlutter {
|
||||
beta = mkFlutter rec {
|
||||
pname = "flutter-beta";
|
||||
channel = "beta";
|
||||
version = "1.15.17";
|
||||
sha256Hash = "0iil6y6y477dhjgzx54ab5m9nj0jg4xl8x4zzd9iwh8m756r7qsd";
|
||||
version = "1.20.0-7.2.pre";
|
||||
filename = "flutter_linux_${version}-${channel}.tar.xz";
|
||||
sha256Hash = "0w89ig5vi4spa95mf08r4vvwni7bzzdlyhvr9sy1a35qmf7j9s6f";
|
||||
patches = getPatches ./patches/beta;
|
||||
};
|
||||
dev = mkFlutter rec {
|
||||
pname = "flutter-dev";
|
||||
channel = "dev";
|
||||
version = "1.17.0-dev.5.0";
|
||||
version = "1.21.0-1.0.pre";
|
||||
filename = "flutter_linux_${version}-${channel}.tar.xz";
|
||||
sha256Hash = "0ks2jf2bd42y2jsc91p33r57q7j3m94d8ihkmlxzwi53x1mwp0pk";
|
||||
sha256Hash = "14rx89jp6ivk3ai7iwbznkr5q445ndh8fppzbxg520kq10s2208r";
|
||||
patches = getPatches ./patches/beta;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
diff --git a/bin/flutter b/bin/flutter
|
||||
index e0c18e235..2c3fb7ddd 100755
|
||||
--- a/bin/flutter
|
||||
+++ b/bin/flutter
|
||||
@@ -185,8 +185,6 @@ fi
|
||||
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
|
||||
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
|
||||
diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
|
||||
index 702bd9ed5..4d4dc94c6 100755
|
||||
--- a/bin/internal/shared.sh
|
||||
+++ b/bin/internal/shared.sh
|
||||
@@ -204,8 +204,6 @@ function shared::execute() {
|
||||
# FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
|
||||
# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
|
||||
|
||||
-(upgrade_flutter) 3< "$PROG_NAME"
|
||||
- upgrade_flutter 7< "$PROG_NAME"
|
||||
-
|
||||
# FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
|
||||
# separate space-separated args.
|
||||
"$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
|
||||
BIN_NAME="$(basename "$PROG_NAME")"
|
||||
case "$BIN_NAME" in
|
||||
flutter*)
|
||||
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
index 99455ae64..f5b0cb59c 100644
|
||||
index 21be933e1..2ea73c4c0 100644
|
||||
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
|
||||
@@ -294,13 +294,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
|
||||
globals.flutterUsage.suppressAnalytics = true;
|
||||
}
|
||||
|
||||
_checkFlutterCopy();
|
||||
- try {
|
||||
- await globals.flutterVersion.ensureVersionFile();
|
||||
- } on FileSystemException catch (e) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
|
||||
index 8e511eefd..fbc7d6ac3 100644
|
||||
index 8e511eefd..fef3cca8b 100644
|
||||
--- a/dev/devicelab/lib/framework/runner.dart
|
||||
+++ b/dev/devicelab/lib/framework/runner.dart
|
||||
@@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
|
||||
@@ -12,31 +12,31 @@ index 8e511eefd..fbc7d6ac3 100644
|
||||
if (!Platform.isWindows) {
|
||||
await exec(
|
||||
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
|
||||
index 79b06949f..9040ba0a8 100644
|
||||
index c680de599..480abfb77 100644
|
||||
--- a/packages/flutter_tools/lib/src/asset.dart
|
||||
+++ b/packages/flutter_tools/lib/src/asset.dart
|
||||
@@ -6,6 +6,7 @@ import 'dart:async';
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
|
||||
import 'package:package_config/package_config.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
+import 'base/common.dart';
|
||||
import 'base/context.dart';
|
||||
import 'base/file_system.dart';
|
||||
import 'base/utils.dart';
|
||||
@@ -325,7 +326,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
|
||||
for (final Map<dynamic, dynamic> font in family['fonts']) {
|
||||
@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
|
||||
for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
|
||||
final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
|
||||
result.add(_Asset(
|
||||
- baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
|
||||
+ baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
|
||||
+ baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
|
||||
relativeUri: Uri(path: entryUri.pathSegments.last),
|
||||
entryUri: entryUri,
|
||||
));
|
||||
package: null,
|
||||
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
|
||||
index 715189938..5afb2a0db 100644
|
||||
index c0946782c..bdbc35cb8 100644
|
||||
--- a/packages/flutter_tools/lib/src/cache.dart
|
||||
+++ b/packages/flutter_tools/lib/src/cache.dart
|
||||
@@ -189,8 +189,14 @@ class Cache {
|
||||
@@ -202,8 +202,15 @@ class Cache {
|
||||
return;
|
||||
}
|
||||
assert(_lock == null);
|
||||
@@ -46,13 +46,14 @@ index 715189938..5afb2a0db 100644
|
||||
+ dir.createSync(recursive: true);
|
||||
+ globals.os.chmod(dir, '755');
|
||||
+ }
|
||||
+
|
||||
final File lockFile =
|
||||
- globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
|
||||
+ globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
|
||||
try {
|
||||
_lock = lockFile.openSync(mode: FileMode.write);
|
||||
} on FileSystemException catch (e) {
|
||||
@@ -290,7 +296,7 @@ class Cache {
|
||||
@@ -306,7 +313,7 @@ class Cache {
|
||||
if (_rootOverride != null) {
|
||||
return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
|
||||
} else {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/bin/flutter b/bin/flutter
|
||||
index 3955f8f39..1e7573d30 100755
|
||||
index cdf974233..1f7de1c1b 100755
|
||||
--- a/bin/flutter
|
||||
+++ b/bin/flutter
|
||||
@@ -185,8 +185,6 @@ fi
|
||||
@@ -12,20 +12,20 @@ index 3955f8f39..1e7573d30 100755
|
||||
# separate space-separated args.
|
||||
"$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
|
||||
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
index 5e45819d9..ab748b059 100644
|
||||
index b3e69714f..a9eb76234 100644
|
||||
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
|
||||
@@ -377,13 +377,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
|
||||
@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
|
||||
}
|
||||
|
||||
_checkFlutterCopy();
|
||||
- try {
|
||||
- await FlutterVersion.instance.ensureVersionFile();
|
||||
- await globals.flutterVersion.ensureVersionFile();
|
||||
- } on FileSystemException catch (e) {
|
||||
- printError('Failed to write the version file to the artifact cache: "$e".');
|
||||
- printError('Please ensure you have permissions in the artifact cache directory.');
|
||||
- globals.printError('Failed to write the version file to the artifact cache: "$e".');
|
||||
- globals.printError('Please ensure you have permissions in the artifact cache directory.');
|
||||
- throwToolExit('Failed to write the version file');
|
||||
- }
|
||||
if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool) {
|
||||
await FlutterVersion.instance.checkFlutterVersionFreshness();
|
||||
}
|
||||
final bool machineFlag = topLevelResults['machine'] as bool;
|
||||
if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
|
||||
await globals.flutterVersion.checkFlutterVersionFreshness();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
|
||||
index 9fae74726..d88d6ecbb 100644
|
||||
index 8e511eefd..fef3cca8b 100644
|
||||
--- a/dev/devicelab/lib/framework/runner.dart
|
||||
+++ b/dev/devicelab/lib/framework/runner.dart
|
||||
@@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
|
||||
@@ -7,57 +7,58 @@ index 9fae74726..d88d6ecbb 100644
|
||||
final String gradlewBinaryName = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
|
||||
final Directory tempDir = Directory.systemTemp.createTempSync('flutter_devicelab_shutdown_gradle.');
|
||||
- recursiveCopy(Directory(path.join(flutterDirectory.path, 'bin', 'cache', 'artifacts', 'gradle_wrapper')), tempDir);
|
||||
+ recursiveCopy(Directory(path.join(homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
|
||||
+ recursiveCopy(Directory(path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
|
||||
copy(File(path.join(path.join(flutterDirectory.path, 'packages', 'flutter_tools'), 'templates', 'app', 'android.tmpl', 'gradle', 'wrapper', 'gradle-wrapper.properties')), Directory(path.join(tempDir.path, 'gradle', 'wrapper')));
|
||||
if (!Platform.isWindows) {
|
||||
await exec(
|
||||
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
|
||||
index e6216c737..5ab497092 100644
|
||||
index c680de599..480abfb77 100644
|
||||
--- a/packages/flutter_tools/lib/src/asset.dart
|
||||
+++ b/packages/flutter_tools/lib/src/asset.dart
|
||||
@@ -6,6 +6,7 @@ import 'dart:async';
|
||||
|
||||
@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
|
||||
import 'package:package_config/package_config.dart';
|
||||
import 'package:yaml/yaml.dart';
|
||||
|
||||
+import 'base/common.dart';
|
||||
import 'base/context.dart';
|
||||
import 'base/file_system.dart';
|
||||
import 'base/platform.dart';
|
||||
@@ -326,7 +327,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
|
||||
for (Map<dynamic, dynamic> font in family['fonts']) {
|
||||
final Uri entryUri = fs.path.toUri(font['asset'] as String);
|
||||
import 'base/utils.dart';
|
||||
@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
|
||||
for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
|
||||
final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
|
||||
result.add(_Asset(
|
||||
- baseDir: fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
|
||||
+ baseDir: fs.path.join(homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
|
||||
- baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
|
||||
+ baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
|
||||
relativeUri: Uri(path: entryUri.pathSegments.last),
|
||||
entryUri: entryUri,
|
||||
));
|
||||
package: null,
|
||||
diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
|
||||
index 5e1950b56..45585f9c0 100644
|
||||
index c0946782c..bdbc35cb8 100644
|
||||
--- a/packages/flutter_tools/lib/src/cache.dart
|
||||
+++ b/packages/flutter_tools/lib/src/cache.dart
|
||||
@@ -164,8 +164,14 @@ class Cache {
|
||||
@@ -202,8 +202,15 @@ class Cache {
|
||||
return;
|
||||
}
|
||||
assert(_lock == null);
|
||||
+
|
||||
+ final Directory dir = fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
|
||||
+ final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
|
||||
+ if (!dir.existsSync()) {
|
||||
+ dir.createSync(recursive: true);
|
||||
+ os.chmod(dir, '755');
|
||||
+ globals.os.chmod(dir, '755');
|
||||
+ }
|
||||
+
|
||||
final File lockFile =
|
||||
- fs.file(fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
|
||||
+ fs.file(fs.path.join(homeDirPath, '.cache', 'flutter', 'lockfile'));
|
||||
- globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
|
||||
+ globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
|
||||
try {
|
||||
_lock = lockFile.openSync(mode: FileMode.write);
|
||||
} on FileSystemException catch (e) {
|
||||
@@ -239,7 +245,7 @@ class Cache {
|
||||
@@ -306,7 +313,7 @@ class Cache {
|
||||
if (_rootOverride != null) {
|
||||
return fs.directory(fs.path.join(_rootOverride.path, 'bin', 'cache'));
|
||||
return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
|
||||
} else {
|
||||
- return fs.directory(fs.path.join(flutterRoot, 'bin', 'cache'));
|
||||
+ return fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
|
||||
- return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
|
||||
+ return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
# aarch64 outputs otherwise exceed 2GB limit
|
||||
, enableProfiliedLibs ? !stdenv.targetPlatform.isAarch64
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
@@ -128,6 +131,8 @@ stdenv.mkDerivation (rec {
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + stdenv.lib.optionalString (!enableProfiliedLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
||||
|
||||
+31
-40
@@ -2,12 +2,15 @@
|
||||
|
||||
# build-tools
|
||||
, bootPkgs
|
||||
, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
|
||||
, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
|
||||
, bash
|
||||
|
||||
, libiconv ? null, ncurses
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) || stdenv.targetPlatform.isiOS
|
||||
, # GHC can be built with system libffi or a bundled one.
|
||||
libffi ? null
|
||||
|
||||
, useLLVM ? !stdenv.targetPlatform.isx86
|
||||
, # LLVM is conceptually a run-time-only depedendency, but for
|
||||
# non-x86, we need LLVM to bootstrap later stages, so it becomes a
|
||||
# build-time dependency too.
|
||||
@@ -20,6 +23,9 @@
|
||||
, # If enabled, use -fPIC when compiling static libs.
|
||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||
|
||||
# aarch64 outputs otherwise exceed 2GB limit
|
||||
, enableProfiliedLibs ? !stdenv.targetPlatform.isAarch64
|
||||
|
||||
, # Whether to build dynamic libs for the standard library (on the target
|
||||
# platform). Static libs are always built.
|
||||
enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
|
||||
@@ -29,11 +35,12 @@
|
||||
|
||||
, # What flavour to build. An empty string indicates no
|
||||
# specific flavour and falls back to ghc default values.
|
||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross"
|
||||
, # Whether to backport https://phabricator.haskell.org/D4388 for
|
||||
# deterministic profiling symbol names, at the cost of a slightly
|
||||
# non-standard GHC API
|
||||
deterministicProfiling ? false
|
||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||
|
||||
, # Whether to disable the large address space allocator
|
||||
# necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
|
||||
}:
|
||||
|
||||
assert !enableIntegerSimple -> gmp != null;
|
||||
@@ -70,6 +77,7 @@ let
|
||||
|
||||
# Splicer will pull out correct variations
|
||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
||||
++ [libffi]
|
||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||
|
||||
@@ -85,39 +93,18 @@ let
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.4.4";
|
||||
version = "8.8.4";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "1ch4j2asg7pr52ai1hwzykxyj553wndg7wq93i47ql4fllspf48i";
|
||||
sha256 = "0bgwbxxvdn56l91bp9p5d083gzcfdi6z8l8b17qzjpr3n8w5wl7h";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
outputs = [ "out" "doc" ];
|
||||
|
||||
patches = [(fetchpatch {
|
||||
url = "https://github.com/haskell/hsc2hs/commit/738f3666c878ee9e79c3d5e819ef8b3460288edf.diff";
|
||||
sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
|
||||
extraPrefix = "utils/hsc2hs/";
|
||||
stripLen = 1;
|
||||
}) (fetchpatch rec { # https://phabricator.haskell.org/D5123
|
||||
url = "http://tarballs.nixos.org/sha256/${sha256}";
|
||||
name = "D5123.diff";
|
||||
sha256 = "0nhqwdamf2y4gbwqxcgjxs0kqx23w9gv5kj0zv6450dq19rji82n";
|
||||
})] ++ stdenv.lib.optional deterministicProfiling
|
||||
(fetchpatch rec {
|
||||
url = "http://tarballs.nixos.org/sha256/${sha256}";
|
||||
name = "D4388.diff";
|
||||
sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s";
|
||||
})
|
||||
++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch
|
||||
++ stdenv.lib.optional (targetPlatform.isAarch32 || targetPlatform.isAarch64) (fetchpatch {
|
||||
url = "https://github.com/ghc/ghc/commit/d8495549ba9d194815c2d0eaee6797fc7c00756a.diff";
|
||||
sha256 = "1yjcma507c609bcim4rnxq0gaj2dg4d001jklmbpbqpzqzxkn5sz";
|
||||
});
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
# GHC is a bit confused on its cross terminology.
|
||||
@@ -144,6 +131,8 @@ stdenv.mkDerivation (rec {
|
||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||
'' + stdenv.lib.optionalString (!enableProfiliedLibs) ''
|
||||
GhcLibWays = "v dyn"
|
||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
||||
@@ -167,22 +156,28 @@ stdenv.mkDerivation (rec {
|
||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||
configurePlatforms = [ "build" "host" ]
|
||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
||||
|
||||
# `--with` flags for libraries needed for RTS linker
|
||||
configureFlags = [
|
||||
"--datadir=$doc/share/doc/ghc"
|
||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||
] ++ stdenv.lib.optionals (libffi != null) [
|
||||
"--with-system-libffi"
|
||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||
"--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
|
||||
"--with-iconv-includes=${libiconv}/include"
|
||||
"--with-iconv-libraries=${libiconv}/lib"
|
||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
||||
"--enable-bootstrap-with-devel-snapshot"
|
||||
] ++ stdenv.lib.optionals useLdGold [
|
||||
"CFLAGS=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||
] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
|
||||
# fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
|
||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
||||
"--disable-large-address-space"
|
||||
];
|
||||
|
||||
@@ -190,7 +185,7 @@ stdenv.mkDerivation (rec {
|
||||
strictDeps = true;
|
||||
|
||||
# Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
|
||||
dontAddExtraLibs = true;
|
||||
dontAddExtraLibs = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
perl autoconf automake m4 python3 sphinx
|
||||
@@ -212,10 +207,6 @@ stdenv.mkDerivation (rec {
|
||||
# that in turn causes GHCi to abort
|
||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||
|
||||
# See #63511 - the only unstripped file is the debug rts which isn't meant to
|
||||
# be stripped.
|
||||
dontStrip = true;
|
||||
|
||||
checkTarget = "test";
|
||||
|
||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||
@@ -239,7 +230,7 @@ stdenv.mkDerivation (rec {
|
||||
inherit enableShared;
|
||||
|
||||
# Our Cabal compiler name
|
||||
haskellCompilerName = "ghc-8.4.4";
|
||||
haskellCompilerName = "ghc-${version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
@@ -1,19 +1,22 @@
|
||||
{ stdenv, rustPlatform, fetchFromGitHub, Security }:
|
||||
{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "gleam";
|
||||
version = "0.8.0";
|
||||
version = "0.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gleam-lang";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "05n8a7b63i9946fvbxphfh8n6ib20qnbv44ghlzcjwca9qvlx7i7";
|
||||
sha256 = "0cgs0halxhp2hh3sf0nvy5ybllhraxircxxbfj9jbs3446dzflbk";
|
||||
};
|
||||
|
||||
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
cargoSha256 = "1ga5dinkmibkg53bfr6vc0i4bbgyn2y3d5qjf5bd965c1v7ba1jl";
|
||||
buildInputs = [ openssl ] ++
|
||||
stdenv.lib.optionals stdenv.isDarwin [ Security ];
|
||||
|
||||
cargoSha256 = "12lpxighjk3ydfa288llj6xqas7z9fbfjpwnl870189awvp2fjxx";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A statically typed language for the Erlang VM";
|
||||
|
||||
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
|
||||
ln -s $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
for prog in ${llvm}/bin/*; do
|
||||
ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
|
||||
ln -sf $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
rm -f $out/bin/${prefix}cat
|
||||
|
||||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
|
||||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
|
||||
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-objdump $out/bin/${prefix}objdump
|
||||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
|
||||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
|
||||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
|
||||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
|
||||
|
||||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
|
||||
''
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
Compressed diff from
|
||||
```
|
||||
git show d21664cce1db8debe2528f36b1fbd2b8af9c9401 87dac7da68ea1e0adac78c59ef1891dcf9632b67 3a0f6e699bb6d96dc62dce6faef20ac26cf103fd
|
||||
```
|
||||
with the purpose of avoiding linker errors arising in the polly-flavoured clang.
|
||||
|
||||
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
|
||||
index 781c3eb7f2f..dc1413f4b59 100644
|
||||
--- clang/CMakeLists.txt
|
||||
+++ clang/CMakeLists.txt
|
||||
@@ -864,6 +864,7 @@ add_subdirectory(utils/hmaptool)
|
||||
|
||||
if(CLANG_BUILT_STANDALONE)
|
||||
llvm_distribution_add_targets()
|
||||
+ process_llvm_pass_plugins()
|
||||
endif()
|
||||
|
||||
configure_file(
|
||||
@@ -8,7 +8,7 @@ let
|
||||
pname = "clang";
|
||||
inherit version;
|
||||
|
||||
src = fetch "clang" "08fbxa2a0kr3ni35ckppj0kyvlcyaywrhpqwcdrdy0z900mhcnw8";
|
||||
src = fetch "clang" "091bvcny2lh32zy8f3m9viayyhb2zannrndni7325rl85cwgr6pr";
|
||||
|
||||
unpackPhase = ''
|
||||
unpackFile $src
|
||||
@@ -37,9 +37,6 @@ let
|
||||
];
|
||||
|
||||
patches = [
|
||||
# 10.0.0 only, this should be present in 10.0.1
|
||||
./clang-extension-handling.patch
|
||||
|
||||
./purity.patch
|
||||
# https://reviews.llvm.org/D51899
|
||||
./compiler-rt-baremetal.patch
|
||||
|
||||
@@ -11,7 +11,7 @@ in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "compiler-rt";
|
||||
inherit version;
|
||||
src = fetch pname "0x9c531k6ww21s2mkdwqx1vbdjmx6d4wmfb8gdbj0wqa796sczba";
|
||||
src = fetch pname "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr";
|
||||
|
||||
nativeBuildInputs = [ cmake python3 llvm ];
|
||||
buildInputs = stdenv.lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
}:
|
||||
|
||||
let
|
||||
release_version = "10.0.0";
|
||||
version = release_version; # differentiating these (variables) is important for rc's
|
||||
release_version = "10.0.1";
|
||||
version = release_version; # differentiating these (variables) is important for RCs
|
||||
targetConfig = stdenv.targetPlatform.config;
|
||||
|
||||
fetch = name: sha256: fetchurl {
|
||||
@@ -14,7 +14,7 @@ let
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
clang-tools-extra_src = fetch "clang-tools-extra" "074ija5s2jsdn0k035r2dzmryjmqxdnyg4xwvaqych2bazv8rpxc";
|
||||
clang-tools-extra_src = fetch "clang-tools-extra" "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh";
|
||||
|
||||
tools = stdenv.lib.makeExtensible (tools: let
|
||||
callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
|
||||
@@ -36,20 +36,22 @@ let
|
||||
inherit clang-tools-extra_src;
|
||||
};
|
||||
|
||||
llvm-manpages = lowPrio (tools.llvm.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
#Llvm-manpages = lowPrio (tools.llvm.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
#});
|
||||
|
||||
clang-manpages = lowPrio (tools.clang-unwrapped.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
|
||||
lldb-manpages = lowPrio (tools.lldb.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
# lldb-manpages = lowPrio (tools.lldb.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
# });
|
||||
|
||||
libclang = tools.clang-unwrapped.lib;
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
|
||||
pname = "libc++";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxx" "1isnj78diknh0nvd73mlq8p8g209f9bab2mbysq826bg2wzql3r7";
|
||||
src = fetch "libcxx" "0v78bfr6h2zifvdqnj2wlfk4pvxzrqn3hg1v6lqk3y12bx9p9xny";
|
||||
|
||||
postUnpack = ''
|
||||
unpackFile ${libcxxabi.src}
|
||||
|
||||
@@ -5,7 +5,7 @@ stdenv.mkDerivation {
|
||||
pname = "libc++abi";
|
||||
inherit version;
|
||||
|
||||
src = fetch "libcxxabi" "1q8lrbh68a9v4lr88b8xsjpmwx5z96sa5wnkb92xx7ccm1ssq6z7";
|
||||
src = fetch "libcxxabi" "0yqs722y76cwvmfsq0lb917r9m3fci7bf5z3yzl71yz9n88ghzm9";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = stdenv.lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
|
||||
|
||||
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
|
||||
pname = "libunwind";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "09n66dl9cc17d81qflj5h1l4garmhvzfi2lhcb7rx00l8z65xp09";
|
||||
src = fetch pname "09syx66idnm2pr46x2vmk0jn3iwdv0lkd04xy4zjbwmz3vn066bl";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
pname = "lld";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "026pwcbczcg0j5c9h7hxxrn3ki81ia9m9sfn0sy0bvzffv2xg85r";
|
||||
src = fetch pname "0ynzi35r4fckvp6842alpd43qr810j3728yfslc66fk2mbh4j52r";
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ llvm libxml2 ];
|
||||
|
||||
@@ -20,7 +20,7 @@ stdenv.mkDerivation (rec {
|
||||
pname = "lldb";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "0ddikvc0kbqlqvsypsm9nhfwmyw4prp4rv49f0bgacyh5ssgq7yx";
|
||||
src = fetch pname "051p5b04y6z3g730rmc2n2v71lipbw7k69riww3a6sl74myfiaq7";
|
||||
|
||||
patches = [ ./lldb-procfs.patch ];
|
||||
|
||||
|
||||
@@ -1,146 +0,0 @@
|
||||
Compressed diff from
|
||||
```
|
||||
git show d21664cce1db8debe2528f36b1fbd2b8af9c9401 87dac7da68ea1e0adac78c59ef1891dcf9632b67 3a0f6e699bb6d96dc62dce6faef20ac26cf103fd
|
||||
```
|
||||
with the purpose of avoiding linker errors arising in the polly-flavoured clang.
|
||||
|
||||
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
|
||||
index a02c2a5a23f..faf8f561faa 100644
|
||||
--- llvm/CMakeLists.txt
|
||||
+++ llvm/CMakeLists.txt
|
||||
@@ -1069,6 +1069,7 @@ endif()
|
||||
# after all targets are created.
|
||||
include(LLVMDistributionSupport)
|
||||
llvm_distribution_add_targets()
|
||||
+process_llvm_pass_plugins(GEN_CONFIG)
|
||||
|
||||
# This allows us to deploy the Universal CRT DLLs by passing -DCMAKE_INSTALL_UCRT_LIBRARIES=ON to CMake
|
||||
if (MSVC AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_INSTALL_UCRT_LIBRARIES)
|
||||
@@ -1093,5 +1094,3 @@ endif()
|
||||
if (LLVM_INCLUDE_UTILS AND LLVM_INCLUDE_TOOLS)
|
||||
add_subdirectory(utils/llvm-locstats)
|
||||
endif()
|
||||
-
|
||||
-process_llvm_pass_plugins()
|
||||
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
|
||||
index fd69786544a..8fbb33a22fd 100644
|
||||
--- llvm/cmake/modules/AddLLVM.cmake
|
||||
+++ llvm/cmake/modules/AddLLVM.cmake
|
||||
@@ -884,53 +884,71 @@ function(add_llvm_pass_plugin name)
|
||||
if (TARGET intrinsics_gen)
|
||||
add_dependencies(obj.${name} intrinsics_gen)
|
||||
endif()
|
||||
- message(STATUS "Registering ${name} as a pass plugin (static build: ${LLVM_${name_upper}_LINK_INTO_TOOLS})")
|
||||
- set_property(GLOBAL APPEND PROPERTY LLVM_COMPILE_EXTENSIONS ${name})
|
||||
+ set_property(GLOBAL APPEND PROPERTY LLVM_STATIC_EXTENSIONS ${name})
|
||||
elseif(NOT ARG_NO_MODULE)
|
||||
add_llvm_library(${name} MODULE ${ARG_UNPARSED_ARGUMENTS})
|
||||
else()
|
||||
add_llvm_library(${name} OBJECT ${ARG_UNPARSED_ARGUMENTS})
|
||||
endif()
|
||||
+ message(STATUS "Registering ${name} as a pass plugin (static build: ${LLVM_${name_upper}_LINK_INTO_TOOLS})")
|
||||
|
||||
endfunction(add_llvm_pass_plugin)
|
||||
|
||||
-# Generate X Macro file for extension handling. It provides a
|
||||
-# HANDLE_EXTENSION(extension_namespace, ExtensionProject) call for each extension
|
||||
-# allowing client code to define HANDLE_EXTENSION to have a specific code be run for
|
||||
-# each extension.
|
||||
+# process_llvm_pass_plugins([GEN_CONFIG])
|
||||
+#
|
||||
+# Correctly set lib dependencies between plugins and tools, based on tools
|
||||
+# registered with the ENABLE_PLUGINS option.
|
||||
+#
|
||||
+# if GEN_CONFIG option is set, also generate X Macro file for extension
|
||||
+# handling. It provides a HANDLE_EXTENSION(extension_namespace, ExtensionProject)
|
||||
+# call for each extension allowing client code to define
|
||||
+# HANDLE_EXTENSION to have a specific code be run for each extension.
|
||||
#
|
||||
-# Also correctly set lib dependencies between plugins and tools.
|
||||
function(process_llvm_pass_plugins)
|
||||
- get_property(LLVM_EXTENSIONS GLOBAL PROPERTY LLVM_COMPILE_EXTENSIONS)
|
||||
- file(WRITE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "//extension handlers\n")
|
||||
- foreach(llvm_extension ${LLVM_EXTENSIONS})
|
||||
- string(TOLOWER ${llvm_extension} llvm_extension_lower)
|
||||
-
|
||||
- string(TOUPPER ${llvm_extension} llvm_extension_upper)
|
||||
- string(SUBSTRING ${llvm_extension_upper} 0 1 llvm_extension_upper_first)
|
||||
- string(SUBSTRING ${llvm_extension_lower} 1 -1 llvm_extension_lower_tail)
|
||||
- string(CONCAT llvm_extension_project ${llvm_extension_upper_first} ${llvm_extension_lower_tail})
|
||||
-
|
||||
- if(LLVM_${llvm_extension_upper}_LINK_INTO_TOOLS)
|
||||
- file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension_project})\n")
|
||||
-
|
||||
- get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS)
|
||||
- foreach(llvm_plugin_target ${llvm_plugin_targets})
|
||||
- set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension})
|
||||
- set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension})
|
||||
- endforeach()
|
||||
- else()
|
||||
- add_llvm_library(${llvm_extension_lower} MODULE obj.${llvm_extension_lower})
|
||||
- endif()
|
||||
+ cmake_parse_arguments(ARG
|
||||
+ "GEN_CONFIG" "" ""
|
||||
+ ${ARGN})
|
||||
|
||||
+ if(ARG_GEN_CONFIG)
|
||||
+ get_property(LLVM_STATIC_EXTENSIONS GLOBAL PROPERTY LLVM_STATIC_EXTENSIONS)
|
||||
+ else()
|
||||
+ include(LLVMConfigExtensions)
|
||||
+ endif()
|
||||
+
|
||||
+ # Add static plugins to each plugin target.
|
||||
+ foreach(llvm_extension ${LLVM_STATIC_EXTENSIONS})
|
||||
+ get_property(llvm_plugin_targets GLOBAL PROPERTY LLVM_PLUGIN_TARGETS)
|
||||
+ foreach(llvm_plugin_target ${llvm_plugin_targets})
|
||||
+ set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY LINK_LIBRARIES ${llvm_extension})
|
||||
+ set_property(TARGET ${llvm_plugin_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${llvm_extension})
|
||||
+ endforeach()
|
||||
endforeach()
|
||||
- file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "#undef HANDLE_EXTENSION\n")
|
||||
|
||||
- # only replace if there's an actual change
|
||||
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
- "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp"
|
||||
- "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
|
||||
- file(REMOVE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp")
|
||||
+ # Eventually generate the extension header, and store config to a cmake file
|
||||
+ # for usage in third-party configuration.
|
||||
+ if(ARG_GEN_CONFIG)
|
||||
+ set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
|
||||
+ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
|
||||
+ file(WRITE
|
||||
+ "${llvm_cmake_builddir}/LLVMConfigExtensions.cmake"
|
||||
+ "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
|
||||
+ install(FILES
|
||||
+ ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
|
||||
+ DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
|
||||
+ COMPONENT cmake-exports)
|
||||
+
|
||||
+ file(WRITE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "//extension handlers\n")
|
||||
+ foreach(llvm_extension ${LLVM_STATIC_EXTENSIONS})
|
||||
+ file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "HANDLE_EXTENSION(${llvm_extension})\n")
|
||||
+ endforeach()
|
||||
+ file(APPEND "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp" "#undef HANDLE_EXTENSION\n")
|
||||
+
|
||||
+ # only replace if there's an actual change
|
||||
+ execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
+ "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp"
|
||||
+ "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
|
||||
+ file(REMOVE "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def.tmp")
|
||||
+ endif()
|
||||
endfunction()
|
||||
|
||||
function(export_executable_symbols target)
|
||||
diff --git a/llvm/cmake/modules/CMakeLists.txt b/llvm/cmake/modules/CMakeLists.txt
|
||||
index 9cf22b436fa..af757d6199a 100644
|
||||
--- llvm/cmake/modules/CMakeLists.txt
|
||||
+++ llvm/cmake/modules/CMakeLists.txt
|
||||
@@ -136,6 +136,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
FILES_MATCHING PATTERN *.cmake
|
||||
PATTERN .svn EXCLUDE
|
||||
PATTERN LLVMConfig.cmake EXCLUDE
|
||||
+ PATTERN LLVMConfigExtensions.cmake EXCLUDE
|
||||
PATTERN LLVMConfigVersion.cmake EXCLUDE
|
||||
PATTERN LLVM-Config.cmake EXCLUDE
|
||||
PATTERN GetHostTriple.cmake EXCLUDE)
|
||||
@@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
|
||||
pname = "llvm";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz";
|
||||
polly_src = fetch "polly" "15sd3dq0w60jsb76pis09lkagj5iy43h9hg4kd9gx5l8cbnsdyrm";
|
||||
src = fetch pname "1wydhbp9kyjp5y0rc627imxgkgqiv3dfirbqil9dgpnbaw5y7n65";
|
||||
polly_src = fetch "polly" "0nm2d8niz47yjsa3r17v3p13b70igkd338ib8191znr1dfw0pyyj";
|
||||
|
||||
unpackPhase = ''
|
||||
unpackFile $src
|
||||
@@ -55,11 +55,6 @@ in stdenv.mkDerivation (rec {
|
||||
|
||||
propagatedBuildInputs = [ ncurses zlib ];
|
||||
|
||||
patches = [
|
||||
# 10.0.0rc3-only
|
||||
./llvm-extension-handling.patch
|
||||
];
|
||||
|
||||
postPatch = optionalString stdenv.isDarwin ''
|
||||
substituteInPlace cmake/modules/AddLLVM.cmake \
|
||||
--replace 'set(_install_name_dir INSTALL_NAME_DIR "@rpath")' "set(_install_name_dir)" \
|
||||
|
||||
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
||||
pname = "openmp";
|
||||
inherit version;
|
||||
|
||||
src = fetch pname "1ymd13gj07x0b0vxziygm0p41vrq6nsgx837jqg9ll6h8ndg57rv";
|
||||
src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi";
|
||||
|
||||
nativeBuildInputs = [ cmake perl ];
|
||||
buildInputs = [ llvm ];
|
||||
|
||||
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
|
||||
ln -s $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
for prog in ${llvm}/bin/*; do
|
||||
ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
|
||||
ln -sf $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
rm -f $out/bin/${prefix}cat
|
||||
|
||||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
|
||||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
|
||||
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-objdump $out/bin/${prefix}objdump
|
||||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
|
||||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
|
||||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
|
||||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
|
||||
|
||||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
|
||||
''
|
||||
|
||||
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
|
||||
ln -s $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
for prog in ${llvm}/bin/*; do
|
||||
ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
|
||||
ln -sf $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
rm -f $out/bin/${prefix}cat
|
||||
|
||||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
|
||||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
|
||||
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-objdump $out/bin/${prefix}objdump
|
||||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
|
||||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
|
||||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
|
||||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
|
||||
|
||||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
|
||||
''
|
||||
|
||||
@@ -42,10 +42,11 @@ let
|
||||
enablePolly = true;
|
||||
};
|
||||
|
||||
llvm-manpages = lowPrio (tools.llvm.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
#llvm-manpages = lowPrio (tools.llvm.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
#});
|
||||
|
||||
clang-manpages = lowPrio (tools.clang-unwrapped.override {
|
||||
enableManpages = true;
|
||||
|
||||
@@ -11,9 +11,19 @@ in runCommand "llvm-binutils-${version}" { preferLocalBuild = true; } ''
|
||||
ln -s $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
for prog in ${llvm}/bin/*; do
|
||||
ln -s $prog $out/bin/${prefix}$(echo $(basename $prog) | sed -e "s|llvm-||")
|
||||
ln -sf $prog $out/bin/${prefix}$(basename $prog)
|
||||
done
|
||||
rm -f $out/bin/${prefix}cat
|
||||
|
||||
ln -s ${llvm}/bin/llvm-ar $out/bin/${prefix}ar
|
||||
ln -s ${llvm}/bin/llvm-as $out/bin/${prefix}as
|
||||
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-objdump $out/bin/${prefix}objdump
|
||||
ln -s ${llvm}/bin/llvm-ranlib $out/bin/${prefix}ranlib
|
||||
ln -s ${llvm}/bin/llvm-readelf $out/bin/${prefix}readelf
|
||||
ln -s ${llvm}/bin/llvm-size $out/bin/${prefix}size
|
||||
ln -s ${llvm}/bin/llvm-strip $out/bin/${prefix}strip
|
||||
|
||||
ln -s ${lld}/bin/lld $out/bin/${prefix}ld
|
||||
''
|
||||
|
||||
@@ -42,10 +42,11 @@ let
|
||||
enablePolly = true;
|
||||
};
|
||||
|
||||
llvm-manpages = lowPrio (tools.llvm.override {
|
||||
enableManpages = true;
|
||||
python3 = pkgs.python3; # don't use python-boot
|
||||
});
|
||||
# disabled until recommonmark supports sphinx 3
|
||||
#llvm-manpages = lowPrio (tools.llvm.override {
|
||||
# enableManpages = true;
|
||||
# python3 = pkgs.python3; # don't use python-boot
|
||||
#});
|
||||
|
||||
clang-manpages = lowPrio (tools.clang-unwrapped.override {
|
||||
enableManpages = true;
|
||||
|
||||
@@ -47,6 +47,7 @@ let
|
||||
|
||||
configureFlags = [
|
||||
"--with-boot-jdk=${openjdk11-bootstrap.home}"
|
||||
"--with-version-pre="
|
||||
"--enable-unlimited-crypto"
|
||||
"--with-native-debug-symbols=internal"
|
||||
"--with-libjpeg=system"
|
||||
|
||||
@@ -55,6 +55,7 @@ let
|
||||
|
||||
configureFlags = [
|
||||
"--with-boot-jdk=${openjdk11.home}"
|
||||
"--with-version-pre="
|
||||
"--enable-unlimited-crypto"
|
||||
"--with-native-debug-symbols=internal"
|
||||
"--with-libjpeg=system"
|
||||
|
||||
@@ -55,6 +55,7 @@ let
|
||||
|
||||
configureFlags = [
|
||||
"--with-boot-jdk=${openjdk13-bootstrap.home}"
|
||||
"--with-version-pre="
|
||||
"--enable-unlimited-crypto"
|
||||
"--with-native-debug-symbols=internal"
|
||||
"--with-libjpeg=system"
|
||||
|
||||
@@ -2,20 +2,12 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "polyml";
|
||||
version = "5.8";
|
||||
version = "5.8.1";
|
||||
|
||||
prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace configure.ac --replace stdc++ c++
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "new-libffi-FFI_SYSV.patch";
|
||||
url = "https://github.com/polyml/polyml/commit/ad32de7f181acaffaba78d5c3d9e5aa6b84a741c.patch";
|
||||
sha256 = "007q3r2h9kfh3c1nv0dyhipmak44q468ab9bwnz4kk4a2dq76n8v";
|
||||
})
|
||||
];
|
||||
|
||||
buildInputs = [ libffi gmp ];
|
||||
|
||||
nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
|
||||
@@ -30,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "polyml";
|
||||
repo = "polyml";
|
||||
rev = "v${version}";
|
||||
sha256 = "1s7q77bivppxa4vd7gxjj5dbh66qnirfxnkzh1ql69rfx1c057n3";
|
||||
sha256 = "0gcx2fjiwsiazlyfhm7zlrd563blc4fy9w2mspib9divbavaxin6";
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
||||
@@ -20,6 +20,11 @@ rustPlatform.buildRustPackage {
|
||||
# a nightly compiler is required unless we use this cheat code.
|
||||
RUSTC_BOOTSTRAP=1;
|
||||
|
||||
# As of rustc 1.45.0, these env vars are required to build rls
|
||||
# (due to https://github.com/rust-lang/rust/pull/72001)
|
||||
CFG_RELEASE = "${rustPlatform.rust.rustc.version}-nightly";
|
||||
CFG_RELEASE_CHANNEL = "nightly";
|
||||
|
||||
# rls-rustc links to rustc_private crates
|
||||
CARGO_BUILD_RUSTFLAGS = if stdenv.isDarwin then "-C rpath" else null;
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wla-dx";
|
||||
version = "9.8";
|
||||
version = "9.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vhelin";
|
||||
repo = "wla-dx";
|
||||
rev = "v${version}-fix";
|
||||
sha256 = "1dsxhy19nif983lr20vxl099giwzgmzqyh7ass705hkphmwagcv6";
|
||||
sha256 = "0sz1vqafl7ii3z1710sk0ilvczv8pb4b6lkmg9pr7hqj3kaxndii";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
Reference in New Issue
Block a user