From f7be88be29da6828ff1eb69688d92ffdece694ec Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Fri, 15 Aug 2003 16:58:18 +0000 Subject: [PATCH] Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): Fri Aug 15 12:34:04 2003 Owen Taylor Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that we link libgtk against X explicitely, since we make GTK+ calls for plug/socket. * gtk/queryimmodules.c: Use USE_LA_MODULES and G_MODULE_SUFFIX here. * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect XShmPutImage with #ifdef USE_SHM. --- ChangeLog | 14 ++++++++++++++ ChangeLog.pre-2-10 | 14 ++++++++++++++ ChangeLog.pre-2-4 | 14 ++++++++++++++ ChangeLog.pre-2-6 | 14 ++++++++++++++ ChangeLog.pre-2-8 | 14 ++++++++++++++ configure.in | 21 +++++++++++++-------- gdk/x11/gdkdrawable-x11.c | 2 ++ gtk/queryimmodules.c | 9 ++++----- 8 files changed, 89 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 61c7dd02ff..64ab86daa6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Fri Aug 15 12:34:04 2003 Owen Taylor + + Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): + + * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that + we link libgtk against X explicitely, since we + make GTK+ calls for plug/socket. + + * gtk/queryimmodules.c: Use USE_LA_MODULES and + G_MODULE_SUFFIX here. + + * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect + XShmPutImage with #ifdef USE_SHM. + Thu Aug 14 18:25:39 2003 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_populate): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 61c7dd02ff..64ab86daa6 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,17 @@ +Fri Aug 15 12:34:04 2003 Owen Taylor + + Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): + + * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that + we link libgtk against X explicitely, since we + make GTK+ calls for plug/socket. + + * gtk/queryimmodules.c: Use USE_LA_MODULES and + G_MODULE_SUFFIX here. + + * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect + XShmPutImage with #ifdef USE_SHM. + Thu Aug 14 18:25:39 2003 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_populate): diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 61c7dd02ff..64ab86daa6 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,17 @@ +Fri Aug 15 12:34:04 2003 Owen Taylor + + Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): + + * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that + we link libgtk against X explicitely, since we + make GTK+ calls for plug/socket. + + * gtk/queryimmodules.c: Use USE_LA_MODULES and + G_MODULE_SUFFIX here. + + * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect + XShmPutImage with #ifdef USE_SHM. + Thu Aug 14 18:25:39 2003 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_populate): diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 61c7dd02ff..64ab86daa6 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,17 @@ +Fri Aug 15 12:34:04 2003 Owen Taylor + + Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): + + * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that + we link libgtk against X explicitely, since we + make GTK+ calls for plug/socket. + + * gtk/queryimmodules.c: Use USE_LA_MODULES and + G_MODULE_SUFFIX here. + + * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect + XShmPutImage with #ifdef USE_SHM. + Thu Aug 14 18:25:39 2003 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_populate): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 61c7dd02ff..64ab86daa6 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,17 @@ +Fri Aug 15 12:34:04 2003 Owen Taylor + + Fixes for X/Cygwin builds of GTK+ (#107623, Masahiro Sakai): + + * configure.in (GDK_DEP_LIBS_FOR_X): Make sure that + we link libgtk against X explicitely, since we + make GTK+ calls for plug/socket. + + * gtk/queryimmodules.c: Use USE_LA_MODULES and + G_MODULE_SUFFIX here. + + * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_image): Protect + XShmPutImage with #ifdef USE_SHM. + Thu Aug 14 18:25:39 2003 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_populate): diff --git a/configure.in b/configure.in index 16cac59a1b..9a973d631e 100644 --- a/configure.in +++ b/configure.in @@ -929,6 +929,7 @@ AC_SUBST(GDK_PIXBUF_DEP_CFLAGS) GDK_EXTRA_LIBS=$GDK_WLIBS GDK_EXTRA_CFLAGS= +GTK_DEP_LIBS_FOR_X= FREETYPE_LIBS= FREETYPE_CFLAGS= @@ -1015,13 +1016,12 @@ if test "x$gdktarget" = "xx11"; then x_cflags="`$PKG_CONFIG --cflags $PANGO_PACKAGES`" x_extra_libs= + AC_PATH_XTRA + if test x$no_x = xyes ; then + AC_MSG_ERROR([X development libraries not found]) + fi + if test $pango_omitted_x_deps = yes ; then - AC_PATH_XTRA - - if test x$no_x = xyes ; then - AC_MSG_ERROR([X development libraries not found]) - fi - x_libs="$X_LIBS -lX11 $X_EXTRA_LIBS" # @@ -1094,6 +1094,11 @@ if test "x$gdktarget" = "xx11"; then # Don't ever pull in the pangoxft libraries for gdk-pixbuf-x11 GDK_PIXBUF_XLIB_EXTRA_LIBS="$x_extra_libs $x_libs" + # GTK+ uses some X calls, so needs to link against X directly + if test $enable_explicit_deps != yes ; then + GTK_DEP_LIBS_FOR_X="$X_LIBS -lX11 $X_EXTRA_LIBS" + fi + # Check for Xinerama extension (Solaris impl or Xfree impl) gtk_save_cppflags="$CPPFLAGS" @@ -1380,7 +1385,7 @@ GDK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PAC # # If we aren't writing explicit dependencies, then don't put the extra libraries we need -# into the pkg-config files +a# into the pkg-config files # if test $enable_explicit_deps != yes ; then GDK_EXTRA_LIBS= @@ -1425,7 +1430,7 @@ fi GTK_PACKAGES=atk GTK_EXTRA_LIBS= GTK_EXTRA_CFLAGS= -GTK_DEP_LIBS="$GDK_EXTRA_LIBS `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" +GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GTK_EXTRA_LIBS $GDK_PIXBUF_EXTRA_LIBS" GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags gthread-2.0 $GDK_PIXBUF_PACKAGES $GDK_PACKAGES $GTK_PACKAGES` $GDK_PIXBUF_EXTRA_CFLAGS $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS" AC_SUBST(GTK_PACKAGES) diff --git a/gdk/x11/gdkdrawable-x11.c b/gdk/x11/gdkdrawable-x11.c index bfd1aedc9b..f15ae453d7 100644 --- a/gdk/x11/gdkdrawable-x11.c +++ b/gdk/x11/gdkdrawable-x11.c @@ -920,11 +920,13 @@ gdk_x11_draw_image (GdkDrawable *drawable, impl = GDK_DRAWABLE_IMPL_X11 (drawable); +#ifdef USE_SHM if (image->type == GDK_IMAGE_SHARED) XShmPutImage (GDK_SCREEN_XDISPLAY (impl->screen), impl->xid, GDK_GC_GET_XGC (gc), GDK_IMAGE_XIMAGE (image), xsrc, ysrc, xdest, ydest, width, height, False); else +#endif XPutImage (GDK_SCREEN_XDISPLAY (impl->screen), impl->xid, GDK_GC_GET_XGC (gc), GDK_IMAGE_XIMAGE (image), xsrc, ysrc, xdest, ydest, width, height); diff --git a/gtk/queryimmodules.c b/gtk/queryimmodules.c index 4ebe50c6f8..ad99169aea 100644 --- a/gtk/queryimmodules.c +++ b/gtk/queryimmodules.c @@ -31,10 +31,10 @@ #include #endif -#ifdef G_OS_WIN32 -#define SOEXT ".dll" +#if USE_LA_MODULES +#define SOEXT ".la" #else -#define SOEXT ".so" +#define SOEXT ("." G_MODULE_SUFFIX) #endif #include @@ -174,8 +174,7 @@ int main (int argc, char **argv) while ((dent = g_dir_read_name (dir))) { - int len = strlen (dent); - if (len > 3 && strcmp (dent + len - strlen (SOEXT), SOEXT) == 0) + if (g_str_has_suffix (dent, SOEXT)) error |= query_module (dirs[i], dent); }