[PATCH 1/8] tests: fix main symbol duplication

Pekka Paalanen ppaalanen at gmail.com
Fri Feb 8 13:50:49 UTC 2019


On Fri,  8 Feb 2019 15:13:34 +0200
Leonid Bobrov <mazocomp at disroot.org> wrote:

> So far I got these errors before patching:
> 
> libtool: link: cc -o .libs/headers-test -pthread -Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -O2 -pipe tests/headers-test.o tests/headers-protocol-test.o tests/headers-protocol-core-test.o /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a -L.libs -lwayland-client -lffi -lm -lwayland-server -lkvm -Wl,-rpath-link,/usr/local/lib
> ld: error: duplicate symbol: main
> >>> defined at headers-test.c:53 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/headers-test.c:53)
> >>>            tests/headers-test.o:(main)
> >>> defined at test-runner.c:377 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/test-runner.c:377)
> >>>            test-runner.o:(.text+0x250) in archive /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a  
> 
> libtool: link: cc -o .libs/exec-fd-leak-checker -pthread -Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -O2 -pipe tests/exec-fd-leak-checker.o /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a -L.libs -lwayland-client -lffi -lm -lwayland-server -lkvm -Wl,-rpath-link,/usr/local/lib
> ld: error: duplicate symbol: main
> >>> defined at exec-fd-leak-checker.c:57 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/exec-fd-leak-checker.c:57)
> >>>            tests/exec-fd-leak-checker.o:(main)
> >>> defined at test-runner.c:377 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/test-runner.c:377)
> >>>            test-runner.o:(.text+0x250) in archive /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a  
> 
> Makefile.am: error: object 'tests/test-helpers.$(OBJEXT)' created both with libtool and without
> 
> libtool: link: cc -o .libs/fixed-benchmark -pthread -Wall -Wextra -Wno-unused-parameter -g -Wstrict-prototypes -Wmissing-prototypes -fvisibility=hidden -O2 -pipe tests/fixed-benchmark.o /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a -L.libs -lwayland-client -lffi -lm -lwayland-server -lkvm -Wl,-rpath-link,/usr/local/lib
> ld: error: duplicate symbol: main
> >>> defined at fixed-benchmark.c:100 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/fixed-benchmark.c:100)
> >>>            tests/fixed-benchmark.o:(main)
> >>> defined at test-runner.c:377 (/tmp/obj/wayland-1.16.0/wayland-1.16.0/tests/test-runner.c:377)
> >>>            test-runner.o:(.text+0x250) in archive /tmp/obj/wayland-1.16.0/build-amd64/.libs/libtest-runner.a  
> 
> This commit fixes all of that.
> 
> Signed-off-by: Leonid Bobrov <mazocomp at disroot.org>
> ---
>  Makefile.am | 15 ++++++++-------
>  1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 697c517..cce4d73 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -210,12 +210,16 @@ noinst_PROGRAMS =				\
>  	exec-fd-leak-checker			\
>  	fixed-benchmark
>  
> -noinst_LTLIBRARIES += libtest-runner.la
> +noinst_LTLIBRARIES +=				\
> +	libtest-runner.la			\
> +	libtest-helpers.la
> +
> +libtest_helpers_la_SOURCES = tests/test-helpers.c

Hi Leonid,

this is a much better solution than I could have suggested.

> +libtest_helpers_la_LIBADD = -lrt -ldl $(FFI_LIBS)

It doesn't look like test-helpers.c needs these LIBADD at all, and
neither those that do not link to libtest_runner_la. How about keeping
these with libtest_runner_la instead?

Otherwise this patch looks good to me.


Thanks,
pq

>  
>  libtest_runner_la_SOURCES =			\
>  	tests/test-runner.c			\
>  	tests/test-runner.h			\
> -	tests/test-helpers.c			\
>  	tests/test-compositor.h			\
>  	tests/test-compositor.c
>  libtest_runner_la_LIBADD =			\
> @@ -223,8 +227,7 @@ libtest_runner_la_LIBADD =			\
>  	libwayland-util.la			\
>  	libwayland-client.la			\
>  	libwayland-server.la			\
> -	-lrt -ldl $(FFI_LIBS)
> -
> +	libtest-helpers.la
>  
>  array_test_SOURCES = tests/array-test.c
>  array_test_LDADD = libtest-runner.la
> @@ -270,7 +273,6 @@ protocol_logger_test_LDADD = libtest-runner.la
>  headers_test_SOURCES = tests/headers-test.c \
>  		       tests/headers-protocol-test.c \
>  		       tests/headers-protocol-core-test.c
> -headers_test_LDADD = libtest-runner.la
>  nodist_headers_test_SOURCES =			\
>  	protocol/wayland-server-protocol-core.h	\
>  	protocol/wayland-client-protocol-core.h
> @@ -280,13 +282,12 @@ cpp_compile_test_SOURCES = tests/cpp-compile-test.cpp
>  endif
>  
>  fixed_benchmark_SOURCES = tests/fixed-benchmark.c
> -fixed_benchmark_LDADD = libtest-runner.la
>  
>  os_wrappers_test_SOURCES = tests/os-wrappers-test.c
>  os_wrappers_test_LDADD = libtest-runner.la
>  
>  exec_fd_leak_checker_SOURCES = tests/exec-fd-leak-checker.c
> -exec_fd_leak_checker_LDADD = libtest-runner.la
> +exec_fd_leak_checker_LDADD = libtest-helpers.la
>  
>  EXTRA_DIST += tests/scanner-test.sh			\
>  	protocol/tests.xml				\

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20190208/d255bb93/attachment.sig>


More information about the wayland-devel mailing list