Merge pull request #195013 from rrbutani/fix/lldb-x86-darwin-llvm-13-and-14
This commit is contained in:
commit
95120325a1
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
--- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32,
|
||||||
|
len = sizeof(is_64_bit_capable);
|
||||||
|
::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0);
|
||||||
|
|
||||||
|
- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
|
||||||
|
+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers
|
||||||
|
// The arm64e architecture is a preview. Pretend the host architecture
|
||||||
|
// is arm64.
|
||||||
|
cpusubtype = CPU_SUBTYPE_ARM64_ALL;
|
@ -20,6 +20,7 @@
|
|||||||
, Cocoa
|
, Cocoa
|
||||||
, lit
|
, lit
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
|
, darwin
|
||||||
, enableManpages ? false
|
, enableManpages ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -38,7 +39,22 @@ stdenv.mkDerivation (rec {
|
|||||||
substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
|
substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
|
||||||
'')
|
'')
|
||||||
./gnu-install-dirs.patch
|
./gnu-install-dirs.patch
|
||||||
];
|
]
|
||||||
|
# This is a stopgap solution if/until the macOS SDK used for x86_64 is
|
||||||
|
# updated.
|
||||||
|
#
|
||||||
|
# The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h`
|
||||||
|
# header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use
|
||||||
|
# of this preprocessor symbol in `lldb` with its expansion.
|
||||||
|
#
|
||||||
|
# See here for some context:
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
|
||||||
|
++ lib.optional (
|
||||||
|
stdenv.targetPlatform.isDarwin
|
||||||
|
&& !stdenv.targetPlatform.isAarch64
|
||||||
|
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
|
||||||
|
) ./cpu_subtype_arm64e_replacement.patch;
|
||||||
|
|
||||||
|
|
||||||
outputs = [ "out" "lib" "dev" ];
|
outputs = [ "out" "lib" "dev" ];
|
||||||
|
|
||||||
@ -102,7 +118,6 @@ stdenv.mkDerivation (rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = llvm_meta // {
|
meta = llvm_meta // {
|
||||||
broken = stdenv.isDarwin;
|
|
||||||
homepage = "https://lldb.llvm.org/";
|
homepage = "https://lldb.llvm.org/";
|
||||||
description = "A next-generation high-performance debugger";
|
description = "A next-generation high-performance debugger";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
--- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
|
||||||
|
@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32,
|
||||||
|
len = sizeof(is_64_bit_capable);
|
||||||
|
::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0);
|
||||||
|
|
||||||
|
- if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
|
||||||
|
+ if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers
|
||||||
|
// The arm64e architecture is a preview. Pretend the host architecture
|
||||||
|
// is arm64.
|
||||||
|
cpusubtype = CPU_SUBTYPE_ARM64_ALL;
|
@ -20,6 +20,7 @@
|
|||||||
, Cocoa
|
, Cocoa
|
||||||
, lit
|
, lit
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
|
, darwin
|
||||||
, enableManpages ? false
|
, enableManpages ? false
|
||||||
, lua5_3
|
, lua5_3
|
||||||
}:
|
}:
|
||||||
@ -44,7 +45,21 @@ stdenv.mkDerivation (rec {
|
|||||||
substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
|
substitute '${./resource-dir.patch}' "$out" --subst-var clangLibDir
|
||||||
'')
|
'')
|
||||||
./gnu-install-dirs.patch
|
./gnu-install-dirs.patch
|
||||||
];
|
]
|
||||||
|
# This is a stopgap solution if/until the macOS SDK used for x86_64 is
|
||||||
|
# updated.
|
||||||
|
#
|
||||||
|
# The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h`
|
||||||
|
# header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use
|
||||||
|
# of this preprocessor symbol in `lldb` with its expansion.
|
||||||
|
#
|
||||||
|
# See here for some context:
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
|
||||||
|
++ lib.optional (
|
||||||
|
stdenv.targetPlatform.isDarwin
|
||||||
|
&& !stdenv.targetPlatform.isAarch64
|
||||||
|
&& (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
|
||||||
|
) ./cpu_subtype_arm64e_replacement.patch;
|
||||||
|
|
||||||
outputs = [ "out" "lib" "dev" ];
|
outputs = [ "out" "lib" "dev" ];
|
||||||
|
|
||||||
@ -116,7 +131,6 @@ stdenv.mkDerivation (rec {
|
|||||||
larger LLVM Project, such as the Clang expression parser and LLVM
|
larger LLVM Project, such as the Clang expression parser and LLVM
|
||||||
disassembler.
|
disassembler.
|
||||||
'';
|
'';
|
||||||
broken = stdenv.isDarwin; # error: use of undeclared identifier 'CPU_SUBTYPE_ARM64E'
|
|
||||||
};
|
};
|
||||||
} // lib.optionalAttrs enableManpages {
|
} // lib.optionalAttrs enableManpages {
|
||||||
pname = "lldb-manpages";
|
pname = "lldb-manpages";
|
||||||
|
Loading…
Reference in New Issue
Block a user