Browse Source

mesa: build xmlconfig to a separate static library

As we use the file from both the dri modules and loader, we end up with
multiple definition of the symbols provided in our gallium dri  modules.
Additionally we compile the file twice.

Resolve both issues, effectively enabling the build on toolchains which
don't support -Wl,--allow-multiple-definition.

v2: [Emil Velikov]
 - Fix the Scons/Android build.
 - Resolve libgbm build issues (bring back the missing -lm)

Cc: Julien Isorce <j.isorce@samsung.com>
Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90310
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90905
Acked-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
tags/11.0-branchpoint
Erik Faye-Lund 10 years ago
parent
commit
634f200256

+ 0
- 6
src/gallium/targets/dri/Makefile.am View File

@@ -53,12 +53,6 @@ gallium_dri_la_LIBADD = \
$(LIBDRM_LIBS) \
$(GALLIUM_COMMON_LIB_DEPS)

# XXX: Temporary allow duplicated symbols, as the loader pulls in xmlconfig.c
# which already provides driParse* and driQuery* amongst others.
# Remove this hack as we come up with a cleaner solution.
gallium_dri_la_LDFLAGS += \
-Wl,--allow-multiple-definition

EXTRA_gallium_dri_la_DEPENDENCIES = \
dri.sym \
$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn

+ 3
- 7
src/loader/Makefile.am View File

@@ -41,15 +41,11 @@ libloader_la_CPPFLAGS += \
-I$(top_builddir)/src/mesa/drivers/dri/common/ \
-I$(top_srcdir)/src/mesa/ \
-I$(top_srcdir)/src/mapi/ \
-DUSE_DRICONF \
$(EXPAT_CFLAGS)
-DUSE_DRICONF

libloader_la_SOURCES += \
$(top_srcdir)/src/mesa/drivers/dri/common/xmlconfig.c
libloader_la_LIBADD += \
$(top_builddir)/src/mesa/drivers/dri/common/libxmlconfig.la

libloader_la_LIBADD += \
-lm \
$(EXPAT_LIBS)
endif

if !HAVE_LIBDRM

+ 1
- 0
src/mesa/drivers/dri/Makefile.am View File

@@ -60,6 +60,7 @@ mesa_dri_drivers_la_LIBADD = \
../../libmesa.la \
common/libmegadriver_stub.la \
common/libdricommon.la \
common/libxmlconfig.la \
$(MEGADRIVERS_DEPS) \
$(DRI_LIB_DEPS) \
$()

+ 3
- 1
src/mesa/drivers/dri/common/Android.mk View File

@@ -50,7 +50,9 @@ else
LOCAL_SHARED_LIBRARIES := libdrm
endif

LOCAL_SRC_FILES := $(DRI_COMMON_FILES)
LOCAL_SRC_FILES := \
$(DRI_COMMON_FILES) \
$(XMLCONFIG_FILES)

MESA_DRI_OPTIONS_H := $(intermediates)/xmlpool/options.h
LOCAL_GENERATED_SOURCES := $(MESA_DRI_OPTIONS_H)

+ 5
- 1
src/mesa/drivers/dri/common/Makefile.am View File

@@ -33,16 +33,20 @@ AM_CFLAGS = \
-I$(top_srcdir)/src/gallium/include \
-I$(top_srcdir)/src/gallium/auxiliary \
$(DEFINES) \
$(EXPAT_CFLAGS) \
$(VISIBILITY_CFLAGS)

noinst_LTLIBRARIES = \
libdricommon.la \
libxmlconfig.la \
libmegadriver_stub.la \
libdri_test_stubs.la

libdricommon_la_SOURCES = $(DRI_COMMON_FILES)

libxmlconfig_la_SOURCES = $(XMLCONFIG_FILES)
libxmlconfig_la_CFLAGS = $(AM_CFLAGS) $(EXPAT_CFLAGS)
libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm

libdri_test_stubs_la_SOURCES = $(test_stubs_FILES)
libdri_test_stubs_la_CFLAGS = $(AM_CFLAGS) -DNO_MAIN


+ 3
- 1
src/mesa/drivers/dri/common/Makefile.sources View File

@@ -2,7 +2,9 @@ DRI_COMMON_FILES := \
utils.c \
utils.h \
dri_util.c \
dri_util.h \
dri_util.h

XMLCONFIG_FILES := \
xmlconfig.c \
xmlconfig.h


+ 1
- 1
src/mesa/drivers/dri/common/SConscript View File

@@ -37,7 +37,7 @@ drienv.PkgUseModules('DRM')
# else
#env.Append(CPPDEFINES = ['__NOT_HAVE_DRM_H'])

sources = drienv.ParseSourceList('Makefile.sources', 'DRI_COMMON_FILES')
sources = drienv.ParseSourceList('Makefile.sources', ['DRI_COMMON_FILES', 'XMLCONFIG_FILES' ])

dri_common = drienv.ConvenienceLibrary(
target = 'dri_common',

+ 1
- 0
src/mesa/drivers/dri/i965/Makefile.am View File

@@ -48,6 +48,7 @@ libi965_dri_la_LIBADD = $(INTEL_LIBS)
TEST_LIBS = \
libi965_dri.la \
../common/libdricommon.la \
../common/libxmlconfig.la \
../common/libmegadriver_stub.la \
../../../libmesa.la \
$(DRI_LIB_DEPS) \

Loading…
Cancel
Save