[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-21 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay closed https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-21 Thread Fangrui Song via llvm-branch-commits
MaskRay wrote: > Thanks for the update, I'm happy with the changes. I would like to see more > options for position independent code in embedded systems. > > The other related embedded position independent option for microcontrollers > that I'm aware of is `-fropi` and `-frwpi` which is alread

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-21 Thread Peter Smith via llvm-branch-commits
https://github.com/smithp35 approved this pull request. Forgot to approve https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branc

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-21 Thread Peter Smith via llvm-branch-commits
https://github.com/smithp35 commented: Thanks for the update, I'm happy with the changes. I would like to see more options for position independent code in embedded systems. The other related embedded position independent option for microcontrollers that I'm aware of is `-fropi` and `-frwpi` w

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay updated https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay updated https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
MaskRay wrote: > I've checked over the implementation with binutils. Out of interest are you > planning on implementing all of fdpic or just enough to get assembler/linker > support working? Yes, I plan to implement the codegen part to help me understand FDPIC better and the codegen part of L

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay edited https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay edited https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
@@ -11358,6 +11361,37 @@ bool ARMAsmParser::parseDirectiveARM(SMLoc L) { return false; } +MCSymbolRefExpr::VariantKind +ARMAsmParser::getVariantKindForName(StringRef Name) const { MaskRay wrote: > Ideally we could refactor so that MCSymbolRefExpr::getVarian

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay edited https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Fangrui Song via llvm-branch-commits
@@ -11358,6 +11361,37 @@ bool ARMAsmParser::parseDirectiveARM(SMLoc L) { return false; } +MCSymbolRefExpr::VariantKind +ARMAsmParser::getVariantKindForName(StringRef Name) const { + return StringSwitch(Name.lower()) + .Case("funcdesc", MCSymbolRefExpr::VK_FUNCDESC) +

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
@@ -11358,6 +11361,37 @@ bool ARMAsmParser::parseDirectiveARM(SMLoc L) { return false; } +MCSymbolRefExpr::VariantKind +ARMAsmParser::getVariantKindForName(StringRef Name) const { + return StringSwitch(Name.lower()) + .Case("funcdesc", MCSymbolRefExpr::VK_FUNCDESC) +

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
@@ -11358,6 +11361,37 @@ bool ARMAsmParser::parseDirectiveARM(SMLoc L) { return false; } +MCSymbolRefExpr::VariantKind +ARMAsmParser::getVariantKindForName(StringRef Name) const { smithp35 wrote: I can see a design trade-off here. By implementing only the e

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
@@ -84,6 +84,11 @@ unsigned ARMELFObjectWriter::GetRelocTypeInner(const MCValue &Target, if (Kind >= FirstLiteralRelocationKind) return Kind - FirstLiteralRelocationKind; MCSymbolRefExpr::VariantKind Modifier = Target.getAccessVariant(); + auto CheckFDPIC = [&]() { +

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
https://github.com/smithp35 commented: I've checked over the implementation with binutils. Out of interest are you planning on implementing all of fdpic or just enough to get assembler/linker support working? If you are there are some other GNU options that may be useful to look at as possibl

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
https://github.com/smithp35 edited https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-20 Thread Peter Smith via llvm-branch-commits
@@ -223,6 +223,12 @@ class MCSymbolRefExpr : public MCExpr { VK_SECREL, VK_SIZE,// symbol@SIZE VK_WEAKREF, // The link between the symbols in .weakref foo, bar +VK_FUNCDESC, smithp35 wrote: While VK_TLSGD_FDPIC are somewhat self documenting

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-19 Thread Fangrui Song via llvm-branch-commits
@@ -143,3 +143,10 @@ ELF_RELOC(R_ARM_THM_BF16, 0x88) ELF_RELOC(R_ARM_THM_BF12, 0x89) ELF_RELOC(R_ARM_THM_BF18, 0x8a) ELF_RELOC(R_ARM_IRELATIVE, 0xa0) +ELF_RELOC(R_ARM_GOTFUNCDESC,0xa1) +ELF_RELOC(R_ARM_GOTOFFFUN

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-19 Thread James Henderson via llvm-branch-commits
https://github.com/jh7370 edited https://github.com/llvm/llvm-project/pull/82187 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-19 Thread James Henderson via llvm-branch-commits
@@ -143,3 +143,10 @@ ELF_RELOC(R_ARM_THM_BF16, 0x88) ELF_RELOC(R_ARM_THM_BF12, 0x89) ELF_RELOC(R_ARM_THM_BF18, 0x8a) ELF_RELOC(R_ARM_IRELATIVE, 0xa0) +ELF_RELOC(R_ARM_GOTFUNCDESC,0xa1) +ELF_RELOC(R_ARM_GOTOFFFUN

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-19 Thread James Henderson via llvm-branch-commits
https://github.com/jh7370 commented: BinaryFormat/llvm-readobj aspects looks fine to me, but the assembler side of things goes a bit over my head, so you'll need someone else to review that area. https://github.com/llvm/llvm-project/pull/82187 ___ llv

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-18 Thread via llvm-branch-commits
llvmbot wrote: @llvm/pr-subscribers-backend-arm Author: Fangrui Song (MaskRay) Changes Linux kernel fs/binfmt_elf_fdpic.c supports FDPIC for MMU-less systems. GCC/binutils/qemu support FDPIC ABI for ARM (https://github.com/mickael-guene/fdpic_doc). _ARM FDPIC Toolchain and ABI_ provides a

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-18 Thread via llvm-branch-commits
llvmbot wrote: @llvm/pr-subscribers-mc @llvm/pr-subscribers-llvm-binary-utilities @llvm/pr-subscribers-objectyaml Author: Fangrui Song (MaskRay) Changes Linux kernel fs/binfmt_elf_fdpic.c supports FDPIC for MMU-less systems. GCC/binutils/qemu support FDPIC ABI for ARM (https://github.com/m

[llvm-branch-commits] [ARM, MC] Support FDPIC relocations (PR #82187)

2024-02-18 Thread Fangrui Song via llvm-branch-commits
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/82187 Linux kernel fs/binfmt_elf_fdpic.c supports FDPIC for MMU-less systems. GCC/binutils/qemu support FDPIC ABI for ARM (https://github.com/mickael-guene/fdpic_doc). _ARM FDPIC Toolchain and ABI_ provides a summary.