On 03/27/12 10:16 PM, Yaakov (Cygwin/X) wrote: > From: Yaakov Selkowitz <[email protected]> > > As a PE platform, all symbols in both EXEs and DLLs must be resolved > at link time. As Xorg modules depend on symbols in the Xorg > executable, we must build Xorg before its modules, creating an implib > from the former which is used to link the latter. This implib must > then be installed in order to build the drivers.
I do something similar when building X11 for Solaris packaging, in order to catch ABI issues such as missing symbols at build time instead of run time, and this patch will make it easier for me to do that with all the modules, while now it mostly just checks drivers due to build ordering. > + > +i2c/libi2c.la: > + $(MAKE) -C $(@D) $(@F) > + > +dixmods/libdixmods.la: > + $(MAKE) -C $(@D) $(@F) > + > +dixmods/libxorgxkb.la: > + $(MAKE) -C $(@D) $(@F) Should those be $(MAKE) $(AM_MAKEFLAGS) ... ? That's what most automake calls seem to use. Also -C is a gnu make specific flag, but I think we still require GNU make to build the server due to other issues anyway. > -libfb_la_LDFLAGS = -module -avoid-version > +libfb_la_LDFLAGS = -module -avoid-version $(LD_NO_UNDEFINED_FLAG) > libfb_la_LIBADD = $(top_builddir)/fb/libfb.la > libfb_la_SOURCES = $(top_builddir)/fb/fbcmap_mi.c fbmodule.c > libfb_la_CFLAGS = $(AM_CFLAGS) BTW, in my patch in the Solaris tree, I have: +libfb_la_LIBADD += -lpixman-1 > +if CYGWIN > +libshadow_la_LIBADD += libfb.la > +endif I currently patch that in on Solaris too, so would appreciate finding a more common name than if CYGWIN for this. The current work in progress from our branch to get 1.12 ready to merge in: http://src.opensolaris.org/source/xref/fox/Xorg-1.12-merge/open-src/xserver/xorg/dixmods-deps.patch > diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man > index 72e5713..5d59e8d 100644 > --- a/hw/xfree86/man/xorg.conf.man > +++ b/hw/xfree86/man/xorg.conf.man > @@ -701,7 +701,8 @@ This instructs the server to load the module called > The module name given should be the module's standard name, not the > module file name. > The standard name is case\-sensitive, and does not include the \(lqlib\(rq > -prefix, or the \(lq.a\(rq, \(lq.o\(rq, or \(lq.so\(rq suffixes. > +or \(lqcyg\(rq prefixes, or the \(lq.a\(rq, \(lq.o\(rq, \(lq.dll\(rq, > +or \(lq.so\(rq suffixes. We can probably remove .o & .a from that list now that the old elfloader is gone. -- -Alan Coopersmith- [email protected] Oracle Solaris Engineering - http://blogs.oracle.com/alanc _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
