Mon, Jan 20
Thank you! I'll fix that. For some reason, I did not receive the notification from the build bot.
This test broke the UBSan buildbot here. I've rolled it back for now, but to reproduce the issue should be as simple as adding -DLLVM_USE_SANITIZER=Undefined and running ninja check-lld or make check-lld depending on which tool you use :)
Thu, Jan 16
- Bug fixes
- clang format
Wed, Jan 15
A couple of nits, but I think it looks pretty good, thanks!
Tue, Jan 14
Mon, Jan 13
rebase with master
Thu, Jan 9
Wed, Jan 8
Address testcase issues.
Tue, Jan 7
Move hasStaticTlsModel from R_GOT case to the suggested R_GOTPLT case.
Add config->hasStaticTlsModel in R_GOT case.
Mon, Jan 6
All hexagon work on binutils/gcc was done during the GPLv2 timeframe. The downloadable linker I'm referring to is a branch from the old mclinker project.
The binutils port was never made public. The internal linker can be downloaded with a click-thu license agreement, the same one needed to get to the ABI spec. That linker is a branch of mclinker.
- Is -pie and -shared used a lot on Hexagon?
-pie isn't but shared is.
- How is Hexagon's dynamic loader ld.so implemented? Is the source code available?
The code isn't yet available from Qualcomm but we have a port of MUSL and I don't think much more than adding the #defines to reloc.h and the files dlsym.s/tlsdesc.s was done. Nothing weird for hexagon.
- How is TLS going to be used on Hexagon?
There isn't anything out of the ordinary in how it is used and it is necessary for C++11 support.
- Is text relocations acceptable?
No. The reason I needed to add the -z notext in the -shared test was because technically the wrong relocations were being used. I did that so that I could condense the IE patch into a single file testcase.
- Is it really impossible to use a PC-relative GOT address load on Hexagon? R_GOT on EM_386 has severe limitations. EM_X86_64 fixed these issues. (I don't want to see newer architectures behave like it.)
The R_HEX_IE_GOT... are used for shared/pic code. As far as I know the R_HEX_IE_32_6_X/16_X.. are used only when building static code. The ABI has examples for both of these IE static and IE for PIC.
I shall also mention that this is unfortunate.bool canRelax = config->emachine != EM_ARM && config->emachine != EM_RISCV;
RISC-V TLS has several problems. Its design/implementation was copied from ARM/MIPS. The two architectures really do not provide the best reference for TLS implementations. The RISC-V TLS implementation has several defects. I've reported a few bugs on the binutils bugzilla.
I'd like to ask some questions which can help understand the situation better.
Update Check names.
Sun, Jan 5
I do not have commit rights to the repository. Could someone commit this change if it is OK?
Kazuaki Ishizaki <email@example.com>
Rebased on master. This adds one new fix and removes the ones done by others.
Sat, Jan 4
You can drop changes to lld. I've fixed lld -Wrange-loop-analysis a few days ago in 681b1be774964a804beabfb7c5e3bdab8f979e4a . (Archive::Child c was also deleted).
MLIR looks fine to me.
Fri, Jan 3
yaml2obj is capable of producing binary .rdata section (which would host CET bit) from hex, but not individual debug directories that would go into it. Looks like all the tests dealing wit debug directories are using pre-built binaries - codeview tests are a good example).
merge ie and iegot relocations
put the testcase into just a single file.
Thu, Jan 2
LLVM Release Schedule: 10.0.0: Jan 15, 2020: branch, then rc1
Wed, Jan 1
Dec 27 2019
Was this fixing an existing buildbot/test failure? (if not, it should probably have a test? If it did fix an existing failure - could you mention what that failure was?)
Dec 26 2019
stack-size 2MB is the default stack size of glibc.
Dec 20 2019
@MaskRay I will mail you off-list with one question.