Skip to content

Commit

Permalink
darwin.top: 108 -> 139
Browse files Browse the repository at this point in the history
  • Loading branch information
reckenrode committed Oct 7, 2024
1 parent bed455b commit fe2d0e4
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ in
mkAppleDerivation {
releaseName = "top";

xcodeHash = "sha256-TuBdZztwCpNwPP0er+7h6FoPV9AbdZAXpzGcqBAuD5Y=";
xcodeHash = "sha256-b7Qv9ks9JmilY9GaEU3/iXoHBNyHRYr4IB0jVf0fYdo=";

patches = [
# Upstream removed aarch64 support from the 137 source release, but the removal can be reverted.
# Otherwise, top will fail to run on aarch64-darwin.
# Based on https://github.com/apple-oss-distributions/top/commit/a989bd5d18246e330e5feadd80958b913351f8ae.diff
./patches/0001-Revert-change-that-dropped-aarch64-support.patch
];

postPatch = ''
# Fix duplicate symbol error. `tsamp` is unused in `main.c`.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
diff --git a/libtop.c b/libtop.c
index 5afeaf3f90..755a584073 100644
--- a/libtop.c
+++ b/libtop.c
@@ -703,11 +703,20 @@
mach_vm_address_t base = 0, size = 0;

switch (type) {
+ case CPU_TYPE_ARM64_32:
+ base = SHARED_REGION_BASE_ARM64_32;
+ size = SHARED_REGION_SIZE_ARM64_32;
+ break;
+
case CPU_TYPE_ARM:
base = SHARED_REGION_BASE_ARM;
size = SHARED_REGION_SIZE_ARM;
break;

+ case CPU_TYPE_ARM64:
+ base = SHARED_REGION_BASE_ARM64;
+ size = SHARED_REGION_SIZE_ARM64;
+ break;

case CPU_TYPE_X86_64:
base = SHARED_REGION_BASE_X86_64;
@@ -816,6 +825,8 @@

#if defined(__arm__)
libtop_p_fw_scan(mach_task_self(), SHARED_REGION_BASE_ARM, SHARED_REGION_SIZE_ARM);
+#elif defined(__arm64__) && !defined(__LP64__)
+ libtop_p_fw_scan(mach_task_self(), SHARED_REGION_BASE_ARM64_32, SHARED_REGION_SIZE_ARM64_32);
#elif defined(__arm64__)
libtop_p_fw_scan(mach_task_self(), SHARED_REGION_BASE_ARM64, SHARED_REGION_SIZE_ARM64);
#elif defined(__x86_64__) || defined(__i386__)
@@ -1329,6 +1340,14 @@
switch (type) {
case CPU_TYPE_ARM:
return SHARED_REGION_SIZE_ARM;
+#if defined(CPU_TYPE_ARM64)
+ case CPU_TYPE_ARM64:
+ return SHARED_REGION_SIZE_ARM64;
+#endif
+#if defined(CPU_TYPE_ARM64_32)
+ case CPU_TYPE_ARM64_32:
+ return SHARED_REGION_SIZE_ARM64_32;
+#endif
case CPU_TYPE_POWERPC:
return SHARED_REGION_SIZE_PPC;
case CPU_TYPE_POWERPC64:
diff --git a/pid.c b/pid.c
index 0d9a77460a..54d532d51b 100644
--- a/pid.c
+++ b/pid.c
@@ -54,8 +54,13 @@
proc_is_foreign = true;
#endif
break;
+#if defined(CPU_TYPE_ARM64)
+ case CPU_TYPE_ARM64:
+ proc_is_64 = true;
+ // FALLTHROUGH
+#endif
case CPU_TYPE_ARM:
-#if !defined(__arm__)
+#if !defined(__arm__) && !defined(__arm64__)
proc_is_foreign = true;
#endif
break;
4 changes: 2 additions & 2 deletions pkgs/os-specific/darwin/apple-source-releases/versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"version": "190.0.1"
},
"top": {
"hash": "sha256-jbz64ODogtpNyLpXGSZj1jCBdFPVXcVcBkL1vc7g5qQ=",
"version": "108"
"hash": "sha256-jz7udjXO5INtMHTDDdTUYAc4Tpy8v9nW0401LAHiPpA=",
"version": "139"
}
}

0 comments on commit fe2d0e4

Please sign in to comment.