* Makefile.in: Add some more optimization flags for cygwait, malloc and path. Explain
why -fomit-frame-pointer doesn't work right for passwd.o and path.o. Add -static to link command line for cygwin0.dll. * fhandler_disk_file.cc (fhandler_disk_file::facl): Reorganize slightly to silence compiler warning when compiling with -fstack-check. * net.cc (inet_ntop6): Initialize structure members to silence compiler warning when compiling with -fstack-check. * pseudo-reloc.cc (_pei386_runtime_relocator): Make this a C function. Detect NULL u. * winsup.h (_pei386_runtime_relocator): Declare this as extern "C". * lib/_cygwin_crt0_common.cc (_pei386_runtime_relocator): Call with NULL argument. * signal.cc (sigaction_worker): Eliminate last argument. Let callers report their own strace info. Regparmize. (sigaction): Reflect sigaction_worker changes. (siginterrupt): Ditto. * exceptions.cc: Update copyright.
This commit is contained in:
@@ -26,7 +26,7 @@ details. */
|
||||
|
||||
#define _SA_NORESTART 0x8000
|
||||
|
||||
static int sigaction_worker (int, const struct sigaction *, struct sigaction *, bool, const char *)
|
||||
static int sigaction_worker (int, const struct sigaction *, struct sigaction *, bool)
|
||||
__attribute__ ((regparm (3)));
|
||||
|
||||
#define sigtrapped(func) ((func) != SIG_IGN && (func) != SIG_DFL)
|
||||
@@ -390,9 +390,9 @@ abort (void)
|
||||
do_exit (SIGABRT); /* signal handler didn't exit. Goodbye. */
|
||||
}
|
||||
|
||||
static int
|
||||
static int __attribute__ ((regparm (3)))
|
||||
sigaction_worker (int sig, const struct sigaction *newact,
|
||||
struct sigaction *oldact, bool isinternal, const char *fnname)
|
||||
struct sigaction *oldact, bool isinternal)
|
||||
{
|
||||
int res = -1;
|
||||
myfault efault;
|
||||
@@ -445,14 +445,15 @@ sigaction_worker (int sig, const struct sigaction *newact,
|
||||
}
|
||||
|
||||
out:
|
||||
syscall_printf ("%R = %s(%d, %p, %p)", res, fnname, sig, newact, oldact);
|
||||
return res;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
sigaction (int sig, const struct sigaction *newact, struct sigaction *oldact)
|
||||
{
|
||||
return sigaction_worker (sig, newact, oldact, false, "sigaction");
|
||||
int res = sigaction_worker (sig, newact, oldact, false);
|
||||
syscall_printf ("%R = sigaction(%d, %p, %p)", res, sig, newact, oldact);
|
||||
return res;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
@@ -549,7 +550,9 @@ siginterrupt (int sig, int flag)
|
||||
act.sa_flags &= ~_SA_NORESTART;
|
||||
act.sa_flags |= SA_RESTART;
|
||||
}
|
||||
return sigaction_worker (sig, &act, NULL, true, "siginterrupt");
|
||||
int res = sigaction_worker (sig, &act, NULL, true);
|
||||
syscall_printf ("%R = siginterrupt(%d, %p)", sig, flag);
|
||||
return res;
|
||||
}
|
||||
|
||||
extern "C" int
|
||||
|
Reference in New Issue
Block a user