Don't bother checking for the errno function, simply define all of

them.
This commit is contained in:
Alexandre Julliard 2003-04-02 23:27:46 +00:00
parent 4bddbe8b19
commit 3200c02b9c
5 changed files with 6 additions and 383 deletions

16
aclocal.m4 vendored
View File

@ -50,22 +50,6 @@ then AC_DEFINE_UNQUOTED(AS_TR_CPP(SONAME_LIB$1),"$ac_cv_lib_soname_$1",
[Define to the soname of the lib$1 library.])dnl
fi])
dnl **** Check for reentrant libc ****
dnl
dnl Usage: WINE_CHECK_ERRNO(errno-name,[action-if-yes,[action-if-no]])
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).
dnl
AC_DEFUN([WINE_CHECK_ERRNO],
[AC_CACHE_CHECK([for reentrant libc: $1],[wine_cv_libc_r_$1],
[AC_TRY_RUN([int myerrno = 0;
int *$1(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}],
wine_cv_libc_r_$1=yes, wine_cv_libc_r_$1=no,
wine_cv_libc_r_$1=yes)])
AS_IF([test "$wine_cv_libc_r_$1" = "yes"],[$2],[$3])])
dnl **** Link C code with an assembly file ****
dnl
dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]])

298
configure vendored
View File

@ -12581,297 +12581,6 @@ fi
wine_cv_libc_reentrant=no
echo "$as_me:$LINENO: checking for reentrant libc: __errno_location" >&5
echo $ECHO_N "checking for reentrant libc: __errno_location... $ECHO_C" >&6
if test "${wine_cv_libc_r___errno_location+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
wine_cv_libc_r___errno_location=yes
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int myerrno = 0;
int *__errno_location(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
wine_cv_libc_r___errno_location=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
wine_cv_libc_r___errno_location=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_libc_r___errno_location" >&5
echo "${ECHO_T}$wine_cv_libc_r___errno_location" >&6
if test "$wine_cv_libc_r___errno_location" = "yes"; then
wine_cv_libc_reentrant=__errno_location
else
echo "$as_me:$LINENO: checking for reentrant libc: __error" >&5
echo $ECHO_N "checking for reentrant libc: __error... $ECHO_C" >&6
if test "${wine_cv_libc_r___error+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
wine_cv_libc_r___error=yes
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int myerrno = 0;
int *__error(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
wine_cv_libc_r___error=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
wine_cv_libc_r___error=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_libc_r___error" >&5
echo "${ECHO_T}$wine_cv_libc_r___error" >&6
if test "$wine_cv_libc_r___error" = "yes"; then
wine_cv_libc_reentrant=__error
else
echo "$as_me:$LINENO: checking for reentrant libc: ___errno" >&5
echo $ECHO_N "checking for reentrant libc: ___errno... $ECHO_C" >&6
if test "${wine_cv_libc_r____errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
wine_cv_libc_r____errno=yes
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int myerrno = 0;
int *___errno(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
wine_cv_libc_r____errno=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
wine_cv_libc_r____errno=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_libc_r____errno" >&5
echo "${ECHO_T}$wine_cv_libc_r____errno" >&6
if test "$wine_cv_libc_r____errno" = "yes"; then
wine_cv_libc_reentrant=___errno
else
echo "$as_me:$LINENO: checking for reentrant libc: __thr_errno" >&5
echo $ECHO_N "checking for reentrant libc: __thr_errno... $ECHO_C" >&6
if test "${wine_cv_libc_r___thr_errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
wine_cv_libc_r___thr_errno=yes
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int myerrno = 0;
int *__thr_errno(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
wine_cv_libc_r___thr_errno=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
wine_cv_libc_r___thr_errno=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_libc_r___thr_errno" >&5
echo "${ECHO_T}$wine_cv_libc_r___thr_errno" >&6
if test "$wine_cv_libc_r___thr_errno" = "yes"; then
wine_cv_libc_reentrant=__thr_errno
else
echo "$as_me:$LINENO: checking for reentrant libc: __errno" >&5
echo $ECHO_N "checking for reentrant libc: __errno... $ECHO_C" >&6
if test "${wine_cv_libc_r___errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
wine_cv_libc_r___errno=yes
else
cat >conftest.$ac_ext <<_ACEOF
#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int myerrno = 0;
int *__errno(){return &myerrno;}
main(){close(333); close(333); exit(!myerrno);}
_ACEOF
rm -f conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
wine_cv_libc_r___errno=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
wine_cv_libc_r___errno=no
fi
rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_libc_r___errno" >&5
echo "${ECHO_T}$wine_cv_libc_r___errno" >&6
if test "$wine_cv_libc_r___errno" = "yes"; then
wine_cv_libc_reentrant=__errno
fi
fi
fi
fi
fi
if test "$wine_cv_libc_reentrant" != "no"
then
cat >>confdefs.h <<_ACEOF
#define ERRNO_LOCATION $wine_cv_libc_reentrant
_ACEOF
fi
if test "$have_x" = "yes"
then
echo "$as_me:$LINENO: checking for reentrant X libraries" >&5
echo $ECHO_N "checking for reentrant X libraries... $ECHO_C" >&6
if test "${wine_cv_x_reentrant+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
libX11_check=none
for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
if test -r $dir/libX11.so; then
libX11_check="-D $dir/libX11.so"
break
fi
if test -r $dir/libX11.a; then
libX11_check="$dir/libX11.a"
break
fi
done
if test "$libX11_check" != "none"; then
if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
then
wine_cv_x_reentrant=yes
else
wine_cv_x_reentrant=no
fi
else
wine_cv_x_reentrant=unknown
fi
fi
echo "$as_me:$LINENO: result: $wine_cv_x_reentrant" >&5
echo "${ECHO_T}$wine_cv_x_reentrant" >&6
fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo "$as_me:$LINENO: checking for working alloca.h" >&5
@ -17740,13 +17449,6 @@ then
echo "*** reentrant version of libc."
fi
if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
then
echo
echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
echo "*** applications won't work properly. You should upgrade your X11 library."
fi
if test "$wine_cv_opengl_version_OK" = "no"
then
echo

View File

@ -886,58 +886,6 @@ then
fi
dnl **** Check for reentrant libc ****
wine_cv_libc_reentrant=no
dnl Linux style errno location
WINE_CHECK_ERRNO([__errno_location], [wine_cv_libc_reentrant=__errno_location],
dnl FreeBSD style errno location
WINE_CHECK_ERRNO([__error], [wine_cv_libc_reentrant=__error],
dnl Solaris style errno location
WINE_CHECK_ERRNO([___errno], [wine_cv_libc_reentrant=___errno],
dnl UnixWare style errno location
WINE_CHECK_ERRNO([__thr_errno], [wine_cv_libc_reentrant=__thr_errno],
dnl NetBSD style errno location
WINE_CHECK_ERRNO([__errno], [wine_cv_libc_reentrant=__errno])
))))
if test "$wine_cv_libc_reentrant" != "no"
then
AC_DEFINE_UNQUOTED(ERRNO_LOCATION,$wine_cv_libc_reentrant,
[Define to the name of the function returning errno for reentrant libc])
fi
dnl **** Check for reentrant X libraries ****
dnl
dnl This may fail to determine whether X libraries are reentrant if
dnl AC_PATH_XTRA does not set x_libraries.
if test "$have_x" = "yes"
then
AC_CACHE_CHECK( [for reentrant X libraries], wine_cv_x_reentrant,
[libX11_check=none
for dir in "$x_libraries" /usr/lib /usr/local/lib /lib; do
if test -r $dir/libX11.so; then
libX11_check="-D $dir/libX11.so"
break
fi
if test -r $dir/libX11.a; then
libX11_check="$dir/libX11.a"
break
fi
done
if test "$libX11_check" != "none"; then
if nm $libX11_check | grep $wine_cv_libc_reentrant >/dev/null 2>&1
then
wine_cv_x_reentrant=yes
else
wine_cv_x_reentrant=no
fi
else
wine_cv_x_reentrant=unknown
fi])
fi
dnl **** Check for functions ****
AC_FUNC_ALLOCA()
@ -1590,13 +1538,6 @@ then
echo "*** reentrant version of libc."
fi
if test "$have_x" = "yes" -a "$wine_cv_x_reentrant" != "yes"
then
echo
echo "*** Warning: non-reentrant X11 library detected. Multi-threaded"
echo "*** applications won't work properly. You should upgrade your X11 library."
fi
if test "$wine_cv_opengl_version_OK" = "no"
then
echo

View File

@ -10,9 +10,6 @@
/* Define to 1 if using `alloca.c'. */
#undef C_ALLOCA
/* Define to the name of the function returning errno for reentrant libc */
#undef ERRNO_LOCATION
/* Define to 1 if you have `alloca', as a function or macro. */
#undef HAVE_ALLOCA

View File

@ -367,16 +367,15 @@ static int* (*errno_location_ptr)(void) = default_errno_location;
static int* (*h_errno_location_ptr)(void) = default_h_errno_location;
/***********************************************************************
* __errno_location/__error/___errno
* __errno_location/__error/__errno/___errno/__thr_errno
*
* Get the per-thread errno location.
*/
#ifdef ERRNO_LOCATION
int *ERRNO_LOCATION(void)
{
return errno_location_ptr();
}
#endif /* ERRNO_LOCATION */
int *__errno_location(void) { return errno_location_ptr(); } /* Linux */
int *__error(void) { return errno_location_ptr(); } /* FreeBSD */
int *__errno(void) { return errno_location_ptr(); } /* NetBSD */
int *___errno(void) { return errno_location_ptr(); } /* Solaris */
int *__thr_errno(void) { return errno_location_ptr(); } /* UnixWare */
/***********************************************************************
* __h_errno_location