[llvm-dev] no member named 'real_shmctl' in namespace '__interception'

Dmitry Golovin via llvm-dev
2017-12-25T14:16:02Z

Trying to build compiler_rt for use on Linux with musl libc, but the build fails
with the following:

    /src/llvm/projects/compiler-rt/lib/msan/msan_interceptors.cc:1446:15: error:
no member named 'real_shmctl' in namespace '__interception'; did
you mean 'real_ioctl'?
        int res = REAL(shmctl)(shmid, shmctl_ipc_stat, &ds);
                  ^~~~~~~~~~~~

/src/llvm/projects/compiler-rt/lib/msan/../interception/interception.h:162:34:
note: expanded from macro 'REAL'
    # define REAL(x) __interception::PTR_TO_REAL(x)
                     ~~~~~~~~~~~~~~~~^

/src/llvm/projects/compiler-rt/lib/msan/../interception/interception.h:161:25:
note: expanded from macro 'PTR_TO_REAL'
    # define PTR_TO_REAL(x) real_##x
                            ^
    <scratch space>:70:1: note: expanded from here
    real_shmctl
    ^

/src/llvm/projects/compiler-rt/lib/msan/../sanitizer_common/sanitizer_common_interceptors.inc:1706:1:
note: 'real_ioctl' declared here
    INTERCEPTOR(int, ioctl, int d, unsigned long request, ...) {
    ^

/src/llvm/projects/compiler-rt/lib/msan/../interception/interception.h:213:3:
note: expanded from macro 'INTERCEPTOR'
      DEFINE_REAL(ret_type, func, __VA_ARGS__) \
      ^

/src/llvm/projects/compiler-rt/lib/msan/../interception/interception.h:194:23:
note: expanded from macro 'DEFINE_REAL'
          FUNC_TYPE(func) PTR_TO_REAL(func); \
                          ^

/src/llvm/projects/compiler-rt/lib/msan/../interception/interception.h:161:25:
note: expanded from macro 'PTR_TO_REAL'
    # define PTR_TO_REAL(x) real_##x
                            ^
    <scratch space>:108:1: note: expanded from here
    real_ioctl
    ^

Could you please suggest why don't I have real shmctl and how do I get this
function?

Regards,
Dmitry