From: Vineet Gupta <vineet.gupta@linux.dev>
To: Shahab Vahedi <Shahab.Vahedi@synopsys.com>, libc-alpha@sourceware.org
Cc: Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>,
arcml <linux-snps-arc@lists.infradead.org>
Subject: Re: [PATCH] ARC: update definitions in elf/elf.h
Date: Fri, 18 Nov 2022 16:34:55 -0800 [thread overview]
Message-ID: <abed8f65-738f-e9a4-7353-801ebc10fa70@linux.dev> (raw)
In-Reply-To: <20221118131542.23188-1-shahab@synopsys.com>
On 11/18/22 05:15, Shahab Vahedi wrote:
> While porting ARCv2 to elfutils [1], it was brought up that the
> necessary changes to the project's libelf/elf.h must come from
> glibc, because they sync it from glibc [2]. Therefore, this patch
> is to update ARC entries in elf/elf.h.
>
> The majority of the update is about adding new definitions,
> specially for the relocations. However, there is one rename, one
> deletion, and one change:
For completeness: And some cosmetic changes to uppercase hex digits.
>
> - R_ARC_JUMP_SLOT renamed to R_ARC_JMP_SLOT to match binutils.
> - R_ARC_B26 removed because it is unused and deprecated.
> - R_ARC_TLS_DTPOFF_S9 changed from 0x4a to the correct value 0x49.
Technically this would be an ABI change, but is currently not being used
in glibc at all (and I doubt anything outside glibc would use it
anyways) so this should be non-controversial.
> [1]
> https://sourceware.org/pipermail/elfutils-devel/2022q4/005530.html
>
> [2]
> https://sourceware.org/pipermail/elfutils-devel/2022q4/005548.html
>
> Signed-off-by: Shahab Vahedi <shahab@synopsys.com>
> ---
> elf/elf.h | 30 +++++++++++++++++++++++++-----
> 1 file changed, 25 insertions(+), 5 deletions(-)
>
> diff --git a/elf/elf.h b/elf/elf.h
> index 920e6891e6..dfe5f79036 100644
> --- a/elf/elf.h
> +++ b/elf/elf.h
> @@ -4160,13 +4160,23 @@ enum
> #define R_LARCH_GNU_VTENTRY 58
>
>
> +/* ARC specific declarations. */
> +
> +/* Processor specific flags for the Ehdr e_flags field. */
> +#define EF_ARC_MACH_MSK 0x000000ff
> +#define EF_ARC_OSABI_MSK 0x00000f00
> +#define EF_ARC_ALL_MSK (EF_ARC_MACH_MSK | EF_ARC_OSABI_MSK)
> +
> +/* Processor specific values for the Shdr sh_type field. */
> +#define SHT_ARC_ATTRIBUTES (SHT_LOPROC + 1) /* ARC attributes section. */
> +
> /* ARCompact/ARCv2 specific relocs. */
> #define R_ARC_NONE 0x0
> #define R_ARC_8 0x1
> #define R_ARC_16 0x2
> #define R_ARC_24 0x3
> #define R_ARC_32 0x4
> -#define R_ARC_B26 0x5
> +
> #define R_ARC_B22_PCREL 0x6
> #define R_ARC_H30 0x7
> #define R_ARC_N8 0x8
> @@ -4206,16 +4216,23 @@ enum
> #define R_ARC_SECTOFF_ME_2 0x2A
> #define R_ARC_SECTOFF_1 0x2B
> #define R_ARC_SECTOFF_2 0x2C
> +#define R_ARC_SDA_12 0x2D
> +#define R_ARC_SDA16_ST2 0x30
> +#define R_ARC_32_PCREL 0x31
OK.
> #define R_ARC_PC32 0x32
> #define R_ARC_GOTPC32 0x33
> #define R_ARC_PLT32 0x34
> #define R_ARC_COPY 0x35
> #define R_ARC_GLOB_DAT 0x36
> -#define R_ARC_JUMP_SLOT 0x37
> +#define R_ARC_JMP_SLOT 0x37
Did you build glibc with this change ? There are references to old
definition.
git grep R_ARC_JUMP_SLOT
sysdeps/arc/dl-machine.h:199: ((((type) ==
R_ARC_JUMP_SLOT \
sysdeps/arc/dl-machine.h:206:#define ELF_MACHINE_JMP_SLOT R_ARC_JUMP_SLOT
sysdeps/arc/dl-machine.h:277: case R_ARC_JUMP_SLOT:
sysdeps/arc/dl-machine.h:337: if (r_type == R_ARC_JUMP_SLOT)
> #define R_ARC_RELATIVE 0x38
> #define R_ARC_GOTOFF 0x39
> #define R_ARC_GOTPC 0x3A
> #define R_ARC_GOT32 0x3B
> +#define R_ARC_S21W_PCREL_PLT 0x3C
> +#define R_ARC_S25H_PCREL_PLT 0x3D
> +
> +#define R_ARC_JLI_SECTOFF 0x3F
OK.
> #define R_ARC_TLS_DTPMOD 0x42
> #define R_ARC_TLS_DTPOFF 0x43
> @@ -4224,9 +4241,12 @@ enum
> #define R_ARC_TLS_GD_LD 0x46
> #define R_ARC_TLS_GD_CALL 0x47
> #define R_ARC_TLS_IE_GOT 0x48
> -#define R_ARC_TLS_DTPOFF_S9 0x4a
> -#define R_ARC_TLS_LE_S9 0x4a
> -#define R_ARC_TLS_LE_32 0x4b
> +#define R_ARC_TLS_DTPOFF_S9 0x49
Value change, but not used currently so no ABI implications.
> +#define R_ARC_TLS_LE_S9 0x4A
cosmetic. OK
> +#define R_ARC_TLS_LE_32 0x4B
Ditto.
> +#define R_ARC_S25W_PCREL_PLT 0x4C
> +#define R_ARC_S21H_PCREL_PLT 0x4D
> +#define R_ARC_NPS_CMEM16 0x4E
OK.
_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc
next parent reply other threads:[~2022-11-19 0:35 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20221118131542.23188-1-shahab@synopsys.com>
2022-11-19 0:34 ` Vineet Gupta [this message]
2022-11-21 13:07 ` [PATCH] ARC: update definitions in elf/elf.h Shahab Vahedi
2022-11-21 13:06 ` [PATCH v2] " Shahab Vahedi
2022-11-21 14:30 ` Adhemerval Zanella Netto
2022-11-23 4:13 ` Vineet Gupta
2022-11-27 17:38 ` [PATCH v3 0/2] Update ARC " Shahab Vahedi
2022-11-27 17:38 ` [PATCH v3 1/2] scripts: Add "|" operator support to glibcpp's parsing Shahab Vahedi
2022-11-27 18:21 ` Florian Weimer
2022-11-30 2:11 ` Vineet Gupta
2022-11-27 17:38 ` [PATCH v3 2/2] ARC: update definitions in elf/elf.h Shahab Vahedi
2022-11-30 2:11 ` Vineet Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=abed8f65-738f-e9a4-7353-801ebc10fa70@linux.dev \
--to=vineet.gupta@linux.dev \
--cc=Claudiu.Zissulescu@synopsys.com \
--cc=Shahab.Vahedi@synopsys.com \
--cc=libc-alpha@sourceware.org \
--cc=linux-snps-arc@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.