On Mon, Jan 16, 2017 at 02:47:26PM -0500, Adam Jackson wrote: > On Sat, 2017-01-14 at 15:19 +0500, Mihail Konev wrote: > > Commit ead5064581665ff40c177dd1b447949f1420e209 missed that xi1/ > > and xi2/ were conditioned on XORG, and made xfree86-only tests to be > > built unconditionally. > > Ifdef the tests and split tests_SOURCES. > > > > Commit 704a867f8fb7652a8b7d5569bbe44e188457db4e missed that when > > XORG is false, libxservertest.la isn't linked into anything. > > However, before putting them into tests_LDADD, its static libraries > > likely need to be reordered for linking not to fail. > > Remove the former libxservertest.la for !XORG, as its build was only > > triggered by 'make check'. > > XSERVER_LIBS were depending on it; remove them too. > > > > Commit 23f6dbc96e47be6cbeed78cc9ef303987c3e29a9 missed that -wrap > > arguments to 'ld' could only be present when HAVE_LD_WRAP is true. > > While this does make --disabled-xorg fail differently, it does not work > for me: > > tests-tests.o: In function `main': > /home/ajax/git/xserver/test/tests.c:12: undefined reference to `fixes_test' > /home/ajax/git/xserver/test/tests.c:14: undefined reference to > `hashtabletest_test' > /home/ajax/git/xserver/test/tests.c:16: undefined reference to `input_test' > /home/ajax/git/xserver/test/tests.c:17: undefined reference to `misc_test' > /home/ajax/git/xserver/test/tests.c:18: undefined reference to > `signal_logging_test' > /home/ajax/git/xserver/test/tests.c:19: undefined reference to `touch_test' > /home/ajax/git/xserver/test/tests.c:20: undefined reference to `xfree86_test' > /home/ajax/git/xserver/test/tests.c:21: undefined reference to `xkb_test' > /home/ajax/git/xserver/test/tests.c:22: undefined reference to `xtest_test' > /home/ajax/git/xserver/test/tests.c:26: undefined reference to > `protocol_xchangedevicecontrol_test' > /home/ajax/git/xserver/test/tests.c:28: undefined reference to > `protocol_xiqueryversion_test' > /home/ajax/git/xserver/test/tests.c:29: undefined reference to > `protocol_xiquerydevice_test' > /home/ajax/git/xserver/test/tests.c:30: undefined reference to > `protocol_xiselectevents_test' > /home/ajax/git/xserver/test/tests.c:31: undefined reference to > `protocol_xigetselectedevents_test' > /home/ajax/git/xserver/test/tests.c:32: undefined reference to > `protocol_xisetclientpointer_test' > /home/ajax/git/xserver/test/tests.c:33: undefined reference to > `protocol_xigetclientpointer_test' > /home/ajax/git/xserver/test/tests.c:34: undefined reference to > `protocol_xipassivegrabdevice_test' > /home/ajax/git/xserver/test/tests.c:35: undefined reference to > `protocol_xiquerypointer_test' > /home/ajax/git/xserver/test/tests.c:36: undefined reference to > `protocol_xiwarppointer_test' > /home/ajax/git/xserver/test/tests.c:37: undefined reference to > `protocol_eventconvert_test' > /home/ajax/git/xserver/test/tests.c:38: undefined reference to `xi2_test' > collect2: error: ld returned 1 exit status > > - ajax
This cannot happen on a clean build, at least for fixes_test(): (I should have sent this earlier, but grepping wouldn't come to mind). [xserver]$ git status HEAD detached at 730fd8c05f56 nothing to commit, working tree clean [xserver]$ [xserver]$ git show | head -n1 commit 730fd8c05f56da21894691bbd2e7ff37f67b45f4 [xserver]$ The only invocation of fixes_test is guarded by XORG_TESTS #define .. [xserver]$ grep '\bfixes_test\b' -r -C1 Binary file test/tests-fixes.o matches -- test/tests.c-#if XORG_TESTS test/tests.c: run_test(fixes_test); test/tests.c-#ifdef RES_TESTS -- test/fixes.c-int test/fixes.c:fixes_test(void) test/fixes.c-{ -- test/tests.h- test/tests.h:int fixes_test(void); test/tests.h-int hashtabletest_test(void); [xserver]$ And the only XORG_TESTS definition is guarded by XORG automake define .. [xserver]$ grep 'XORG_TESTS\b' -r -C1 test/Makefile.am-if XORG test/Makefile.am:AM_CPPFLAGS += -DXORG_TESTS test/Makefile.am-# Tests that require at least some DDX functions in order to fully link -- test/tests.c- test/tests.c:#if XORG_TESTS test/tests.c- run_test(fixes_test); -- test/Makefile.in-host_triplet = @host@ test/Makefile.in:@ENABLE_UNIT_TESTS_TRUE@@XORG_TRUE@am__append_1 = -DXORG_TESTS test/Makefile.in-@ENABLE_UNIT_TESTS_TRUE@@RES_TRUE@@XORG_TRUE@am__append_2 = -DRES_TESTS -- test/Makefile-host_triplet = x86_64-pc-linux-gnu test/Makefile:#am__append_1 = -DXORG_TESTS test/Makefile-#am__append_2 = -DRES_TESTS [xserver]$ Which is guarded by the XORG shell variable .. [xserver]$ grep '\[XORG\]' configure.ac AM_CONDITIONAL([XORG], [test "x$XORG" = xyes]) [xserver]$ Which is 'yes' unless it is --disable-xorg, Windows, or Mac. [xserver]$ grep '\bXORG\b.*=' configure.ac -C0 AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto]) -- if test "x$XORG" = xauto; then XORG="yes" -- cygwin*) XORG="no" ;; mingw*) XORG="no" ;; darwin*) XORG="no" ;; -- if test "x$XORG" = xyes; then -- AM_CONDITIONAL([XORG], [test "x$XORG" = xyes]) -- if test "x$XORG" = xyes; then [xserver]$ As there are no calls, there could be no undefined reference. The tests-tests.o should have been compiled from an earlier commit. Ping for https://patchwork.freedesktop.org/patch/136119/ ; also, maybe it should have "Duplicates: 730fd8c05f56" and/or "Regressed-in(myself):". _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel