FreeBSD 3 multithreading final fix. Do not use libc_r, libc is just as
reentrant concerning errno. Revert unneeded FreeBSD hack to loader/signal.c from last patch.
This commit is contained in:
parent
746706b309
commit
f31ec0b08a
|
@ -91,8 +91,6 @@ then
|
|||
fi
|
||||
dnl Check for -lxpg4 for FreeBSD
|
||||
AC_CHECK_LIB(xpg4,setrunelocale)
|
||||
dnl Check for -lc_r for FreeBSD
|
||||
AC_CHECK_LIB(c_r,__error)
|
||||
dnl Check for -ldl
|
||||
AC_CHECK_LIB(dl,dlopen)
|
||||
AC_SUBST(XLIB)
|
||||
|
|
|
@ -246,9 +246,6 @@
|
|||
/* Define if you have the <wctype.h> header file. */
|
||||
#undef HAVE_WCTYPE_H
|
||||
|
||||
/* Define if you have the c_r library (-lc_r). */
|
||||
#undef HAVE_LIBC_R
|
||||
|
||||
/* Define if you have the curses library (-lcurses). */
|
||||
#undef HAVE_LIBCURSES
|
||||
|
||||
|
|
|
@ -45,9 +45,6 @@ void (*ctx_debug_call)(int sig,CONTEXT*ctx)=NULL;
|
|||
BOOL (*fnINSTR_EmulateInstruction)(SIGCONTEXT*ctx)=NULL;
|
||||
|
||||
|
||||
#define SIGACTION sigaction
|
||||
#define SIGALTSTACK sigaltstack
|
||||
|
||||
#ifdef __i386__
|
||||
|
||||
/* i386 specific faults */
|
||||
|
@ -118,19 +115,8 @@ static __inline__ int wine_sigaction( int sig, struct kernel_sigaction *new,
|
|||
errno = -sig;
|
||||
return -1;
|
||||
}
|
||||
#undef SIGACTION
|
||||
#define SIGACTION wine_sigaction
|
||||
#endif /* linux && __i386__ */
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#undef SIGACTION
|
||||
#define SIGACTION _thread_sys_sigaction
|
||||
extern int _thread_sys_sigaction(int sig,const struct sigaction*act,struct sigaction* oact);
|
||||
#undef SIGALTSTACK
|
||||
#define SIGALTSTACK _thread_sys_sigaltstack
|
||||
extern int _thread_sys_sigaltstack(const struct sigaltstack *ss,struct sigaltstack *oss);
|
||||
#endif
|
||||
|
||||
/* Signal stack */
|
||||
|
||||
static char SIGNAL_Stack[16384];
|
||||
|
@ -189,7 +175,7 @@ void SIGNAL_SetHandler( int sig, void (*func)(), int flags )
|
|||
# else
|
||||
sig_act.sa_flags = 0;
|
||||
# endif
|
||||
ret = SIGACTION( sig, &sig_act, NULL );
|
||||
ret = sigaction( sig, &sig_act, NULL );
|
||||
|
||||
#endif /* linux && __i386__ */
|
||||
|
||||
|
@ -315,7 +301,7 @@ BOOL SIGNAL_Init(void)
|
|||
ss.ss_sp = SIGNAL_Stack;
|
||||
ss.ss_size = sizeof(SIGNAL_Stack);
|
||||
ss.ss_flags = 0;
|
||||
if (SIGALTSTACK(&ss, NULL) < 0)
|
||||
if (sigaltstack(&ss, NULL) < 0)
|
||||
{
|
||||
perror("sigaltstack");
|
||||
return FALSE;
|
||||
|
|
Loading…
Reference in New Issue