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>
This commit is contained in:
committed by
Emil Velikov
parent
83b5648a1e
commit
634f200256
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) \
|
||||
$()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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) \
|
||||
|
||||
Reference in New Issue
Block a user