So I don't have the faintest idea what caused this to start failing but
the issue here is in mir:

    int (*real_open)(char const *path, int flags, mode_t mode);
    *(void **)(&real_open) = dlsym(RTLD_NEXT, "open");

    return (*real_open)(path, flags, mode);

The declaration for real_open here does not match that used by the
open() function call in umockdev, which uses va_args. This means that
the stack frame gcc creates for mir's wrapper does not have space for a
parameter save area which the code gcc generates for umockdev assumes it
has, and so the stack gets stomped on. So if the prototype in mir is
fixed here (also the one for open64) I bet things will start working
again.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1934995

Title:
  Broken on ppc64el (toolchain bug?)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/umockdev/+bug/1934995/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to