summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Nicholson <dbn.lists@gmail.com>2011-06-14 20:03:06 -0700
committerDan Nicholson <dbn.lists@gmail.com>2011-06-23 05:28:31 -0700
commit163441fe531a77f7fa54bfa59c5ab49c78f44306 (patch)
tree0cfb3e4957df18bdf19e5bb5a30a9d73a5fdefef
parent6259b30111f568ec3d1b32dc6382bce46d8e6ccc (diff)
xfree86: Remove libxorg convenience library to speed up build
libxorg.la served to collect all the Xorg convenience libraries into one massive archive to link into Xorg. This made things easy for symbol resolution, but it tremendously slowed down the build since each change caused libxorg.la to be rebuilt. This is an extremely slow process of extracting all the objects from the sub-libraries and recombining them. Instead, the archives are linked directly into Xorg. The order of the libraries had to be tweaked a bit to make symbols resolve correctly with the lower level code moving later in the link command. As a side effect, since the dtrace objects are now being linked directly into Xorg, we don't need the SPECIAL_DTRACE_OBJECTS hack to add them twice. Signed-off-by: Dan Nicholson <dbn.lists@gmail.com> Tested-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Tested-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--hw/xfree86/Makefile.am26
-rw-r--r--test/Makefile.am1
2 files changed, 10 insertions, 17 deletions
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index 6580e8d8c..e3ef14fc1 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -44,13 +44,12 @@ AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@
INCLUDES = $(XORG_INCS) -I$(srcdir)/parser -I$(top_srcdir)/miext/cw \
-I$(srcdir)/ddc -I$(srcdir)/i2c -I$(srcdir)/modes -I$(srcdir)/ramdac
-noinst_LTLIBRARIES = libxorg.la
-libxorg_la_SOURCES =
-libxorg_la_LIBADD = \
+LOCAL_LIBS = \
+ $(MAIN_LIB) \
$(XSERVER_LIBS) \
loader/libloader.la \
- os-support/libxorgos.la \
common/libcommon.la \
+ os-support/libxorgos.la \
parser/libxf86config_internal.la \
dixmods/libdixmods.la \
modes/libxf86modes.la \
@@ -58,14 +57,14 @@ libxorg_la_LIBADD = \
ddc/libddc.la \
i2c/libi2c.la \
dixmods/libxorgxkb.la \
+ $(XORG_LIBS) \
$(top_builddir)/mi/libmi.la \
- $(top_builddir)/os/libos.la \
- @XORG_LIBS@
-
-libxorg_la_DEPENDENCIES = $(libxorg_la_LIBADD)
-
-Xorg_DEPENDENCIES = libxorg.la
-Xorg_LDADD = $(MAIN_LIB) libxorg.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS)
+ $(top_builddir)/os/libos.la
+Xorg_LDADD = \
+ $(LOCAL_LIBS) \
+ $(XORG_SYS_LIBS) \
+ $(XSERVER_SYS_LIBS)
+Xorg_DEPENDENCIES = $(LOCAL_LIBS)
Xorg_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
@@ -73,11 +72,6 @@ BUILT_SOURCES = xorg.conf.example
DISTCLEANFILES = xorg.conf.example
EXTRA_DIST = xorgconf.cpp
-if SPECIAL_DTRACE_OBJECTS
-# Re-add dtrace object code that gets lost when building static libraries
-Xorg_LDADD += $(XSERVER_LIBS)
-endif
-
if SOLARIS_ASM_INLINE
# Needs to be built before any files are compiled when using Sun compilers
# so in*/out* inline definitions are properly processed.
diff --git a/test/Makefile.am b/test/Makefile.am
index 04c255b68..370e09a18 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -37,7 +37,6 @@ libxservertest_la_LIBADD = \
$(top_builddir)/hw/xfree86/ddc/libddc.la \
$(top_builddir)/hw/xfree86/i2c/libi2c.la \
$(top_builddir)/hw/xfree86/dixmods/libxorgxkb.la \
- $(top_builddir)/hw/xfree86/libxorg.la \
$(top_builddir)/mi/libmi.la \
$(top_builddir)/os/libos.la \
@XORG_LIBS@