/*
* Copyright (C) 2009 Pierre-Marc Fournier
- * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
plibc_func = dlsym(RTLD_NEXT, "fork");
if (plibc_func == NULL) {
fprintf(stderr, "libustfork: unable to find \"fork\" symbol\n");
+ errno = ENOSYS;
return -1;
}
}
plibc_func = dlsym(RTLD_NEXT, "clone");
if (plibc_func == NULL) {
fprintf(stderr, "libustfork: unable to find \"clone\" symbol.\n");
+ errno = ENOSYS;
return -1;
}
}
tls, ctid);
} else {
/* Creating a real process, we need to intervene. */
- struct ustfork_clone_info info = { fn: fn, arg: arg };
+ struct ustfork_clone_info info = { fn = fn, arg = arg };
ust_before_fork(&info.sigset);
retval = plibc_func(clone_fn, child_stack, flags, &info,
plibc_func = dlsym(RTLD_NEXT, "rfork");
if (plibc_func == NULL) {
fprintf(stderr, "libustfork: unable to find \"rfork\" symbol\n");
+ errno = ENOSYS;
return -1;
}
}