[edk2-devel] [PATCH] BaseTools/GenFw: Add support for LOONGARCH64 relax relocation

Chao Li lichao at loongson.cn
Fri Sep 22 07:33:44 UTC 2023


Reviewed-by: Chao Li <lichao at loongson.cn>


Thanks,
Chao
在 2023/9/22 15:27, Dongyan Qian 写道:
> Correct relax id from 99 to 100 and added relocation support up to 109
>
> fix gcc14 adds new relocation, and the generated relocation
> causes the build and compilation to fail.
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4559
>
> Cc: Rebecca Cran<rebecca at bsdio.com>
> Cc: Liming Gao<gaoliming at byosoft.com.cn>
> Cc: Bob Feng<bob.c.feng at intel.com>
> Cc: Yuwei Chen<yuwei.chen at intel.com>
> Cc: Chao Li<lichao at loongson.cn>
> Signed-off-by: Dongyan Qian<qiandongyan at loongson.cn>
> ---
>   BaseTools/Source/C/GenFw/Elf64Convert.c | 20 ++++++++++++++++++++
>   BaseTools/Source/C/GenFw/elf_common.h   | 13 ++++++++++++-
>   2 files changed, 32 insertions(+), 1 deletion(-)
>
> diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
> index d53ecb1767..9911db65af 100644
> --- a/BaseTools/Source/C/GenFw/Elf64Convert.c
> +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
> @@ -1778,7 +1778,17 @@ WriteSections64 (
>             case R_LARCH_TLS_LD64_HI20:
>             case R_LARCH_TLS_GD_PC_HI20:
>             case R_LARCH_TLS_GD64_HI20:
> +          case R_LARCH_32_PCREL:
>             case R_LARCH_RELAX:
> +          case R_LARCH_DELETE:
> +          case R_LARCH_ALIGN:
> +          case R_LARCH_PCREL20_S2:
> +          case R_LARCH_CFA:
> +          case R_LARCH_ADD6:
> +          case R_LARCH_SUB6:
> +          case R_LARCH_ADD_ULEB128:
> +          case R_LARCH_SUB_ULEB128:
> +          case R_LARCH_64_PCREL:
>               //
>               // These types are not used or do not require fixup.
>               //
> @@ -2185,7 +2195,17 @@ WriteRelocations64 (
>                 case R_LARCH_TLS_LD64_HI20:
>                 case R_LARCH_TLS_GD_PC_HI20:
>                 case R_LARCH_TLS_GD64_HI20:
> +              case R_LARCH_32_PCREL:
>                 case R_LARCH_RELAX:
> +              case R_LARCH_DELETE:
> +              case R_LARCH_ALIGN:
> +              case R_LARCH_PCREL20_S2:
> +              case R_LARCH_CFA:
> +              case R_LARCH_ADD6:
> +              case R_LARCH_SUB6:
> +              case R_LARCH_ADD_ULEB128:
> +              case R_LARCH_SUB_ULEB128:
> +              case R_LARCH_64_PCREL:
>                   //
>                   // These types are not used or do not require fixup in PE format files.
>                   //
> diff --git a/BaseTools/Source/C/GenFw/elf_common.h b/BaseTools/Source/C/GenFw/elf_common.h
> index ccd32804b0..e4d0cdac4f 100644
> --- a/BaseTools/Source/C/GenFw/elf_common.h
> +++ b/BaseTools/Source/C/GenFw/elf_common.h
> @@ -1144,5 +1144,16 @@ typedef struct {
>   #define R_LARCH_TLS_LD64_HI20              96
>   #define R_LARCH_TLS_GD_PC_HI20             97
>   #define R_LARCH_TLS_GD64_HI20              98
> -#define R_LARCH_RELAX                      99
> +#define R_LARCH_32_PCREL                   99
> +#define R_LARCH_RELAX                      100
> +#define R_LARCH_DELETE                     101
> +#define R_LARCH_ALIGN                      102
> +#define R_LARCH_PCREL20_S2                 103
> +#define R_LARCH_CFA                        104
> +#define R_LARCH_ADD6                       105
> +#define R_LARCH_SUB6                       106
> +#define R_LARCH_ADD_ULEB128                107
> +#define R_LARCH_SUB_ULEB128                108
> +#define R_LARCH_64_PCREL                   109
> +
>   #endif /* !_SYS_ELF_COMMON_H_ */


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108981): https://edk2.groups.io/g/devel/message/108981
Mute This Topic: https://groups.io/mt/101516908/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20230922/3e954988/attachment-0001.htm>


More information about the edk2-devel-archive mailing list