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.
oldstable
Marcus Meissner 1999-04-15 16:38:38 +00:00 committed by Alexandre Julliard
parent 746706b309
commit f31ec0b08a
4 changed files with 145 additions and 211 deletions

333
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -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)

View File

@ -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

View File

@ -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;