{"push_id":1134738830,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"8869a0b40b1cf82d264cabc2ff8052e8e35145a2","before":"8d76eea87b29369c2ca70a95f0dc5c63b879a44f","commits":[{"sha":"8869a0b40b1cf82d264cabc2ff8052e8e35145a2","author":{"name":"Michael Karcher","email":"f27a17fc90c00d8c248d8510a1084221738b492b@mkarcher.dialup.fu-berlin.de"},"message":"util-lib: Add sparc64 support for process creation (#3348)\n\nThe current raw_clone function takes two arguments, the cloning flags and\r\na pointer to the stack for the cloned child. The raw cloning without\r\npassing a \"thread main\" function does not make sense if a new stack is\r\nspecified, as it returns in both the parent and the child, which will fail\r\nin the child as the stack is virgin. All uses of raw_clone indeed pass NULL\r\nfor the stack pointer which indicates that both processes should share the\r\nstack address (so you better don't pass CLONE_VM).\r\n\r\nThis commit refactors the code to not require the caller to pass the stack\r\naddress, as NULL is the only sensible option. It also adds the magic code\r\nneeded to make raw_clone work on sparc64, which does not return 0 in %o0\r\nfor the child, but indicates the child process by setting %o1 to non-zero.\r\nThis refactoring is not plain aesthetic, because non-NULL stack addresses\r\nneed to get mangled before being passed to the clone syscall (you have to\r\napply STACK_BIAS), whereas NULL must not be mangled. Implementing the\r\nconditional mangling of the stack address would needlessly complicate the\r\ncode.\r\n\r\nraw_clone is moved to a separete header, because the burden of including\r\nthe assert machinery and sched.h shouldn't be applied to every user of\r\nmissing_syscalls.h","distinct":true,"url":"https://api.github.com/repos/eworm-de/systemd/commits/8869a0b40b1cf82d264cabc2ff8052e8e35145a2"}]}
{"actor":{"display_login":"eworm-de"}}