Bug 4313

Summary: dbus build fixes for Cygwin
Product: dbus Reporter: Yaakov Selkowitz <yselkowi>
Component: coreAssignee: Havoc Pennington <hp>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high    
Version: unspecified   
Hardware: x86 (IA32)   
OS: other   
URL: ftp://sunsite.dk/projects/cygwinports/release/freedesktop/dbus/
Whiteboard:
i915 platform: i915 features:
Attachments: dbus-0.36.1 Cygwin build fixes

Description Yaakov Selkowitz 2005-08-30 16:45:02 UTC
I'm attaching a patch which fixes some build issues on Cygwin.

* configure.in:
  don't make qt support dependent on libkdecore;

* dbus/Makefile.am, glib/Makefile.am, qt/Makefile.am:
  add -no-undefined to libdbus*_1_la_LDFLAGS;

* gcj/org/freedesktop/dbus/Makefile.am:
  add $(INCLUDES) to the .java.lo rule;
  add -no-undefined to libdbus_gcj_1_la_LDFLAGS;
  use gcj in libdbus_gcj_1_la_LINK;

* tools/Makefile.am:
  add $(EXEEXT) to the special make rules, so that dependencies are built correctly;

One outstanding issue is the python bindings; if there's a way to properly
define PYTHON_LIBS, then it needs to be added to LIBADD and -no-undefined to
LDFLAGS in python/Makefile.am.

Binaries are available at the indicated URL; a screenshot of dbus-viewer running
on Cygwin is at:

http://cygwinports.dotsrc.org/screenshots/dbus-viewer.jpg

Thanks for your work on D-BUS!
Comment 1 Yaakov Selkowitz 2005-08-30 16:45:45 UTC
Created attachment 3128 [details] [review]
dbus-0.36.1 Cygwin build fixes
Comment 2 John (J5) Palmieri 2005-09-06 13:13:58 UTC
Patch should be in CVS and the next release.  Python modules don't link against
a lib, it gets all of it symbols from the interpreter.
Comment 3 Yaakov Selkowitz 2005-09-06 14:04:08 UTC
On Cygwin (and MinGW), all shared libraries (including modules) must have all
symbols resolved at link time.  In the case of Python modules,
'-lpython$(PYTHON_VERSION)' must be included in the link (and due to our python
package layout, '-L/usr/lib/python$(PYTHON_VERSION)/config' needs to be
prepended, but I know that, for example, in Gentoo libpython2.4.so is in /usr/lib).

This problem with linking autotool-based python modules is common, as it is not
handled by python.m4.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.