[compiler-rt] 52f2df1 - [Sanitizers] Get link map on FreeBSD and NetBSD via documented API
Dimitry Andric via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 11 09:11:43 PST 2020
On 11 Feb 2020, at 10:59, Kamil Rytarowski via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
> On 11.02.2020 10:47, Jeremy Morse via llvm-commits wrote:
>> Hi,
>>
>> On Tue, Feb 11, 2020 at 3:29 AM Yung, Douglas via llvm-commits
>> <llvm-commits at lists.llvm.org> wrote:
>>> This change is failing to build on our internal linux build bot. The machine is an x86_64 linux machine running ubuntu 18.04 with glibc 2.27-3ubuntu1 and is getting this error when trying to build:
>>>
>>> FAILED: projects/compiler-rt/lib/sanitizer_common/tests/Sanitizer-x86_64-Test-Nolibc
>>> cd /home/siadmin/jenkins/w/opensource/opensource_build/build/projects/compiler-rt/lib/sanitizer_common/tests && /home/siadmin/jenkins/w/opensource/opensource_build/build/./bin/clang sanitizer_nolibc_test_main.x86_64.o -Wl,-whole-archive libRTSanitizerCommon.test.nolibc.x86_64.a -Wl,-no-whole-archive -o /home/siadmin/jenkins/w/opensource/opensource_build/build/projects/compiler-rt/lib/sanitizer_common/tests/./Sanitizer-x86_64-Test-Nolibc -fuse-ld=gold -Wl,-allow-shlib-undefined -static -nostdlib -m64
>>> /home/siadmin/jenkins/w/opensource/opensource_build/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:741: error: undefined reference to 'dlinfo'
>>> clang-11: error: linker command failed with exit code 1 (use -v to see invocation)
>>>
>>> Manually adding "-ldl" to the command line results in an undefined reference to '__dlinfo' instead of 'dlinfo'. Any idea why this isn't linking properly?
>>
>> It looks like this failure-mode is now appearing on public buildbots:
>>
>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/25660
>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/25660/steps/check-sanitizer%20in%20gcc%20build/logs/stdio
>>
>> Without any context, it would appear that the patch adds a dependency
>> on dlinfo on linux, which is finding its way into the nolibc
>> sanitizer?
>>
>> --
>> Thanks,
>> Jeremy
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
> A fix landed:
>
> commit f8370d6c8ab89875cdc2fc1638aa6f1732be7e99 (HEAD -> master)
> Author: Kamil Rytarowski <n54 at gmx.com>
> Date: Tue Feb 11 10:57:16 2020 +0100
>
> [compiler-rt] Restrict sanitizer_linux.cpp dlinfo(3) to FreeBSD
>
> FreeBSD is currently the only user in this file.
> Accessing this symbol on Linux does not work as is.
Thanks for the fix, I didn't notice that this particular test case is
explicitly linking without any system libraries. Therefore -ldl will
likely not have worked either, as the actual symbols are in glibc, at
least on Linux.
That said, I had no trouble building on FreeBSD, since the build appears
to always add "-ldl -lrt -pthread" to the link command line. However,
for some reason it never builds Sanitizer-x86_64-Test-Nolibc ?
-Dimitry
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 223 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200211/6b064edf/attachment.sig>
More information about the llvm-commits
mailing list