Page MenuHomePhabricator

sidneym (Sid Manning)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 21 2014, 1:57 PM (287 w, 3 d)

Recent Activity

Fri, Feb 21

sidneym committed rGd37cbda5f9a4: [Hexagon] Define __ELF__ by default. (authored by sidneym).
[Hexagon] Define __ELF__ by default.
Fri, Feb 21, 2:12 PM
sidneym closed D74972: [hexagon] Define __ELF__ by default..
Fri, Feb 21, 2:11 PM · Restricted Project, Restricted Project, Restricted Project
sidneym created D74972: [hexagon] Define __ELF__ by default..
Fri, Feb 21, 9:09 AM · Restricted Project, Restricted Project, Restricted Project

Wed, Feb 19

sidneym abandoned D74260: Change default relocation model for hexagon when triple includes musl.
Wed, Feb 19, 1:20 PM · Restricted Project

Tue, Feb 18

sidneym committed rGcf4574299a27: [hexagon] Fix testcase issue with windows builder. (authored by sidneym).
[hexagon] Fix testcase issue with windows builder.
Tue, Feb 18, 2:44 PM
sidneym committed rGfaa889b23587: [Hexagon] clang driver should consider --sysroot option (authored by sidneym).
[Hexagon] clang driver should consider --sysroot option
Tue, Feb 18, 12:27 PM
sidneym closed D74776: [Hexagon] clang driver should consider --sysroot option when looking for includes.
Tue, Feb 18, 12:26 PM · Restricted Project
sidneym created D74776: [Hexagon] clang driver should consider --sysroot option when looking for includes.
Tue, Feb 18, 9:49 AM · Restricted Project

Fri, Feb 14

sidneym updated the diff for D74443: [lld][Hexagon] convert call x@GDPLT to call __tls_get_addr.

remove parens, ## comments, change partition index.

Fri, Feb 14, 10:03 AM · Restricted Project
sidneym accepted D74239: [Hexagon] v67+ HVX register pairs should support either direction.

I've been told that comments in tests should start with ##.

Fri, Feb 14, 9:36 AM · Restricted Project

Thu, Feb 13

sidneym updated the diff for D74443: [lld][Hexagon] convert call x@GDPLT to call __tls_get_addr.

Update variable names.
make sure __tls_get_addr doesn't already exist before creating it

Thu, Feb 13, 1:47 PM · Restricted Project

Wed, Feb 12

sidneym updated the diff for D74443: [lld][Hexagon] convert call x@GDPLT to call __tls_get_addr.

Update functionNames.

Wed, Feb 12, 10:15 AM · Restricted Project

Tue, Feb 11

sidneym created D74443: [lld][Hexagon] convert call x@GDPLT to call __tls_get_addr.
Tue, Feb 11, 2:13 PM · Restricted Project

Fri, Feb 7

sidneym created D74260: Change default relocation model for hexagon when triple includes musl.
Fri, Feb 7, 3:29 PM · Restricted Project

Jan 21 2020

sidneym committed rG6b9a5e6f05f9: [lld][Hexagon] Add General Dynamic relocations (GD) (authored by sidneym).
[lld][Hexagon] Add General Dynamic relocations (GD)
Jan 21 2020, 12:14 PM
sidneym closed D72522: [Hexagon] Add support for general dynamic relocs.
Jan 21 2020, 12:14 PM · Restricted Project

Jan 20 2020

sidneym added a comment to D72701: [Hexagon] Add support for Linux/Musl ABI..

Forgive my jumping into this without knowing all the details, but is there a public intended-for-upstreamability hexagon arch definition for musl? If not, are there assumptions about musl and the libc-defined part of the ABI in this changeset that might depend on or conflict with what's eventually added upstream?

Jan 20 2020, 11:50 AM · Restricted Project
sidneym committed rG7fee4fed4c75: Add support for Linux/Musl ABI (authored by sidneym).
Add support for Linux/Musl ABI
Jan 20 2020, 8:03 AM
sidneym closed D72701: [Hexagon] Add support for Linux/Musl ABI..
Jan 20 2020, 8:03 AM · Restricted Project

Jan 17 2020

sidneym updated the diff for D72701: [Hexagon] Add support for Linux/Musl ABI..

Update code to check for the Musl environment.

Jan 17 2020, 10:13 AM · Restricted Project

Jan 15 2020

sidneym added a comment to D72701: [Hexagon] Add support for Linux/Musl ABI..
In D72701#1822556, @pcc wrote:

I know almost nothing about Hexagon, but shouldn't this be determined by the target triple, or at least a target-feature?

Jan 15 2020, 3:21 PM · Restricted Project

Jan 14 2020

sidneym accepted D72668: [Driver][test] Fix Driver/hexagon-toolchain-elf.c for -DCLANG_DEFAULT_LINKER=lld builds.
Jan 14 2020, 1:09 PM · Restricted Project
sidneym abandoned D71278: Add support for TLS IEGOT relocations.
Jan 14 2020, 1:09 PM · Restricted Project
sidneym updated the diff for D72522: [Hexagon] Add support for general dynamic relocs.

Update testcase.

  • Verify the absence of relocations in the executable.
  • hexagon may call tls_get_addr but the name is not explicitly stated in the ABI. The internally maintained linker will create the symbol to call which is generally "tls_get_addr". There are instances when it would not be "tls_get_addr" such as when a user built a static executable using objects built -shared -pic. In such a case the internal linker would create a stub called __hexagon_ie_tls_get_addr and call it. LLD for hexagon would not support doing this until some design could be agreed upon.
  • Don't check explicit addresses in GOT.
  • Added the check for the closing brace.
Jan 14 2020, 9:55 AM · Restricted Project
sidneym changed the visibility for D72528: [Hexagon] Have GetDynamicTLSAddr call __tls_get_addr directly..
Jan 14 2020, 9:55 AM · Restricted Project
sidneym created D72701: [Hexagon] Add support for Linux/Musl ABI..
Jan 14 2020, 6:38 AM · Restricted Project

Jan 10 2020

sidneym created D72528: [Hexagon] Have GetDynamicTLSAddr call __tls_get_addr directly..
Jan 10 2020, 11:36 AM · Restricted Project
sidneym created D72522: [Hexagon] Add support for general dynamic relocs.
Jan 10 2020, 10:12 AM · Restricted Project

Jan 9 2020

sidneym committed rG0fa8f701ccf6: [ELF][Hexagon] Add support for IE relocations (authored by sidneym).
[ELF][Hexagon] Add support for IE relocations
Jan 9 2020, 7:53 AM
sidneym closed D71143: [ELF][Hexagon] Add support for TLS IE relocations.
Jan 9 2020, 7:53 AM · Restricted Project, lld

Jan 8 2020

sidneym updated the diff for D71143: [ELF][Hexagon] Add support for TLS IE relocations.

Address testcase issues.

Jan 8 2020, 11:36 AM · Restricted Project, lld

Jan 7 2020

sidneym updated the diff for D71143: [ELF][Hexagon] Add support for TLS IE relocations.

Move hasStaticTlsModel from R_GOT case to the suggested R_GOTPLT case.

Jan 7 2020, 8:02 AM · Restricted Project, lld
sidneym updated the diff for D71143: [ELF][Hexagon] Add support for TLS IE relocations.

Add config->hasStaticTlsModel in R_GOT case.

Jan 7 2020, 7:42 AM · Restricted Project, lld

Jan 6 2020

sidneym added a comment to D71143: [ELF][Hexagon] Add support for TLS IE relocations.

I'd like to ask some questions which can help understand the situation better.

  • Does Hexagon have a binutils port or an alternative linker?

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.

Like @ruiu argued before, a click-thu license agreement may be unacceptable in many environments. I am also concerned whether a click-thru license agreement is considered 100% GPLv3 conformance.

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.

Jan 6 2020, 4:03 PM · Restricted Project, lld
sidneym added a comment to D71143: [ELF][Hexagon] Add support for TLS IE relocations.

I'd like to ask some questions which can help understand the situation better.

  • Does Hexagon have a binutils port or an alternative linker?

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.

Jan 6 2020, 2:16 PM · Restricted Project, lld
sidneym updated the diff for D71143: [ELF][Hexagon] Add support for TLS IE relocations.

Update Check names.

Jan 6 2020, 10:44 AM · Restricted Project, lld

Jan 3 2020

sidneym updated the diff for D71143: [ELF][Hexagon] Add support for TLS IE relocations.

merge ie and iegot relocations
put the testcase into just a single file.

Jan 3 2020, 1:39 PM · Restricted Project, lld

Jan 2 2020

sidneym accepted D72093: [ELF][Hexagon][test] Use llvm-readobj to check relocations. NFC.

This is fine with me. This patch doesn't remove the objdump checks are both necessary?

Jan 2 2020, 10:46 AM · Restricted Project
sidneym committed rG81ffe89735ed: Add TPREL relocation support to Hexagon (authored by sidneym).
Add TPREL relocation support to Hexagon
Jan 2 2020, 9:21 AM
sidneym closed D71069: [ELF][Hexagon]Add TPREL relocation support to Hexagon.
Jan 2 2020, 9:21 AM · Restricted Project
sidneym updated the diff for D71069: [ELF][Hexagon]Add TPREL relocation support to Hexagon.

Change testcase name to hexagon-tls-le.s

Jan 2 2020, 8:42 AM · Restricted Project

Dec 23 2019

sidneym added a comment to rG75e500dd4713: Add missing `REQUIRES: hexagon-registered-target`.

Thanks! Sorry for the breakage, I enable all targets or just hexagon but never not all targets and not hexagon. I will create a solo config of a different architecture and consider that in the future.

Dec 23 2019, 6:58 AM

Dec 20 2019

sidneym committed rGd567b0ba841d: Avoid unsupported LLD options (authored by sidneym).
Avoid unsupported LLD options
Dec 20 2019, 12:24 PM
sidneym closed D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.
Dec 20 2019, 12:23 PM · Restricted Project, Restricted Project

Dec 16 2019

sidneym updated the diff for D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.

Remove quotes.

Dec 16 2019, 3:30 PM · Restricted Project, Restricted Project

Dec 13 2019

sidneym updated the diff for D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.

OK, Yes Fuchsia is a good example. Using that pattern

Dec 13 2019, 1:27 PM · Restricted Project, Restricted Project

Dec 12 2019

sidneym updated the diff for D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.

make check for lld more generic.

Dec 12 2019, 2:51 PM · Restricted Project, Restricted Project

Dec 10 2019

sidneym created D71278: Add support for TLS IEGOT relocations.
Dec 10 2019, 8:19 AM · Restricted Project

Dec 9 2019

sidneym updated the diff for D71069: [ELF][Hexagon]Add TPREL relocation support to Hexagon.

remove redundant comments

Dec 9 2019, 6:43 AM · Restricted Project

Dec 6 2019

sidneym created D71143: [ELF][Hexagon] Add support for TLS IE relocations.
Dec 6 2019, 12:34 PM · Restricted Project, lld

Dec 5 2019

sidneym updated the diff for D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.

Remove quotes around check-not.

Dec 5 2019, 10:05 AM · Restricted Project, Restricted Project
sidneym created D71069: [ELF][Hexagon]Add TPREL relocation support to Hexagon.
Dec 5 2019, 8:55 AM · Restricted Project

Dec 2 2019

sidneym updated the diff for D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.

Update testcase.

Dec 2 2019, 12:46 PM · Restricted Project, Restricted Project
sidneym updated subscribers of D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.
Dec 2 2019, 12:18 PM · Restricted Project, Restricted Project
sidneym created D70919: [Hexagon] Avoid passing unsupported options to lld when -fuse-ld=lld is used.
Dec 2 2019, 12:18 PM · Restricted Project, Restricted Project

Nov 13 2019

sidneym added a comment to D69536: Recommit "Add a heap alloc site marker field to the ExtraInfo in MachineInstrs".

I get a build error with this patch (b288f7d6bb8fdd21d27ba755302db194c181fdaf) It looks like what got committed is a little different from above. The committed patch partially changed updateCallSiteInfo with moveCallSiteInfo

Nov 13 2019, 1:43 PM · Restricted Project

Nov 5 2019

sidneym added a comment to D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Can one of the reviewers push this? I lost my commit access, waiting for it to be restored.

Nov 5 2019, 10:56 AM · Restricted Project

Oct 28 2019

sidneym updated the diff for D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Remove Entry: from testcase

Oct 28 2019, 3:34 PM · Restricted Project

Oct 25 2019

sidneym updated the diff for D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Forgot to remove Address/AddressAlign

Oct 25 2019, 10:25 AM · Restricted Project
sidneym updated the diff for D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Remove +sh_offset update testcase to include a test for ShOffset > file size.

Oct 25 2019, 10:25 AM · Restricted Project

Oct 24 2019

sidneym added inline comments to D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..
Oct 24 2019, 6:50 AM · Restricted Project

Oct 22 2019

sidneym updated the diff for D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Rename and update test.

Oct 22 2019, 12:32 PM · Restricted Project

Oct 21 2019

sidneym updated the diff for D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..

Changed getContents to return a zero-length array when the section type was NOBITS.

Oct 21 2019, 12:22 PM · Restricted Project

Oct 18 2019

sidneym created D69192: llvm-objdump can error out with an unexpected EOF error if .bss is larger than the file being dumped..
Oct 18 2019, 1:46 PM · Restricted Project

Oct 15 2019

sidneym committed rGab5025654448: [lld] Check for branch range overflows. (authored by sidneym).
[lld] Check for branch range overflows.
Oct 15 2019, 7:12 AM
sidneym closed D68875: [lld] Check for branch range overflows..
Oct 15 2019, 7:12 AM · Restricted Project
sidneym committed rL374891: [lld] Check for branch range overflows..
[lld] Check for branch range overflows.
Oct 15 2019, 7:10 AM

Oct 14 2019

sidneym updated the diff for D68875: [lld] Check for branch range overflows..

Update and rename testcase.

Oct 14 2019, 9:20 AM · Restricted Project

Oct 11 2019

sidneym updated the diff for D68875: [lld] Check for branch range overflows..

Update test case.

Oct 11 2019, 11:01 AM · Restricted Project
sidneym created D68875: [lld] Check for branch range overflows..
Oct 11 2019, 9:28 AM · Restricted Project

Oct 8 2019

sidneym committed rGaca5d395d541: [lld][Hexagon] Support PLT relocation R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X (authored by sidneym).
[lld][Hexagon] Support PLT relocation R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X
Oct 8 2019, 7:29 AM
sidneym committed rL374052: [lld][Hexagon] Support PLT relocation R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X.
[lld][Hexagon] Support PLT relocation R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X
Oct 8 2019, 7:29 AM
sidneym closed D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.
Oct 8 2019, 7:29 AM · Restricted Project

Oct 7 2019

sidneym updated the diff for D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.

Add a new test similar to riscv-plt.s. Update hexagon-shared.s to test -Bsymbolic and .hidden.

Oct 7 2019, 2:37 PM · Restricted Project

Sep 27 2019

sidneym updated the diff for D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.

Updated testcase.

Sep 27 2019, 10:47 AM · Restricted Project

Sep 25 2019

sidneym added a comment to D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.

Any comments, ABI is here:
http://lists.llvm.org/pipermail/llvm-dev/2019-September/135177.html

Sep 25 2019, 3:06 PM · Restricted Project

Sep 16 2019

sidneym added a comment to D67605: [ELF][Hexagon] Allow PT_LOAD to have overlapping p_offset ranges on EM_HEXAGON.

LGTM

Sep 16 2019, 10:37 AM · Restricted Project

Aug 30 2019

sidneym committed rGaa0e8f96f2d6: [llvm-nm] Small fix to Exected<StringRef> (authored by sidneym).
[llvm-nm] Small fix to Exected<StringRef>
Aug 30 2019, 7:15 AM
sidneym committed rL370474: [llvm-nm] Small fix to Exected<StringRef>.
[llvm-nm] Small fix to Exected<StringRef>
Aug 30 2019, 7:15 AM
sidneym closed D66976: Small update to Expected<StringRef>.
Aug 30 2019, 7:15 AM · Restricted Project

Aug 29 2019

sidneym created D66976: Small update to Expected<StringRef>.
Aug 29 2019, 3:13 PM · Restricted Project

Aug 22 2019

sidneym added a comment to D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.

Generally, the non-extended branch relocations are never found in objects but one could manually generate them. The rules work like this:

  • if (p0) jump external // The assembler picks the relocation, either R_HEX_B15_PCREL or R_HEX_B15_PCREL_X in practice when the label is external it will pick the _X version
  • if (p0) jump #external // The programmer says I want the non-extended version, R_HEX_B15_PCREL will be used.
  • if (p0) jump ##external // The programmer says I want the extended version, R_HEX_B15_PCREL_X will be used.
Aug 22 2019, 9:06 AM · Restricted Project
sidneym updated the diff for D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.

I accidentally moved R_HEX_6_PCREL_X, I only intended to update R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X.

Aug 22 2019, 8:33 AM · Restricted Project

Aug 21 2019

sidneym created D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects.
Aug 21 2019, 10:03 AM · Restricted Project

Aug 19 2019

sidneym added a comment to D66274: [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT.

Nice! Thank you for doing this.

The remaining bits of RelExpr are a scarce recourse now... R_RISCV_PC_INDIRECT == 61. @sidneym Do you need more than 3 bits?

Aug 19 2019, 12:11 PM · Restricted Project
sidneym accepted D66275: [ELF][Hexagon] Improve error message for unknown relocations.
Aug 19 2019, 6:50 AM · Restricted Project
sidneym committed rGa0a4c6b7224e: [lld][Hexagon] Add GOTREL relocations. (authored by sidneym).
[lld][Hexagon] Add GOTREL relocations.
Aug 19 2019, 6:32 AM
sidneym committed rL369258: [lld][Hexagon] Add GOTREL relocations..
[lld][Hexagon] Add GOTREL relocations.
Aug 19 2019, 6:32 AM
sidneym closed D66260: [lld][Hexagon] Add GOTREL relocations.
Aug 19 2019, 6:32 AM · Restricted Project, lld

Aug 16 2019

sidneym accepted D66274: [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT.
Aug 16 2019, 9:35 AM · Restricted Project
sidneym committed rG2d3ebeb81395: [lld][Hexagon]Support HEX_32 when building shared objects (authored by sidneym).
[lld][Hexagon]Support HEX_32 when building shared objects
Aug 16 2019, 8:35 AM
sidneym committed rL369121: [lld][Hexagon]Support HEX_32 when building shared objects.
[lld][Hexagon]Support HEX_32 when building shared objects
Aug 16 2019, 8:35 AM
sidneym closed D66105: Support HEX_32 when building shared objects.
Aug 16 2019, 8:35 AM · Restricted Project, lld

Aug 15 2019

sidneym added inline comments to D66274: [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT.
Aug 15 2019, 3:41 PM · Restricted Project
sidneym added inline comments to D66274: [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT.
Aug 15 2019, 3:29 PM · Restricted Project
sidneym added inline comments to D66274: [ELF][Hexagon] Replace R_HEXAGON_GOT with R_GOTPLT.
Aug 15 2019, 9:24 AM · Restricted Project
sidneym added a comment to D66260: [lld][Hexagon] Add GOTREL relocations.

Where can we find a psABI describing these relocation types?

Aug 15 2019, 8:03 AM · Restricted Project, lld
sidneym updated the diff for D66260: [lld][Hexagon] Add GOTREL relocations.

Update filenames in testcase.

Aug 15 2019, 7:16 AM · Restricted Project, lld

Aug 14 2019

sidneym created D66260: [lld][Hexagon] Add GOTREL relocations.
Aug 14 2019, 4:16 PM · Restricted Project, lld

Aug 12 2019

sidneym added a reviewer for D66105: Support HEX_32 when building shared objects: shankare.
Aug 12 2019, 12:45 PM · Restricted Project, lld