explorer: Work around the latest HAL binary compatibility breakage.

This commit is contained in:
Alexandre Julliard 2006-09-26 20:29:15 +02:00
parent 3863939168
commit 9ae4e8d98e
4 changed files with 8 additions and 100 deletions

92
configure vendored
View File

@ -17051,98 +17051,6 @@ cat >>confdefs.h <<_ACEOF
#define SONAME_LIBGL "$ac_cv_lib_soname_GL" #define SONAME_LIBGL "$ac_cv_lib_soname_GL"
_ACEOF _ACEOF
fi
{ echo "$as_me:$LINENO: checking for -ldbus-1 soname" >&5
echo $ECHO_N "checking for -ldbus-1 soname... $ECHO_C" >&6; }
if test "${ac_cv_lib_soname_dbus_1+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_get_soname_save_LIBS=$LIBS
LIBS="-ldbus-1 $LIBS"
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char dbus_error_init ();
int
main ()
{
return dbus_error_init ();
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest$ac_exeext'
{ (case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
(eval "$ac_try") 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
case "$LIBEXT" in
dylib) ac_cv_lib_soname_dbus_1=`otool -L conftest$ac_exeext | grep libdbus-1\\.[0-9A-Za-z.]*dylib | sed -e "s/^.*\/\(libdbus-1\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;;
so) ac_cv_lib_soname_dbus_1=`$ac_cv_path_LDD conftest$ac_exeext | grep libdbus-1\\.so | sed -e "s/^.*\(libdbus-1\.so[^ ]*\).*$/\1/"';2,$d'` ;;
esac
if test "x$ac_cv_lib_soname_dbus_1" = "x"
then
ac_cv_lib_soname_dbus_1="libdbus-1.$LIBEXT"
fi
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_soname_dbus_1="libdbus-1.$LIBEXT"
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_get_soname_save_LIBS
fi
{ echo "$as_me:$LINENO: result: $ac_cv_lib_soname_dbus_1" >&5
echo "${ECHO_T}$ac_cv_lib_soname_dbus_1" >&6; }
if test "${ac_cv_lib_soname_dbus_1+set}" = set; then
cat >>confdefs.h <<_ACEOF
#define SONAME_LIBDBUS_1 "$ac_cv_lib_soname_dbus_1"
_ACEOF
fi fi
{ echo "$as_me:$LINENO: checking for -lhal soname" >&5 { echo "$as_me:$LINENO: checking for -lhal soname" >&5

View File

@ -1137,7 +1137,6 @@ then
WINE_GET_SONAME(Xrandr,XRRQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]) WINE_GET_SONAME(Xrandr,XRRQueryExtension,[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS]) WINE_GET_SONAME(freetype,FT_Init_FreeType,[$X_LIBS])
WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS]) WINE_GET_SONAME(GL,glXQueryExtension,[$X_LIBS $X_EXTRA_LIBS])
WINE_GET_SONAME(dbus-1,dbus_error_init)
WINE_GET_SONAME(hal,libhal_ctx_new) WINE_GET_SONAME(hal,libhal_ctx_new)
WINE_GET_SONAME(txc_dxtn,fetch_2d_texel_rgba_dxt1) WINE_GET_SONAME(txc_dxtn,fetch_2d_texel_rgba_dxt1)
WINE_GET_SONAME(cups,cupsGetDefault) WINE_GET_SONAME(cups,cupsGetDefault)

View File

@ -977,9 +977,6 @@
/* Define to the soname of the libcurses library. */ /* Define to the soname of the libcurses library. */
#undef SONAME_LIBCURSES #undef SONAME_LIBCURSES
/* Define to the soname of the libdbus-1 library. */
#undef SONAME_LIBDBUS_1
/* Define to the soname of the libfontconfig library. */ /* Define to the soname of the libfontconfig library. */
#undef SONAME_LIBFONTCONFIG #undef SONAME_LIBFONTCONFIG

View File

@ -88,13 +88,17 @@ HAL_FUNCS;
static BOOL load_functions(void) static BOOL load_functions(void)
{ {
void *dbus_handle, *hal_handle; void *hal_handle;
char error[128]; char error[128];
if (!(dbus_handle = wine_dlopen(SONAME_LIBDBUS_1, RTLD_NOW, error, sizeof(error)))) goto failed; /* Load libhal with RTLD_GLOBAL so that the dbus symbols are available.
if (!(hal_handle = wine_dlopen(SONAME_LIBHAL, RTLD_NOW, error, sizeof(error)))) goto failed; * We can't load libdbus directly since libhal may have been built against a
* different version but with the same soname. Binary compatibility is for wimps. */
#define DO_FUNC(f) if (!(p_##f = wine_dlsym( dbus_handle, #f, error, sizeof(error) ))) goto failed if (!(hal_handle = wine_dlopen(SONAME_LIBHAL, RTLD_NOW|RTLD_GLOBAL, error, sizeof(error))))
goto failed;
#define DO_FUNC(f) if (!(p_##f = wine_dlsym( RTLD_DEFAULT, #f, error, sizeof(error) ))) goto failed
DBUS_FUNCS; DBUS_FUNCS;
#undef DO_FUNC #undef DO_FUNC