summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/cctools/arm.patch28
-rw-r--r--var/spack/repos/builtin/packages/cctools/package.py1
2 files changed, 29 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/cctools/arm.patch b/var/spack/repos/builtin/packages/cctools/arm.patch
new file mode 100644
index 0000000000..a8b38c4e6c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cctools/arm.patch
@@ -0,0 +1,28 @@
+diff --git a/resource_monitor/src/rmonitor_helper.c b/resource_monitor/src/rmonitor_helper.c
+index 3953da7..3a2a616 100644
+--- a/resource_monitor/src/rmonitor_helper.c
++++ b/resource_monitor/src/rmonitor_helper.c
+@@ -294,7 +294,11 @@ int open(const char *path, int flags, ...)
+ va_end(ap);
+
+ if(!original_open) {
++#ifdef SYS_open
+ return syscall(SYS_open, path, flags, mode);
++#else
++ return syscall(SYS_openat, AT_FDCWD, path, flags, mode);
++#endif
+ }
+
+ debug(D_RMON, "open %s from %d.\n", path, getpid());
+@@ -337,7 +341,11 @@ int open64(const char *path, int flags, ...)
+ va_end(ap);
+
+ if(!original_open64) {
++#ifdef SYS_open
+ return syscall(SYS_open, path, flags | O_LARGEFILE, mode);
++#else
++ return syscall(SYS_openat, AT_FDCWD, path, flags | O_LARGEFILE, mode);
++#endif
+ }
+
+ debug(D_RMON, "open64 %s from %d.\n", path, getpid());
diff --git a/var/spack/repos/builtin/packages/cctools/package.py b/var/spack/repos/builtin/packages/cctools/package.py
index 8dd9e34929..70a04d3521 100644
--- a/var/spack/repos/builtin/packages/cctools/package.py
+++ b/var/spack/repos/builtin/packages/cctools/package.py
@@ -24,6 +24,7 @@ class Cctools(AutotoolsPackage):
depends_on('swig')
# depends_on('xrootd')
depends_on('zlib')
+ patch('arm.patch', when='target=aarch64')
# Generally SYS_foo is defined to __NR_foo (sys/syscall.h) which
# is then defined to a syscall number (asm/unistd_64.h). Certain