Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jun 2019 11:05:40 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>, Rainer Hurling <rhurlin@gwdg.de>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: r349100: buildworld does not compile (ld: error: duplicate symbol: sse42_crc32c)
Message-ID:  <35afacf4-a52b-2b82-144c-4d40cbe58d74@FreeBSD.org>
In-Reply-To: <f8135ca6-b4a8-a524-6d21-321ffc5b88ec@FreeBSD.org>
References:  <e04776f5-3d8b-7198-de38-bf4e23c42d16@gwdg.de> <CANCZdfqPTwAy7qbuxKnxEcXtKZiYHMrh=PVnz_%2BEKwvD9rn_GA@mail.gmail.com> <f8135ca6-b4a8-a524-6d21-321ffc5b88ec@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--8xAQm8HxuH8IooQXVOAbjia1SLOhsXzsL
Content-Type: multipart/mixed; boundary="Fy3YfTt7O55K8pTbmGFEUCwc4N2ONvA2p";
 protected-headers="v1"
From: Bryan Drewery <bdrewery@FreeBSD.org>
To: Warner Losh <imp@bsdimp.com>, Rainer Hurling <rhurlin@gwdg.de>
Cc: FreeBSD Current <freebsd-current@freebsd.org>
Message-ID: <35afacf4-a52b-2b82-144c-4d40cbe58d74@FreeBSD.org>
Subject: Re: r349100: buildworld does not compile (ld: error: duplicate
 symbol: sse42_crc32c)
References: <e04776f5-3d8b-7198-de38-bf4e23c42d16@gwdg.de>
 <CANCZdfqPTwAy7qbuxKnxEcXtKZiYHMrh=PVnz_+EKwvD9rn_GA@mail.gmail.com>
 <f8135ca6-b4a8-a524-6d21-321ffc5b88ec@FreeBSD.org>
In-Reply-To: <f8135ca6-b4a8-a524-6d21-321ffc5b88ec@FreeBSD.org>

--Fy3YfTt7O55K8pTbmGFEUCwc4N2ONvA2p
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

On 6/19/19 11:02 AM, Bryan Drewery wrote:
> On 6/16/19 9:33 AM, Warner Losh wrote:
>> On Sun, Jun 16, 2019, 9:51 AM Rainer Hurling <rhurlin@gwdg.de> wrote:
>>
>>> If I try to build world almost recent sources (r349100) on HEAD amd64=

>>> (r348775), it stops with the following error:
>>>
>>>
>>> [..snip..]
>>> (cd /usr/src/tests/sys/kern &&  DEPENDFILE=3D.depend.libkern_crc32
>>> NO_SUBDIR=3D1 make -f /usr/src/tests/sys/kern/Makefile _RECURSING_PRO=
GS=3Dt
>>> PROG=3Dlibkern_crc32 )
>>> echo libkern_crc32: /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libc.a
>>> /usr/obj/usr/src/amd64.amd64/tmp/usr/lib/libprivateatf-c.a >>
>>> .depend.libkern_crc32
>>> cc -target x86_64-unknown-freebsd13.0
>>> --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp
>>> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin  -O2 -pipe
>>> -DUSERSPACE_TESTING -MD  -MF.depend.libkern_crc32.libkern_crc32.o
>>> -MTlibkern_crc32.o -std=3Dgnu99 -fstack-protector-strong -Wsystem-hea=
ders
>>> -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter
>>> -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
>>> -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body
>>> -Wno-string-plus-int -Wno-unused-const-variable
>>> -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality=

>>> -Wno-unused-function -Wno-enum-conversion -Wno-unused-local-typedef
>>> -Wno-address-of-packed-member   -Qunused-arguments   -c
>>> /usr/src/tests/sys/kern/libkern_crc32.c -o libkern_crc32.o
>>> cc -target x86_64-unknown-freebsd13.0
>>> --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp
>>> -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -O2 -pipe -DUSERSPACE_TEST=
ING
>>> -std=3Dgnu99 -fstack-protector-strong -Wsystem-headers -Werror -Wall
>>> -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes
>>> -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized
>>> -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int
>>> -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-valu=
e
>>> -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion
>>> -Wno-unused-local-typedef -Wno-address-of-packed-member
>>> -Qunused-arguments -DUSERSPACE_TESTING    -o libkern_crc32
>>> libkern_crc32.o  /usr/src/sys/libkern/x86/crc32_sse42.c -lprivateatf-=
c
>>> /usr/src/sys/libkern/x86/crc32_sse42.c -lprivateatf-c
>>> ld: error: duplicate symbol: sse42_crc32c
>>>>>> defined at crc32_sse42.c
>>>>>>            /tmp/crc32_sse42-2988bd.o:(sse42_crc32c)
>>>>>> defined at crc32_sse42.c
>>>>>>            /tmp/crc32_sse42-bcf3d2.o:(.text+0x3C0)
>>> cc: error: linker command failed with exit code 1 (use -v to see
>>> invocation)
>>> *** [libkern_crc32] Error code 1
>>> make[6]: stopped in /usr/src/tests/sys/kern
>>> 1 error
>>> make[6]: stopped in /usr/src/tests/sys/kern
>>> *** [libkern_crc32] Error code 2
>>>
>>>
>>> This happens with two older cpus, Intel (Core 17-4770) and AMD (Pheno=
m
>>> II X6 1090T).
>>>
>>> Am I the only one, who observes this breakage? Thanks for any hint.
>>>
>>
>> Try adding -DWITHOUT_TESTS to buildworld...
>>
>> Warner
>>
>=20
> ~/git/freebsd2/tests/sys/kern # env|grep TEST
> MK_TESTS=3Dno
>=20
>=20
> Doh. Turns out I've had TESTS disabled in some of my recent build tests=

> / commits. This is likely my fault.
>=20

Yup it is from my r349065.

It's an ambiguity between LDADD.<PROG_TARGET> and my newly added
LDADD.<compile target>.

LDADD.libkern_crc32+=3D   ${SRCTOP}/sys/libkern/x86/crc32_sse42.c

So it's added in twice.


--=20
Regards,
Bryan Drewery


--Fy3YfTt7O55K8pTbmGFEUCwc4N2ONvA2p--

--8xAQm8HxuH8IooQXVOAbjia1SLOhsXzsL
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEE+Rc8ssOq6npcih8JNddxu25Gl88FAl0KeXQACgkQNddxu25G
l89oKwgAw4MPE9+TBjL5vC4THi3hPDf3491uwxrwgLfvoNSoRicAzoSWta2DyRUj
/OWnXiaeIRO7DUX5VP/EZAWUv5aIN3akpT3f4NC2rvNvI3+RXhOyp9xQjHNN6lEb
LR+GRspNMLrbkqcwPFw38RsdQfKHzoiZj9CMqrtNQaJ7495jdw8Un1gxyEGSY/Z7
MeUPJYCHIc6Y9y6eKKOfr5iMw2PWoAd7mnKM6bgfsPW/Nh0ZoS77LQVYL1LhVziq
3TuE9vnf3JhpG3NTlLGWET4NbRUz32RXwDtQUz5aSyCERATFutuvfqYk/00tCpRY
pSv6g/y7TYUTquqNnvtcZSZnb2MuQQ==
=DJ2G
-----END PGP SIGNATURE-----

--8xAQm8HxuH8IooQXVOAbjia1SLOhsXzsL--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?35afacf4-a52b-2b82-144c-4d40cbe58d74>