Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

memory_patcher_component.c: syscall() deprecated on MacOS #5671

Closed
jsquyres opened this issue Sep 11, 2018 · 0 comments
Closed

memory_patcher_component.c: syscall() deprecated on MacOS #5671

jsquyres opened this issue Sep 11, 2018 · 0 comments

Comments

@jsquyres
Copy link
Member

I note that when compiling on MacOS 10.13/High Sierra, I get the following compilation warnings from patcher.

This is clearly not a problem yet (as of Sep 2018), but it will eventually bite us if MacOS actually removes syscall(). Someone else noted this same issue about 2 years ago (in MacOS 10.12/Sierra): hbowden/nextgen#11

  CC       memory_patcher_component.lo
memory_patcher_component.c:166:18: warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Wdeprecated-declarations]
        result = memory_patcher_syscall(SYS_munmap, start, length);
                 ^
memory_patcher_component.c:98:32: note: expanded from macro 'memory_patcher_syscall'
#define memory_patcher_syscall syscall
                               ^
/usr/include/unistd.h:745:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
memory_patcher_component.c:268:18: warning: 'syscall' is deprecated: first deprecated in macOS 10.12 - syscall(2) is unsupported; please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost(). [-Wdeprecated-declarations]
        result = memory_patcher_syscall(SYS_madvise, start, length, advice);
                 ^
memory_patcher_component.c:98:32: note: expanded from macro 'memory_patcher_syscall'
#define memory_patcher_syscall syscall
                               ^
/usr/include/unistd.h:745:6: note: 'syscall' has been explicitly marked deprecated here
int      syscall(int, ...);
         ^
2 warnings generated.
@jsquyres jsquyres self-assigned this Sep 14, 2018
bwbarrett added a commit to bwbarrett/ompi that referenced this issue Sep 29, 2018
Open MPI doesn't support any transports on MacOS which require
memory manager hooks.  The memory patcher component uses the
syscall interface, which has been deprecated in recent versions
of MacOS.  Since we don't need it and it emits warnings about
deprecation, disable the memory patcher component on MacOS.

Fixes open-mpi#5671

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
jsquyres pushed a commit to jsquyres/ompi that referenced this issue Nov 25, 2020
Open MPI doesn't support any transports on MacOS which require
memory manager hooks.  The memory patcher component uses the
syscall interface, which has been deprecated in recent versions
of MacOS.  Since we don't need it and it emits warnings about
deprecation, disable the memory patcher component on MacOS.

Fixes open-mpi#5671

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
(cherry picked from commit 19e16d5)
jsquyres pushed a commit to jsquyres/ompi that referenced this issue Nov 26, 2020
Open MPI doesn't support any transports on MacOS which require
memory manager hooks.  The memory patcher component uses the
syscall interface, which has been deprecated in recent versions
of MacOS.  Since we don't need it and it emits warnings about
deprecation, disable the memory patcher component on MacOS.

Fixes open-mpi#5671

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
(cherry picked from commit 19e16d5)
(cherry picked from commit 8324b4e)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant