Cleaned up the various errno location tests in configure.
Added (h_)errno_location pointers in the library that allow remapping the calls in higher level dlls. Moved X11DRV_CritSection out of sysdeps.c and into x11drv.dll.
This commit is contained in:
parent
4bed8266e0
commit
598412ed6a
|
@ -5218,31 +5218,34 @@ fi
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
wine_cv_libc_reentrant=no
|
||||
echo $ac_n "checking "for reentrant libc: __errno_location"""... $ac_c" 1>&6
|
||||
echo "configure:5224: checking "for reentrant libc: __errno_location"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r__errno_location'+set}'`\" = set"; then
|
||||
|
||||
echo $ac_n "checking for reentrant libc: __errno_location""... $ac_c" 1>&6
|
||||
echo "configure:5227: checking for reentrant libc: __errno_location" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r___errno_location'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then
|
||||
wine_cv_libc_r__errno_location=yes
|
||||
wine_cv_libc_r___errno_location=yes
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5232 "configure"
|
||||
#line 5235 "configure"
|
||||
#include "confdefs.h"
|
||||
int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__errno_location(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}
|
||||
EOF
|
||||
if { (eval echo configure:5239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:5242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
wine_cv_libc_r__errno_location=yes
|
||||
wine_cv_libc_r___errno_location=yes
|
||||
else
|
||||
echo "configure: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
rm -fr conftest*
|
||||
wine_cv_libc_r__errno_location=no
|
||||
wine_cv_libc_r___errno_location=no
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
|
@ -5250,39 +5253,37 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
echo "$ac_t""$wine_cv_libc_r__errno_location" 1>&6
|
||||
if test "$wine_cv_libc_r__errno_location" = "yes"
|
||||
echo "$ac_t""$wine_cv_libc_r___errno_location" 1>&6
|
||||
if test "$wine_cv_libc_r___errno_location" = "yes"
|
||||
then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define HAVE__ERRNO_LOCATION 1
|
||||
EOF
|
||||
|
||||
wine_cv_libc_reentrant=__errno_location
|
||||
fi
|
||||
echo $ac_n "checking "for reentrant libc: __error"""... $ac_c" 1>&6
|
||||
echo "configure:5264: checking "for reentrant libc: __error"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r__error'+set}'`\" = set"; then
|
||||
|
||||
|
||||
echo $ac_n "checking for reentrant libc: __error""... $ac_c" 1>&6
|
||||
echo "configure:5265: checking for reentrant libc: __error" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r___error'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then
|
||||
wine_cv_libc_r__error=yes
|
||||
wine_cv_libc_r___error=yes
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5272 "configure"
|
||||
#line 5273 "configure"
|
||||
#include "confdefs.h"
|
||||
int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__error(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}
|
||||
EOF
|
||||
if { (eval echo configure:5279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:5280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
wine_cv_libc_r__error=yes
|
||||
wine_cv_libc_r___error=yes
|
||||
else
|
||||
echo "configure: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
rm -fr conftest*
|
||||
wine_cv_libc_r__error=no
|
||||
wine_cv_libc_r___error=no
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
|
@ -5290,39 +5291,37 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
echo "$ac_t""$wine_cv_libc_r__error" 1>&6
|
||||
if test "$wine_cv_libc_r__error" = "yes"
|
||||
echo "$ac_t""$wine_cv_libc_r___error" 1>&6
|
||||
if test "$wine_cv_libc_r___error" = "yes"
|
||||
then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define HAVE__ERROR 1
|
||||
EOF
|
||||
|
||||
wine_cv_libc_reentrant=__error
|
||||
fi
|
||||
echo $ac_n "checking "for reentrant libc: ___errno"""... $ac_c" 1>&6
|
||||
echo "configure:5304: checking "for reentrant libc: ___errno"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r___errno'+set}'`\" = set"; then
|
||||
|
||||
|
||||
echo $ac_n "checking for reentrant libc: ___errno""... $ac_c" 1>&6
|
||||
echo "configure:5303: checking for reentrant libc: ___errno" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r____errno'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then
|
||||
wine_cv_libc_r___errno=yes
|
||||
wine_cv_libc_r____errno=yes
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5312 "configure"
|
||||
#line 5311 "configure"
|
||||
#include "confdefs.h"
|
||||
int myerrno = 0;
|
||||
char buf[256];
|
||||
int *___errno(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}
|
||||
EOF
|
||||
if { (eval echo configure:5319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:5318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
wine_cv_libc_r___errno=yes
|
||||
wine_cv_libc_r____errno=yes
|
||||
else
|
||||
echo "configure: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
rm -fr conftest*
|
||||
wine_cv_libc_r___errno=no
|
||||
wine_cv_libc_r____errno=no
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
|
@ -5330,39 +5329,37 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
echo "$ac_t""$wine_cv_libc_r___errno" 1>&6
|
||||
if test "$wine_cv_libc_r___errno" = "yes"
|
||||
echo "$ac_t""$wine_cv_libc_r____errno" 1>&6
|
||||
if test "$wine_cv_libc_r____errno" = "yes"
|
||||
then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define HAVE___ERRNO 1
|
||||
EOF
|
||||
|
||||
wine_cv_libc_reentrant=___errno
|
||||
fi
|
||||
echo $ac_n "checking "for reentrant libc: __thr_errno"""... $ac_c" 1>&6
|
||||
echo "configure:5344: checking "for reentrant libc: __thr_errno"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r__thr_errno'+set}'`\" = set"; then
|
||||
|
||||
|
||||
echo $ac_n "checking for reentrant libc: __thr_errno""... $ac_c" 1>&6
|
||||
echo "configure:5341: checking for reentrant libc: __thr_errno" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_libc_r___thr_errno'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
if test "$cross_compiling" = yes; then
|
||||
wine_cv_libc_r__thr_errno=yes
|
||||
wine_cv_libc_r___thr_errno=yes
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5352 "configure"
|
||||
#line 5349 "configure"
|
||||
#include "confdefs.h"
|
||||
int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__thr_errno(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}
|
||||
EOF
|
||||
if { (eval echo configure:5359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:5356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
wine_cv_libc_r__thr_errno=yes
|
||||
wine_cv_libc_r___thr_errno=yes
|
||||
else
|
||||
echo "configure: failed program was:" >&5
|
||||
cat conftest.$ac_ext >&5
|
||||
rm -fr conftest*
|
||||
wine_cv_libc_r__thr_errno=no
|
||||
wine_cv_libc_r___thr_errno=no
|
||||
fi
|
||||
rm -fr conftest*
|
||||
fi
|
||||
|
@ -5370,19 +5367,17 @@ fi
|
|||
|
||||
fi
|
||||
|
||||
echo "$ac_t""$wine_cv_libc_r__thr_errno" 1>&6
|
||||
if test "$wine_cv_libc_r__thr_errno" = "yes"
|
||||
echo "$ac_t""$wine_cv_libc_r___thr_errno" 1>&6
|
||||
if test "$wine_cv_libc_r___thr_errno" = "yes"
|
||||
then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define HAVE__THR_ERRNO 1
|
||||
EOF
|
||||
|
||||
wine_cv_libc_reentrant=__thr_errno
|
||||
fi
|
||||
if test "$wine_cv_libc_reentrant" = "no"
|
||||
|
||||
|
||||
if test "$wine_cv_libc_reentrant" != "no"
|
||||
then
|
||||
cat >> confdefs.h <<\EOF
|
||||
#define NO_REENTRANT_LIBC 1
|
||||
cat >> confdefs.h <<EOF
|
||||
#define ERRNO_LOCATION $wine_cv_libc_reentrant
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
@ -5391,7 +5386,7 @@ fi
|
|||
if test "$have_x" = "yes" -a "$wine_cv_libc_reentrant" != "no"
|
||||
then
|
||||
echo $ac_n "checking "for reentrant X libraries"""... $ac_c" 1>&6
|
||||
echo "configure:5395: checking "for reentrant X libraries"" >&5
|
||||
echo "configure:5390: checking "for reentrant X libraries"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_x_reentrant'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -5440,19 +5435,19 @@ fi
|
|||
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
|
||||
# for constant arguments. Useless!
|
||||
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
|
||||
echo "configure:5444: checking for working alloca.h" >&5
|
||||
echo "configure:5439: checking for working alloca.h" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5449 "configure"
|
||||
#line 5444 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <alloca.h>
|
||||
int main() {
|
||||
void *p = alloca(2 * sizeof(int));
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_header_alloca_h=yes
|
||||
else
|
||||
|
@ -5473,12 +5468,12 @@ EOF
|
|||
fi
|
||||
|
||||
echo $ac_n "checking for alloca""... $ac_c" 1>&6
|
||||
echo "configure:5477: checking for alloca" >&5
|
||||
echo "configure:5472: checking for alloca" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5482 "configure"
|
||||
#line 5477 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
@ -5506,7 +5501,7 @@ int main() {
|
|||
char *p = (char *) alloca(1);
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
ac_cv_func_alloca_works=yes
|
||||
else
|
||||
|
@ -5538,12 +5533,12 @@ EOF
|
|||
|
||||
|
||||
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
|
||||
echo "configure:5542: checking whether alloca needs Cray hooks" >&5
|
||||
echo "configure:5537: checking whether alloca needs Cray hooks" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5547 "configure"
|
||||
#line 5542 "configure"
|
||||
#include "confdefs.h"
|
||||
#if defined(CRAY) && ! defined(CRAY2)
|
||||
webecray
|
||||
|
@ -5568,12 +5563,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
|
|||
if test $ac_cv_os_cray = yes; then
|
||||
for ac_func in _getb67 GETB67 getb67; do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:5572: checking for $ac_func" >&5
|
||||
echo "configure:5567: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5577 "configure"
|
||||
#line 5572 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -5596,7 +5591,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -5623,7 +5618,7 @@ done
|
|||
fi
|
||||
|
||||
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
|
||||
echo "configure:5627: checking stack direction for C alloca" >&5
|
||||
echo "configure:5622: checking stack direction for C alloca" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -5631,7 +5626,7 @@ else
|
|||
ac_cv_c_stack_direction=0
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5635 "configure"
|
||||
#line 5630 "configure"
|
||||
#include "confdefs.h"
|
||||
find_stack_direction ()
|
||||
{
|
||||
|
@ -5650,7 +5645,7 @@ main ()
|
|||
exit (find_stack_direction() < 0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:5654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:5649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_c_stack_direction=1
|
||||
else
|
||||
|
@ -5708,12 +5703,12 @@ for ac_func in \
|
|||
|
||||
do
|
||||
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
|
||||
echo "configure:5712: checking for $ac_func" >&5
|
||||
echo "configure:5707: checking for $ac_func" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5717 "configure"
|
||||
#line 5712 "configure"
|
||||
#include "confdefs.h"
|
||||
/* System header to define __stub macros and hopefully few prototypes,
|
||||
which can conflict with char $ac_func(); below. */
|
||||
|
@ -5736,7 +5731,7 @@ $ac_func();
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
if { (eval echo configure:5735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
|
||||
rm -rf conftest*
|
||||
eval "ac_cv_func_$ac_func=yes"
|
||||
else
|
||||
|
@ -5818,17 +5813,17 @@ for ac_hdr in \
|
|||
do
|
||||
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
|
||||
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
|
||||
echo "configure:5822: checking for $ac_hdr" >&5
|
||||
echo "configure:5817: checking for $ac_hdr" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5827 "configure"
|
||||
#line 5822 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <$ac_hdr>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:5832: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:5827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -5855,12 +5850,12 @@ fi
|
|||
done
|
||||
|
||||
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
|
||||
echo "configure:5859: checking whether stat file-mode macros are broken" >&5
|
||||
echo "configure:5854: checking whether stat file-mode macros are broken" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5864 "configure"
|
||||
#line 5859 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -5913,12 +5908,12 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking for working const""... $ac_c" 1>&6
|
||||
echo "configure:5917: checking for working const" >&5
|
||||
echo "configure:5912: checking for working const" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5922 "configure"
|
||||
#line 5917 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
|
@ -5967,7 +5962,7 @@ ccp = (char const *const *) p;
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:5971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:5966: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_const=yes
|
||||
else
|
||||
|
@ -5988,21 +5983,21 @@ EOF
|
|||
fi
|
||||
|
||||
echo $ac_n "checking for inline""... $ac_c" 1>&6
|
||||
echo "configure:5992: checking for inline" >&5
|
||||
echo "configure:5987: checking for inline" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
ac_cv_c_inline=no
|
||||
for ac_kw in inline __inline__ __inline; do
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 5999 "configure"
|
||||
#line 5994 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
} int $ac_kw foo() {
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6006: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_inline=$ac_kw; break
|
||||
else
|
||||
|
@ -6028,12 +6023,12 @@ EOF
|
|||
esac
|
||||
|
||||
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
|
||||
echo "configure:6032: checking for ANSI C header files" >&5
|
||||
echo "configure:6027: checking for ANSI C header files" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6037 "configure"
|
||||
#line 6032 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
@ -6041,7 +6036,7 @@ else
|
|||
#include <float.h>
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:6045: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:6040: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
|
||||
if test -z "$ac_err"; then
|
||||
rm -rf conftest*
|
||||
|
@ -6058,7 +6053,7 @@ rm -f conftest*
|
|||
if test $ac_cv_header_stdc = yes; then
|
||||
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6062 "configure"
|
||||
#line 6057 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <string.h>
|
||||
EOF
|
||||
|
@ -6076,7 +6071,7 @@ fi
|
|||
if test $ac_cv_header_stdc = yes; then
|
||||
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6080 "configure"
|
||||
#line 6075 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdlib.h>
|
||||
EOF
|
||||
|
@ -6097,7 +6092,7 @@ if test "$cross_compiling" = yes; then
|
|||
:
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6101 "configure"
|
||||
#line 6096 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <ctype.h>
|
||||
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
||||
|
@ -6108,7 +6103,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
|
|||
exit (0); }
|
||||
|
||||
EOF
|
||||
if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:6107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
:
|
||||
else
|
||||
|
@ -6132,12 +6127,12 @@ EOF
|
|||
fi
|
||||
|
||||
echo $ac_n "checking for size_t""... $ac_c" 1>&6
|
||||
echo "configure:6136: checking for size_t" >&5
|
||||
echo "configure:6131: checking for size_t" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6141 "configure"
|
||||
#line 6136 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#if STDC_HEADERS
|
||||
|
@ -6165,7 +6160,7 @@ EOF
|
|||
fi
|
||||
|
||||
echo $ac_n "checking size of long long""... $ac_c" 1>&6
|
||||
echo "configure:6169: checking size of long long" >&5
|
||||
echo "configure:6164: checking size of long long" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -6173,7 +6168,7 @@ else
|
|||
ac_cv_sizeof_long_long=0
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6177 "configure"
|
||||
#line 6172 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <stdio.h>
|
||||
main()
|
||||
|
@ -6184,7 +6179,7 @@ main()
|
|||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if { (eval echo configure:6188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
if { (eval echo configure:6183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
|
||||
then
|
||||
ac_cv_sizeof_long_long=`cat conftestval`
|
||||
else
|
||||
|
@ -6206,12 +6201,12 @@ EOF
|
|||
|
||||
|
||||
echo $ac_n "checking "whether we can use re-entrant gethostbyname_r Linux style"""... $ac_c" 1>&6
|
||||
echo "configure:6210: checking "whether we can use re-entrant gethostbyname_r Linux style"" >&5
|
||||
echo "configure:6205: checking "whether we can use re-entrant gethostbyname_r Linux style"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_linux_gethostbyname_r_6'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6215 "configure"
|
||||
#line 6210 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <netdb.h>
|
||||
|
@ -6232,7 +6227,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6231: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_linux_gethostbyname_r_6=yes
|
||||
else
|
||||
|
@ -6258,12 +6253,12 @@ EOF
|
|||
if test "$ac_cv_header_linux_joystick_h" = "yes"
|
||||
then
|
||||
echo $ac_n "checking "whether linux/joystick.h uses the Linux 2.2+ API"""... $ac_c" 1>&6
|
||||
echo "configure:6262: checking "whether linux/joystick.h uses the Linux 2.2+ API"" >&5
|
||||
echo "configure:6257: checking "whether linux/joystick.h uses the Linux 2.2+ API"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_linux_joystick_22_api'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6267 "configure"
|
||||
#line 6262 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
|
@ -6278,7 +6273,7 @@ int main() {
|
|||
/*empty*/
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6282: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_linux_joystick_22_api=yes
|
||||
else
|
||||
|
@ -6305,12 +6300,12 @@ fi
|
|||
if test "$ac_cv_header_sys_vfs_h" = "yes"
|
||||
then
|
||||
echo $ac_n "checking "whether sys/vfs.h defines statfs"""... $ac_c" 1>&6
|
||||
echo "configure:6309: checking "whether sys/vfs.h defines statfs"" >&5
|
||||
echo "configure:6304: checking "whether sys/vfs.h defines statfs"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_sys_vfs_has_statfs'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6314 "configure"
|
||||
#line 6309 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -6327,7 +6322,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_sys_vfs_has_statfs=yes
|
||||
else
|
||||
|
@ -6354,12 +6349,12 @@ fi
|
|||
if test "$ac_cv_header_sys_statfs_h" = "yes"
|
||||
then
|
||||
echo $ac_n "checking "whether sys/statfs.h defines statfs"""... $ac_c" 1>&6
|
||||
echo "configure:6358: checking "whether sys/statfs.h defines statfs"" >&5
|
||||
echo "configure:6353: checking "whether sys/statfs.h defines statfs"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_sys_statfs_has_statfs'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6363 "configure"
|
||||
#line 6358 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -6374,7 +6369,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_sys_statfs_has_statfs=yes
|
||||
else
|
||||
|
@ -6401,12 +6396,12 @@ fi
|
|||
if test "$ac_cv_header_sys_mount_h" = "yes"
|
||||
then
|
||||
echo $ac_n "checking "whether sys/mount.h defines statfs"""... $ac_c" 1>&6
|
||||
echo "configure:6405: checking "whether sys/mount.h defines statfs"" >&5
|
||||
echo "configure:6400: checking "whether sys/mount.h defines statfs"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_sys_mount_has_statfs'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6410 "configure"
|
||||
#line 6405 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -6421,7 +6416,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6425: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_sys_mount_has_statfs=yes
|
||||
else
|
||||
|
@ -6447,7 +6442,7 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking "for statfs.f_bfree"""... $ac_c" 1>&6
|
||||
echo "configure:6451: checking "for statfs.f_bfree"" >&5
|
||||
echo "configure:6446: checking "for statfs.f_bfree"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_statfs_bfree'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -6456,7 +6451,7 @@ else
|
|||
wine_cv_statfs_bfree=no
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6460 "configure"
|
||||
#line 6455 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -6483,7 +6478,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6487: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_statfs_bfree=yes
|
||||
else
|
||||
|
@ -6507,7 +6502,7 @@ EOF
|
|||
fi
|
||||
|
||||
echo $ac_n "checking "for statfs.f_bavail"""... $ac_c" 1>&6
|
||||
echo "configure:6511: checking "for statfs.f_bavail"" >&5
|
||||
echo "configure:6506: checking "for statfs.f_bavail"" >&5
|
||||
if eval "test \"`echo '$''{'wine_cv_statfs_bavail'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
|
@ -6516,7 +6511,7 @@ else
|
|||
wine_cv_statfs_bavail=no
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6520 "configure"
|
||||
#line 6515 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
@ -6543,7 +6538,7 @@ int main() {
|
|||
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
wine_cv_statfs_bavail=yes
|
||||
else
|
||||
|
@ -6568,12 +6563,12 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking "for msg_accrights in struct msghdr"""... $ac_c" 1>&6
|
||||
echo "configure:6572: checking "for msg_accrights in struct msghdr"" >&5
|
||||
echo "configure:6567: checking "for msg_accrights in struct msghdr"" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_msg_accrights'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6577 "configure"
|
||||
#line 6572 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
@ -6581,7 +6576,7 @@ int main() {
|
|||
struct msghdr hdr; hdr.msg_accrights=0
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6580: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_msg_accrights="yes"
|
||||
else
|
||||
|
@ -6604,12 +6599,12 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking "for sun_len in struct sockaddr_un"""... $ac_c" 1>&6
|
||||
echo "configure:6608: checking "for sun_len in struct sockaddr_un"" >&5
|
||||
echo "configure:6603: checking "for sun_len in struct sockaddr_un"" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_c_sun_len'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6613 "configure"
|
||||
#line 6608 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
@ -6618,7 +6613,7 @@ int main() {
|
|||
static struct sockaddr_un addr; addr.sun_len = 1
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:6622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:6617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
ac_cv_c_sun_len="yes"
|
||||
else
|
||||
|
@ -6641,12 +6636,12 @@ fi
|
|||
|
||||
|
||||
echo $ac_n "checking "whether we need to define __i386__"""... $ac_c" 1>&6
|
||||
echo "configure:6645: checking "whether we need to define __i386__"" >&5
|
||||
echo "configure:6640: checking "whether we need to define __i386__"" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_cpp_def_i386'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 6650 "configure"
|
||||
#line 6645 "configure"
|
||||
#include "confdefs.h"
|
||||
#if (defined(i386) || defined(__i386)) && !defined(__i386__)
|
||||
yes
|
||||
|
|
85
configure.in
85
configure.in
|
@ -660,74 +660,35 @@ dnl
|
|||
dnl For cross-compiling we blindly assume that libc is reentrant. This is
|
||||
dnl ok since non-reentrant libc is quite rare (mostly old libc5 versions).
|
||||
|
||||
AC_DEFUN(WINE_CHECK_ERRNO,
|
||||
[
|
||||
AC_CACHE_CHECK(for reentrant libc: $1, wine_cv_libc_r_$1,
|
||||
[AC_TRY_RUN([int myerrno = 0;
|
||||
char buf[256];
|
||||
int *$1(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}],
|
||||
wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
|
||||
wine_cv_libc_r_$1=yes )
|
||||
])
|
||||
if test "$wine_cv_libc_r_$1" = "yes"
|
||||
then
|
||||
wine_cv_libc_reentrant=$1
|
||||
fi
|
||||
])
|
||||
|
||||
wine_cv_libc_reentrant=no
|
||||
dnl
|
||||
dnl Linux style errno location
|
||||
dnl
|
||||
AC_CACHE_CHECK("for reentrant libc: __errno_location", wine_cv_libc_r__errno_location,
|
||||
[AC_TRY_RUN([int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__errno_location(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}],
|
||||
wine_cv_libc_r__errno_location=yes, wine_cv_libc_r__errno_location=no,
|
||||
wine_cv_libc_r__errno_location=yes )
|
||||
])
|
||||
if test "$wine_cv_libc_r__errno_location" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE__ERRNO_LOCATION)
|
||||
wine_cv_libc_reentrant=__errno_location
|
||||
fi
|
||||
dnl
|
||||
WINE_CHECK_ERRNO(__errno_location)
|
||||
dnl FreeBSD style errno location
|
||||
dnl
|
||||
AC_CACHE_CHECK("for reentrant libc: __error", wine_cv_libc_r__error,
|
||||
[AC_TRY_RUN([int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__error(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}],
|
||||
wine_cv_libc_r__error=yes, wine_cv_libc_r__error=no,
|
||||
wine_cv_libc_r__error=yes )
|
||||
])
|
||||
if test "$wine_cv_libc_r__error" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE__ERROR)
|
||||
wine_cv_libc_reentrant=__error
|
||||
fi
|
||||
dnl
|
||||
WINE_CHECK_ERRNO(__error)
|
||||
dnl Solaris style errno location
|
||||
dnl
|
||||
AC_CACHE_CHECK("for reentrant libc: ___errno", wine_cv_libc_r___errno,
|
||||
[AC_TRY_RUN([int myerrno = 0;
|
||||
char buf[256];
|
||||
int *___errno(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}],
|
||||
wine_cv_libc_r___errno=yes, wine_cv_libc_r___errno=no,
|
||||
wine_cv_libc_r___errno=yes )
|
||||
])
|
||||
if test "$wine_cv_libc_r___errno" = "yes"
|
||||
then
|
||||
AC_DEFINE(HAVE___ERRNO)
|
||||
wine_cv_libc_reentrant=___errno
|
||||
fi
|
||||
dnl
|
||||
WINE_CHECK_ERRNO(___errno)
|
||||
dnl UnixWare style errno location
|
||||
dnl
|
||||
AC_CACHE_CHECK("for reentrant libc: __thr_errno", wine_cv_libc_r__thr_errno,
|
||||
[AC_TRY_RUN([int myerrno = 0;
|
||||
char buf[256];
|
||||
int *__thr_errno(){return &myerrno;}
|
||||
main(){connect(0,buf,255); exit(!myerrno);}],
|
||||
wine_cv_libc_r__thr_errno=yes, wine_cv_libc_r__thr_errno=no,
|
||||
wine_cv_libc_r__thr_errno=yes )
|
||||
])
|
||||
if test "$wine_cv_libc_r__thr_errno" = "yes"
|
||||
WINE_CHECK_ERRNO(__thr_errno)
|
||||
|
||||
if test "$wine_cv_libc_reentrant" != "no"
|
||||
then
|
||||
AC_DEFINE(HAVE__THR_ERRNO)
|
||||
wine_cv_libc_reentrant=__thr_errno
|
||||
fi
|
||||
if test "$wine_cv_libc_reentrant" = "no"
|
||||
then
|
||||
AC_DEFINE(NO_REENTRANT_LIBC)
|
||||
AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant)
|
||||
fi
|
||||
|
||||
dnl **** Check for reentrant X libraries ****
|
||||
|
|
|
@ -7,6 +7,15 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef NO_REENTRANT_X11
|
||||
/* Get pointers to the static errno and h_errno variables used by Xlib. This
|
||||
must be done before including <errno.h> makes the variables invisible. */
|
||||
extern int errno;
|
||||
static int *perrno = &errno;
|
||||
extern int h_errno;
|
||||
static int *ph_errno = &h_errno;
|
||||
#endif /* NO_REENTRANT_X11 */
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -36,6 +45,8 @@ static XKeyboardState keyboard_state;
|
|||
static void (*old_tsx11_lock)(void);
|
||||
static void (*old_tsx11_unlock)(void);
|
||||
|
||||
static CRITICAL_SECTION X11DRV_CritSection = CRITICAL_SECTION_INIT;
|
||||
|
||||
Display *display;
|
||||
Screen *screen;
|
||||
Visual *visual;
|
||||
|
@ -46,6 +57,35 @@ Window root_window;
|
|||
|
||||
unsigned int X11DRV_server_startticks;
|
||||
|
||||
#ifdef NO_REENTRANT_X11
|
||||
static int* (*old_errno_location)(void);
|
||||
static int* (*old_h_errno_location)(void);
|
||||
|
||||
/***********************************************************************
|
||||
* x11_errno_location
|
||||
*
|
||||
* Get the per-thread errno location.
|
||||
*/
|
||||
static int *x11_errno_location(void)
|
||||
{
|
||||
/* Use static libc errno while running in Xlib. */
|
||||
if (X11DRV_CritSection.OwningThread == GetCurrentThreadId()) return perrno;
|
||||
return old_errno_location();
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* x11_h_errno_location
|
||||
*
|
||||
* Get the per-thread h_errno location.
|
||||
*/
|
||||
static int *x11_h_errno_location(void)
|
||||
{
|
||||
/* Use static libc h_errno while running in Xlib. */
|
||||
if (X11DRV_CritSection.OwningThread == GetCurrentThreadId()) return ph_errno;
|
||||
return old_h_errno_location();
|
||||
}
|
||||
#endif /* NO_REENTRANT_X11 */
|
||||
|
||||
/***********************************************************************
|
||||
* error_handler
|
||||
*/
|
||||
|
@ -268,6 +308,12 @@ static void process_attach(void)
|
|||
setup_options();
|
||||
|
||||
/* setup TSX11 locking */
|
||||
#ifdef NO_REENTRANT_X11
|
||||
old_errno_location = (void *)InterlockedExchange( (PLONG)&wine_errno_location,
|
||||
(LONG)x11_errno_location );
|
||||
old_h_errno_location = (void *)InterlockedExchange( (PLONG)&wine_h_errno_location,
|
||||
(LONG)x11_h_errno_location );
|
||||
#endif /* NO_REENTRANT_X11 */
|
||||
old_tsx11_lock = wine_tsx11_lock;
|
||||
old_tsx11_unlock = wine_tsx11_unlock;
|
||||
wine_tsx11_lock = lock_tsx11;
|
||||
|
@ -359,6 +405,10 @@ static void process_detach(void)
|
|||
/* restore TSX11 locking */
|
||||
wine_tsx11_lock = old_tsx11_lock;
|
||||
wine_tsx11_unlock = old_tsx11_unlock;
|
||||
#ifdef NO_REENTRANT_X11
|
||||
wine_errno_location = old_errno_location;
|
||||
wine_h_errno_location = old_h_errno_location;
|
||||
#endif /* NO_REENTRANT_X11 */
|
||||
|
||||
#if 0 /* FIXME */
|
||||
/* close the display */
|
||||
|
|
|
@ -48,20 +48,8 @@
|
|||
/* Define if X libraries are not reentrant (compiled without -D_REENTRANT). */
|
||||
#undef NO_REENTRANT_X11
|
||||
|
||||
/* Define if libc is not reentrant */
|
||||
#undef NO_REENTRANT_LIBC
|
||||
|
||||
/* Define if libc uses __errno_location for reentrant errno */
|
||||
#undef HAVE__ERRNO_LOCATION
|
||||
|
||||
/* Define if libc uses __error for reentrant errno */
|
||||
#undef HAVE__ERROR
|
||||
|
||||
/* Define if libc uses ___errno for reentrant errno */
|
||||
#undef HAVE___ERRNO
|
||||
|
||||
/* Define if libc uses __thr_errno for reentrant errno */
|
||||
#undef HAVE__THR_ERRNO
|
||||
/* Define to the name of the function returning erro for reentrant libc */
|
||||
#undef ERRNO_LOCATION
|
||||
|
||||
/* Define if all debug messages are to be compiled out */
|
||||
#undef NO_DEBUG_MSGS
|
||||
|
|
|
@ -88,20 +88,8 @@
|
|||
/* Define if X libraries are not reentrant (compiled without -D_REENTRANT). */
|
||||
#undef NO_REENTRANT_X11
|
||||
|
||||
/* Define if libc is not reentrant */
|
||||
#undef NO_REENTRANT_LIBC
|
||||
|
||||
/* Define if libc uses __errno_location for reentrant errno */
|
||||
#undef HAVE__ERRNO_LOCATION
|
||||
|
||||
/* Define if libc uses __error for reentrant errno */
|
||||
#undef HAVE__ERROR
|
||||
|
||||
/* Define if libc uses ___errno for reentrant errno */
|
||||
#undef HAVE___ERRNO
|
||||
|
||||
/* Define if libc uses __thr_errno for reentrant errno */
|
||||
#undef HAVE__THR_ERRNO
|
||||
/* Define to the name of the function returning erro for reentrant libc */
|
||||
#undef ERRNO_LOCATION
|
||||
|
||||
/* Define if all debug messages are to be compiled out */
|
||||
#undef NO_DEBUG_MSGS
|
||||
|
|
|
@ -27,6 +27,10 @@ extern void wine_dbg_add_option( const char *name, unsigned char set, unsigned c
|
|||
|
||||
extern void *wine_anon_mmap( void *start, size_t size, int prot, int flags );
|
||||
|
||||
/* errno support */
|
||||
extern int* (*wine_errno_location)(void);
|
||||
extern int* (*wine_h_errno_location)(void);
|
||||
|
||||
/* LDT management */
|
||||
|
||||
extern void wine_ldt_get_entry( unsigned short sel, LDT_ENTRY *entry );
|
||||
|
|
|
@ -191,10 +191,6 @@ extern BOOL X11DRV_SetupGCForText( struct tagDC *dc );
|
|||
|
||||
extern const int X11DRV_XROPfunction[];
|
||||
|
||||
/* Xlib critical section */
|
||||
|
||||
extern CRITICAL_SECTION X11DRV_CritSection;
|
||||
|
||||
extern void _XInitImageFuncPtrs(XImage *);
|
||||
|
||||
#define XCREATEIMAGE(image,width,height,bpp) \
|
||||
|
|
|
@ -10,6 +10,7 @@ SONAME = libwine.so
|
|||
|
||||
C_SRCS = \
|
||||
debug.c \
|
||||
errno.c \
|
||||
ldt.c \
|
||||
loader.c \
|
||||
port.c
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/*
|
||||
* Wine library reentrant errno support
|
||||
*
|
||||
* Copyright 1998 Alexandre Julliard
|
||||
*/
|
||||
|
||||
/* Get pointers to the static errno and h_errno variables used by Xlib. This
|
||||
must be done before including <errno.h> makes the variables invisible. */
|
||||
static int *default_errno_location(void)
|
||||
{
|
||||
extern int errno;
|
||||
return &errno;
|
||||
}
|
||||
|
||||
static int *default_h_errno_location(void)
|
||||
{
|
||||
extern int h_errno;
|
||||
return &h_errno;
|
||||
}
|
||||
|
||||
int* (*wine_errno_location)(void) = default_errno_location;
|
||||
int* (*wine_h_errno_location)(void) = default_h_errno_location;
|
||||
|
||||
#include "config.h"
|
||||
|
||||
/***********************************************************************
|
||||
* __errno_location/__error/___errno
|
||||
*
|
||||
* Get the per-thread errno location.
|
||||
*/
|
||||
#ifdef ERRNO_LOCATION
|
||||
int *ERRNO_LOCATION(void)
|
||||
{
|
||||
return wine_errno_location();
|
||||
}
|
||||
#endif /* ERRNO_LOCATION */
|
||||
|
||||
/***********************************************************************
|
||||
* __h_errno_location
|
||||
*
|
||||
* Get the per-thread h_errno location.
|
||||
*/
|
||||
int *__h_errno_location(void)
|
||||
{
|
||||
return wine_h_errno_location();
|
||||
}
|
|
@ -6,13 +6,6 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
/* Get pointers to the static errno and h_errno variables used by Xlib. This
|
||||
must be done before including <errno.h> makes the variables invisible. */
|
||||
extern int errno;
|
||||
static int *perrno = &errno;
|
||||
extern int h_errno;
|
||||
static int *ph_errno = &h_errno;
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
@ -36,9 +29,6 @@ static int *ph_errno = &h_errno;
|
|||
|
||||
DEFAULT_DEBUG_CHANNEL(thread);
|
||||
|
||||
/* Xlib critical section (FIXME: does not belong here) */
|
||||
CRITICAL_SECTION X11DRV_CritSection = CRITICAL_SECTION_INIT;
|
||||
|
||||
#ifdef linux
|
||||
# ifdef HAVE_SCHED_H
|
||||
# include <sched.h>
|
||||
|
@ -52,55 +42,6 @@ CRITICAL_SECTION X11DRV_CritSection = CRITICAL_SECTION_INIT;
|
|||
# endif /* CLONE_VM */
|
||||
#endif /* linux */
|
||||
|
||||
static int init_done;
|
||||
|
||||
#ifndef NO_REENTRANT_LIBC
|
||||
|
||||
/***********************************************************************
|
||||
* __errno_location/__error/___errno
|
||||
*
|
||||
* Get the per-thread errno location.
|
||||
*/
|
||||
#ifdef HAVE__ERRNO_LOCATION
|
||||
int *__errno_location()
|
||||
#endif
|
||||
#ifdef HAVE__ERROR
|
||||
int *__error()
|
||||
#endif
|
||||
#ifdef HAVE___ERRNO
|
||||
int *___errno()
|
||||
#endif
|
||||
#ifdef HAVE__THR_ERRNO
|
||||
int *__thr_errno()
|
||||
#endif
|
||||
{
|
||||
if (!init_done) return perrno;
|
||||
#ifdef NO_REENTRANT_X11
|
||||
/* Use static libc errno while running in Xlib. */
|
||||
if (X11DRV_CritSection.OwningThread == GetCurrentThreadId())
|
||||
return perrno;
|
||||
#endif
|
||||
return &NtCurrentTeb()->thread_errno;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* __h_errno_location
|
||||
*
|
||||
* Get the per-thread h_errno location.
|
||||
*/
|
||||
int *__h_errno_location()
|
||||
{
|
||||
if (!init_done) return ph_errno;
|
||||
#ifdef NO_REENTRANT_X11
|
||||
/* Use static libc h_errno while running in Xlib. */
|
||||
if (X11DRV_CritSection.OwningThread == GetCurrentThreadId())
|
||||
return ph_errno;
|
||||
#endif
|
||||
return &NtCurrentTeb()->thread_h_errno;
|
||||
}
|
||||
|
||||
#endif /* NO_REENTRANT_LIBC */
|
||||
|
||||
/***********************************************************************
|
||||
* SYSDEPS_SetCurThread
|
||||
*
|
||||
|
@ -115,8 +56,6 @@ void SYSDEPS_SetCurThread( TEB *teb )
|
|||
/* On non-i386 Solaris, we use the LWP private pointer */
|
||||
_lwp_setprivate( teb );
|
||||
#endif
|
||||
|
||||
init_done = 1; /* now we can use threading routines */
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -150,7 +89,7 @@ static void SYSDEPS_StartThread( TEB *teb )
|
|||
*/
|
||||
int SYSDEPS_SpawnThread( TEB *teb )
|
||||
{
|
||||
#ifndef NO_REENTRANT_LIBC
|
||||
#ifdef ERRNO_LOCATION
|
||||
|
||||
#ifdef linux
|
||||
const int flags = CLONE_VM | CLONE_FS | CLONE_FILES | SIGCHLD;
|
||||
|
@ -192,7 +131,7 @@ int SYSDEPS_SpawnThread( TEB *teb )
|
|||
return 0;
|
||||
#endif
|
||||
|
||||
#endif /* NO_REENTRANT_LIBC */
|
||||
#endif /* ERRNO_LOCATION */
|
||||
|
||||
FIXME("CreateThread: stub\n" );
|
||||
return 0;
|
||||
|
|
|
@ -213,6 +213,26 @@ error:
|
|||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* thread_errno_location
|
||||
*
|
||||
* Get the per-thread errno location.
|
||||
*/
|
||||
static int *thread_errno_location(void)
|
||||
{
|
||||
return &NtCurrentTeb()->thread_errno;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* thread_h_errno_location
|
||||
*
|
||||
* Get the per-thread h_errno location.
|
||||
*/
|
||||
static int *thread_h_errno_location(void)
|
||||
{
|
||||
return &NtCurrentTeb()->thread_h_errno;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* THREAD_Init
|
||||
*
|
||||
|
@ -228,6 +248,8 @@ void THREAD_Init(void)
|
|||
assert( initial_teb.teb_sel );
|
||||
initial_teb.process = ¤t_process;
|
||||
SYSDEPS_SetCurThread( &initial_teb );
|
||||
wine_errno_location = thread_errno_location;
|
||||
wine_h_errno_location = thread_h_errno_location;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue