test/Makefile.am included src/Makefile.am for the driver sources. However, that also lead to the driver being built twice, once in src/ and once in test/. On make install, test/wacom_drv.so would overwrite the src/wacom_drv.so and thus install a driver with all static symbols compiled as non-static.
This caused the VCOPY bug worked around in 9d227cd0bd985e7dcb7923974361145ba1d78713. Avoid this by moving the sources into a shared included Makefile and build an independent libwacom-test.la in the test directory. Reported-by: Eduard Hasenleithner <ehase...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- Thank you for investigating this, much appreciated. I was wondering why 9d227 was necessary, id didn't really make sense at the time. This one should do the job now. src/Makefile.am | 16 +++------------- src/common.mk | 15 +++++++++++++++ test/Makefile.am | 11 ++++++----- 3 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 src/common.mk diff --git a/src/Makefile.am b/src/Makefile.am index f3b9a5f..7d6ecf5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -25,6 +25,8 @@ # _ladir passes a dummy rpath to libtool so the thing will actually link # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc. +include common.mk + @DRIVER_NAME@_drv_la_LTLIBRARIES = @DRIVER_NAME@_drv.la @DRIVER_NAME@_drv_la_LDFLAGS = -module -avoid-version @DRIVER_NAME@_drv_ladir = @inputdir@ @@ -32,16 +34,4 @@ AM_CPPFLAGS=-I$(top_srcdir)/include/ AM_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS) -@DRIVER_NAME@_drv_la_SOURCES = \ - $(top_srcdir)/src/xf86Wacom.c \ - $(top_srcdir)/src/xf86Wacom.h \ - $(top_srcdir)/src/wcmCommon.c \ - $(top_srcdir)/src/wcmConfig.c \ - $(top_srcdir)/src/wcmISDV4.c \ - $(top_srcdir)/src/wcmFilter.c \ - $(top_srcdir)/src/wcmFilter.h \ - $(top_srcdir)/src/xf86WacomDefs.h \ - $(top_srcdir)/src/wcmUSB.c \ - $(top_srcdir)/src/wcmXCommand.c \ - $(top_srcdir)/src/wcmValidateDevice.c \ - $(top_srcdir)/src/wcmTouchFilter.c +@DRIVER_NAME@_drv_la_SOURCES = $(DRIVER_SOURCES) diff --git a/src/common.mk b/src/common.mk new file mode 100644 index 0000000..fae8d9f --- /dev/null +++ b/src/common.mk @@ -0,0 +1,15 @@ +# shared makefile between src/Makefile.am and test/Makefile.am + +DRIVER_SOURCES= \ + $(top_srcdir)/src/xf86Wacom.c \ + $(top_srcdir)/src/xf86Wacom.h \ + $(top_srcdir)/src/wcmCommon.c \ + $(top_srcdir)/src/wcmConfig.c \ + $(top_srcdir)/src/wcmISDV4.c \ + $(top_srcdir)/src/wcmFilter.c \ + $(top_srcdir)/src/wcmFilter.h \ + $(top_srcdir)/src/xf86WacomDefs.h \ + $(top_srcdir)/src/wcmUSB.c \ + $(top_srcdir)/src/wcmXCommand.c \ + $(top_srcdir)/src/wcmValidateDevice.c \ + $(top_srcdir)/src/wcmTouchFilter.c diff --git a/test/Makefile.am b/test/Makefile.am index 1898fe3..5710bb8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,15 +1,16 @@ if UNITTESTS -include ../src/Makefile.am +include ../src/common.mk check_PROGRAMS = wacom-tests -check_LTLIBRARRIES = @DRIVER_NAME@_drv.la -@DRIVER_NAME@_drv_la_CFLAGS = -DDISABLE_STATIC -I$(top_srcdir)/src $(XORG_CFLAGS) $(CWARNFLAGS) -fvisibility=default +check_LTLIBRARIES = libwacom-test.la +libwacom_test_la_SOURCES =$(DRIVER_SOURCES) +libwacom_test_la_CFLAGS = -DDISABLE_STATIC -I$(top_srcdir)/src $(XORG_CFLAGS) $(CWARNFLAGS) -fvisibility=default TESTS=$(check_PROGRAMS) INCLUDES = -I$(top_srcdir)/src -AM_CFLAGS += $(GLIB_CFLAGS) -TEST_LDADD=$(GLIB_LIBS) @DRIVER_NAME@_drv.la +AM_CFLAGS = $(GLIB_CFLAGS) +TEST_LDADD=$(GLIB_LIBS) libwacom-test.la COMMON_SOURCES=fake-symbols.c fake-symbols.h wacom_tests_LDADD=$(TEST_LDADD) -- 1.7.4 ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel