- User Since
- Sep 4 2015, 4:18 PM (206 w, 6 d)
Ping? This breaks unit test when building with -DLLVM_INSTALL_BINUTILS_SYMLINKS=ON
LGTM except for one minor issue.
Mon, Aug 19
Fri, Aug 9
LGTM. This reduces the check-asan-dynamic test failures from 209 to 50 if I also apply the -pthread patch.
Tue, Aug 6
Sat, Aug 3
Wed, Jul 31
Move the cast to dlsym() return value rather than the function pointer call
Used decltype now. Should be a bit shorter than the using declaration.
I still need the casts, otherwise the build fails when building the i368 RTSanitizerCommon.i386.dir/sanitizer_linux.cc.o:
/exports/users/alr48/sources/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc:786:57: error: cannot initialize a parameter of type 'size_t *' (aka 'unsigned int *') with an lvalue of type '__sanitizer::uptr *' (aka 'unsigned long *')
Tue, Jul 30
Mon, Jul 29
Sun, Jul 28
Remove mention of FreeBSD from comment
Sat, Jul 27
Fri, Jul 26
Always use xcrun
Use the more portable dlsym() instead of dlfunc()
- Address review feedback
- Remove XFAIL: freebsd from another test that now passes
Remove freebsd XFAIL from two tests that pass with this change
Thu, Jul 25
Jul 24 2019
Yes I actually mean D65221
This broke ASAN on FreeBSD (same for the MSAN change). When loading static thread_local struct tsd_key key this is done using __tls_get_addr. The interceptor for __tls_get_addr then calls GetCurrentThread which calls AsanTSDGet which again calls __tls_get_addr.
If I remove the || SANITIZER_FREEBSD it works fine (at least on FreeBSD 11.2).
Jul 12 2019
Thanks for your work on this! Looking forward to be able to use these new features the next time I update our fork.
Jul 9 2019
This will cause big merge conflicts the next time I update our CHERI fork. However, the change itself looks good to me so I have no objections.
Jul 5 2019
Jul 3 2019
Jun 30 2019
Jun 20 2019
Jun 12 2019
Jun 11 2019
Looks good to me. Just two minor comments:
This looks good to me. However, I think the name SymbolicRel does not make it immediately obvious to me it should be used for. Maybe add a comment to the member?
May 22 2019
May 9 2019
I implemented the same thing for the CHERI fork of lld since I added some new warning that could in certain cases be emitted many times but are not necessarily a real problem.
May 8 2019
May 2 2019
Apr 24 2019
Apr 16 2019
Thanks for fixing this! LGTM
Apr 11 2019
Mar 29 2019
LGTM once the tempfile is deleted.
Mar 28 2019
Mar 26 2019
Mar 21 2019
The value of getAddend<ELFT>(Rel); now only seems to be in Ref.getRawDataRefImpl().p now. Shouldn't the rel case also be adding the implicit addend? I'm not sure I'm reading the code currently but it looks to me like REL no longer gets the addend added.
@akhuang Thanks for getting this committed. Since it seems like a lot of this is taken from my script, could you please add me as a reviewer for the next patch so that I know which bits still need to be upstreamed?
Mar 16 2019
Mar 12 2019
In case anyone is interested, for the CHERI fork of LLVM/Clang I added a similar script that contains additional features such as inferring the crash message (so that you get the minimal reproducer for the issue that you are trying to reduce and not some obscure parser crash for invalid input), dealing with infinite loops, generating a test case with a mostly sensible RUN: line.
Furthermore, it will attempt to use bugpoint if it is a backend rather than a frontend crash since that is much much faster than creduce.
It should allows you to run $LLVM_BUILDIR/bin/creduce_crash_testcase.py /tmp/clang-reproducers.sh and then give a sensible minimal test case back
Feb 28 2019
Feb 21 2019
I believe this broke building libunwind standalone for me since it complains about add_target_flags() not being defined. I guess it also needs to be copied to the libunwind cmake files?
Jan 19 2019
This looks good to me.
Jan 14 2019
I like the introduction of a explicit pointer subtraction since ptrtoint/inttoptr can cause lots of subtle bugs in our CHERI backend. However, I wonder if this should be an instruction instead of an intrinsic?
I'm happy with this approach since the triple can be set on the commandline.
If this gets merged I will update CHERI lld to use the triple instead of the new emulation that we added.
Jan 11 2019
Jan 8 2019
Jan 7 2019
I don't see an easy way of fixing the pragma clang attribute support for this.
Would it be okay to commit this change anyway?
Since alloc_size is only used for very few functions I'd be very surprised if there's any existing code that relies on using #pragma clang atrribute with alloc_size.
Jan 4 2019
Or if you really need to call the linker directly without specifying search paths you could also install a shell script as /usr/bin/ld that passes the appropriate flags to /usr/bin/ld.lld?
Dec 20 2018
Thanks for updating this patch. It will be very useful!
Dec 19 2018
LGTM. I recently tried to use llvm-objcopy for building CheriBSD (a fork of FreeBSD for the CHERI CPU) and ran into asserts due to missing ELFOSABI_FREEBSD.
Dec 13 2018
Dec 12 2018
Dec 10 2018
fix a failing test
Dec 6 2018
Add a C++ test for alloc_size
Dec 3 2018
Thanks for the review! I'll write a C++ test tomorrow.
- address review comments
- add test that we can assign between function pointers with and without alloc_size attribute.
Remove RUN: line added for debugging