diff --git a/aclocal.m4 b/aclocal.m4 index 2b434a047b5..7ecaee59f34 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -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]]) diff --git a/configure b/configure index 0149a3c6d8e..8cf54d94de2 100755 --- a/configure +++ b/configure @@ -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 diff --git a/configure.ac b/configure.ac index f6c2ab87b68..eeadc297847 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/include/config.h.in b/include/config.h.in index 4b5a30a02e4..9c2327292e6 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -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 diff --git a/scheduler/sysdeps.c b/scheduler/sysdeps.c index ac62ecca101..a996e64ae8b 100644 --- a/scheduler/sysdeps.c +++ b/scheduler/sysdeps.c @@ -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