[edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib

Ard Biesheuvel posted 5 patches 1 year, 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
BaseTools/Conf/tools_def.template                                                                                |   2 +-
OvmfPkg/AmdSev/AmdSevX64.dsc                                                                                     |   4 -
OvmfPkg/CloudHv/CloudHvX64.dsc                                                                                   |   4 -
OvmfPkg/IntelTdx/IntelTdxX64.dsc                                                                                 |   4 -
OvmfPkg/Microvm/MicrovmX64.dsc                                                                                   |   4 -
OvmfPkg/OvmfPkgIa32.dsc                                                                                          |   4 -
OvmfPkg/OvmfPkgIa32X64.dsc                                                                                       |   4 -
OvmfPkg/OvmfPkgX64.dsc                                                                                           |   4 -
OvmfPkg/OvmfXen.dsc                                                                                              |   4 -
UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf                                          |   5 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf                                          |   4 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf                                       |   4 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf                                          |   4 +-
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm                                           | 116 +++++++++++++++++---
UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandlerAsm.nasm => SecPeiExceptionHandlerAsm.nasm} | 108 +++---------------
UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf                                 |  65 -----------
UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.uni                                 |  18 ---
UefiCpuPkg/UefiCpuPkg.dsc                                                                                        |   7 --
18 files changed, 133 insertions(+), 232 deletions(-)
rename UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandlerAsm.nasm => SecPeiExceptionHandlerAsm.nasm} (70%)
delete mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
delete mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.uni
[edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Ard Biesheuvel 1 year, 1 month ago
We have a special version of CpuExceptionHandlerLib for XCODE5, whose
linker (LLD) does not permit absolute symbol references in read-only
sections.

Instead of fixing this up at runtime for all toolchains (which is done
by writing the fixed up values to the .text section, which we'd prefer
to avoid), tweak the SEC/PEI version so it does not need this, and
update the remaining versions to only incorporate this logic when using
the XCODE toolchain.

Changes since v3:
-  As Marvin points out, using '-read_only_relocs suppress' with the X64
   XCODE linker is a terrible idea, as it corrupts the resulting PE
   binaries, so instead, let's do the following:
   . tweak the SEC/PEI version of the library so the relocs are emitted
     into .data when using XCODE;
   . tweak the other versions so the runtime fixups are only done when
     using XCODE
- add acks from Jiewen and Ray

Changes since v2:
- pass linker switches to permit absolute relocations in read-only
  regions, and keep all code in .text

Cc: "Ni, Ray" <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "Liu, Zhiguang" <zhiguang.liu@intel.com>
Cc: Rebecca Cran <rebecca@bsdio.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Marvin Häuser <mhaeuser@posteo.de>

Ard Biesheuvel (5):
  BaseTools/tools_def CLANGDWARF: Permit text relocations
  UefiCpuPkg/CpuExceptionHandlerLib: Use single SEC/PEI version
  UefiCpuPkg/CpuExceptionHandlerLib: Make runtime fixups XCODE-only
  OvmfPkg: Drop special Xcode5 version of exception handler library
  UefiCpuPkg/CpuExceptionHandlerLib: Drop special XCODE5 version

 BaseTools/Conf/tools_def.template                                                                                |   2 +-
 OvmfPkg/AmdSev/AmdSevX64.dsc                                                                                     |   4 -
 OvmfPkg/CloudHv/CloudHvX64.dsc                                                                                   |   4 -
 OvmfPkg/IntelTdx/IntelTdxX64.dsc                                                                                 |   4 -
 OvmfPkg/Microvm/MicrovmX64.dsc                                                                                   |   4 -
 OvmfPkg/OvmfPkgIa32.dsc                                                                                          |   4 -
 OvmfPkg/OvmfPkgIa32X64.dsc                                                                                       |   4 -
 OvmfPkg/OvmfPkgX64.dsc                                                                                           |   4 -
 OvmfPkg/OvmfXen.dsc                                                                                              |   4 -
 UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf                                          |   5 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf                                          |   4 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib.inf                                       |   4 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf                                          |   4 +-
 UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nasm                                           | 116 +++++++++++++++++---
 UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandlerAsm.nasm => SecPeiExceptionHandlerAsm.nasm} | 108 +++---------------
 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf                                 |  65 -----------
 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.uni                                 |  18 ---
 UefiCpuPkg/UefiCpuPkg.dsc                                                                                        |   7 --
 18 files changed, 133 insertions(+), 232 deletions(-)
 rename UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandlerAsm.nasm => SecPeiExceptionHandlerAsm.nasm} (70%)
 delete mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.inf
 delete mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHandlerLib.uni

-- 
2.39.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102255): https://edk2.groups.io/g/devel/message/102255
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Ni, Ray 1 year, 1 month ago
Ard,
What does "-read_only_relocs suppress" control?
Linker doesn't produce relocation entries that modifies .text section silently
so the final .text just cannot run at all?

Thanks,
Ray

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard
> Biesheuvel
> Sent: Friday, March 31, 2023 5:15 PM
> To: devel@edk2.groups.io
> Cc: Ard Biesheuvel <ardb@kernel.org>; Ni, Ray <ray.ni@intel.com>; Andrew
> Fish <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>;
> Liu, Zhiguang <zhiguang.liu@intel.com>; Rebecca Cran
> <rebecca@bsdio.com>; Tom Lendacky <thomas.lendacky@amd.com>;
> Marvin Häuser <mhaeuser@posteo.de>
> Subject: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify
> CpuExceptionHandlerLib
> 
> We have a special version of CpuExceptionHandlerLib for XCODE5, whose
> 
> linker (LLD) does not permit absolute symbol references in read-only
> 
> sections.
> 
> 
> 
> Instead of fixing this up at runtime for all toolchains (which is done
> 
> by writing the fixed up values to the .text section, which we'd prefer
> 
> to avoid), tweak the SEC/PEI version so it does not need this, and
> 
> update the remaining versions to only incorporate this logic when using
> 
> the XCODE toolchain.
> 
> 
> 
> Changes since v3:
> 
> -  As Marvin points out, using '-read_only_relocs suppress' with the X64
> 
>    XCODE linker is a terrible idea, as it corrupts the resulting PE
> 
>    binaries, so instead, let's do the following:
> 
>    . tweak the SEC/PEI version of the library so the relocs are emitted
> 
>      into .data when using XCODE;
> 
>    . tweak the other versions so the runtime fixups are only done when
> 
>      using XCODE
> 
> - add acks from Jiewen and Ray
> 
> 
> 
> Changes since v2:
> 
> - pass linker switches to permit absolute relocations in read-only
> 
>   regions, and keep all code in .text
> 
> 
> 
> Cc: "Ni, Ray" <ray.ni@intel.com>
> 
> Cc: Andrew Fish <afish@apple.com>
> 
> Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>
> 
> Cc: "Liu, Zhiguang" <zhiguang.liu@intel.com>
> 
> Cc: Rebecca Cran <rebecca@bsdio.com>
> 
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> 
> Cc: Marvin Häuser <mhaeuser@posteo.de>
> 
> 
> 
> Ard Biesheuvel (5):
> 
>   BaseTools/tools_def CLANGDWARF: Permit text relocations
> 
>   UefiCpuPkg/CpuExceptionHandlerLib: Use single SEC/PEI version
> 
>   UefiCpuPkg/CpuExceptionHandlerLib: Make runtime fixups XCODE-only
> 
>   OvmfPkg: Drop special Xcode5 version of exception handler library
> 
>   UefiCpuPkg/CpuExceptionHandlerLib: Drop special XCODE5 version
> 
> 
> 
>  BaseTools/Conf/tools_def.template
> |   2 +-
> 
>  OvmfPkg/AmdSev/AmdSevX64.dsc
> |   4 -
> 
>  OvmfPkg/CloudHv/CloudHvX64.dsc
> |   4 -
> 
>  OvmfPkg/IntelTdx/IntelTdxX64.dsc                                                                                 |
> 4 -
> 
>  OvmfPkg/Microvm/MicrovmX64.dsc
> |   4 -
> 
>  OvmfPkg/OvmfPkgIa32.dsc                                                                                          |   4
> -
> 
>  OvmfPkg/OvmfPkgIa32X64.dsc                                                                                       |
> 4 -
> 
>  OvmfPkg/OvmfPkgX64.dsc                                                                                           |   4
> -
> 
>  OvmfPkg/OvmfXen.dsc                                                                                              |   4 -
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.in
> f                                          |   5 +-
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
> |   4 +-
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib
> .inf                                       |   4 +-
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.i
> nf                                          |   4 +-
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nas
> m                                           | 116 +++++++++++++++++---
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler
> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} | 108 +++---------------
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
> ndlerLib.inf                                 |  65 -----------
> 
> 
> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
> ndlerLib.uni                                 |  18 ---
> 
>  UefiCpuPkg/UefiCpuPkg.dsc                                                                                        |   7
> --
> 
>  18 files changed, 133 insertions(+), 232 deletions(-)
> 
>  rename
> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler
> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} (70%)
> 
>  delete mode 100644
> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
> ndlerLib.inf
> 
>  delete mode 100644
> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
> ndlerLib.uni
> 
> 
> 
> --
> 
> 2.39.2
> 
> 
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#102255):
> https://edk2.groups.io/g/devel/message/102255
> Mute This Topic: https://groups.io/mt/97969646/1712937
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com]
> -=-=-=-=-=-=
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102281): https://edk2.groups.io/g/devel/message/102281
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Marvin Häuser 1 year, 1 month ago
Hi Ray,

> On 31. Mar 2023, at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
> 
> Ard,
> What does "-read_only_relocs suppress" control?

It controls whether relocs that target read-only segments yield a build error or not. I think lld uses “-z notext”.

> Linker doesn't produce relocation entries that modifies .text section silently
> so the final .text just cannot run at all?

Could you please rephrase? I’m not sure I understand, but I think it’s important everyone understands the issues at play to make a good judgment call.

Best regards,
Marvin

> 
> Thanks,
> Ray
> 
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ard
>> Biesheuvel
>> Sent: Friday, March 31, 2023 5:15 PM
>> To: devel@edk2.groups.io
>> Cc: Ard Biesheuvel <ardb@kernel.org>; Ni, Ray <ray.ni@intel.com>; Andrew
>> Fish <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>;
>> Liu, Zhiguang <zhiguang.liu@intel.com>; Rebecca Cran
>> <rebecca@bsdio.com>; Tom Lendacky <thomas.lendacky@amd.com>;
>> Marvin Häuser <mhaeuser@posteo.de>
>> Subject: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify
>> CpuExceptionHandlerLib
>> 
>> We have a special version of CpuExceptionHandlerLib for XCODE5, whose
>> 
>> linker (LLD) does not permit absolute symbol references in read-only
>> 
>> sections.
>> 
>> 
>> 
>> Instead of fixing this up at runtime for all toolchains (which is done
>> 
>> by writing the fixed up values to the .text section, which we'd prefer
>> 
>> to avoid), tweak the SEC/PEI version so it does not need this, and
>> 
>> update the remaining versions to only incorporate this logic when using
>> 
>> the XCODE toolchain.
>> 
>> 
>> 
>> Changes since v3:
>> 
>> -  As Marvin points out, using '-read_only_relocs suppress' with the X64
>> 
>>   XCODE linker is a terrible idea, as it corrupts the resulting PE
>> 
>>   binaries, so instead, let's do the following:
>> 
>>   . tweak the SEC/PEI version of the library so the relocs are emitted
>> 
>>     into .data when using XCODE;
>> 
>>   . tweak the other versions so the runtime fixups are only done when
>> 
>>     using XCODE
>> 
>> - add acks from Jiewen and Ray
>> 
>> 
>> 
>> Changes since v2:
>> 
>> - pass linker switches to permit absolute relocations in read-only
>> 
>>  regions, and keep all code in .text
>> 
>> 
>> 
>> Cc: "Ni, Ray" <ray.ni@intel.com>
>> 
>> Cc: Andrew Fish <afish@apple.com>
>> 
>> Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>
>> 
>> Cc: "Liu, Zhiguang" <zhiguang.liu@intel.com>
>> 
>> Cc: Rebecca Cran <rebecca@bsdio.com>
>> 
>> Cc: Tom Lendacky <thomas.lendacky@amd.com>
>> 
>> Cc: Marvin Häuser <mhaeuser@posteo.de>
>> 
>> 
>> 
>> Ard Biesheuvel (5):
>> 
>>  BaseTools/tools_def CLANGDWARF: Permit text relocations
>> 
>>  UefiCpuPkg/CpuExceptionHandlerLib: Use single SEC/PEI version
>> 
>>  UefiCpuPkg/CpuExceptionHandlerLib: Make runtime fixups XCODE-only
>> 
>>  OvmfPkg: Drop special Xcode5 version of exception handler library
>> 
>>  UefiCpuPkg/CpuExceptionHandlerLib: Drop special XCODE5 version
>> 
>> 
>> 
>> BaseTools/Conf/tools_def.template
>> |   2 +-
>> 
>> OvmfPkg/AmdSev/AmdSevX64.dsc
>> |   4 -
>> 
>> OvmfPkg/CloudHv/CloudHvX64.dsc
>> |   4 -
>> 
>> OvmfPkg/IntelTdx/IntelTdxX64.dsc                                                                                 |
>> 4 -
>> 
>> OvmfPkg/Microvm/MicrovmX64.dsc
>> |   4 -
>> 
>> OvmfPkg/OvmfPkgIa32.dsc                                                                                          |   4
>> -
>> 
>> OvmfPkg/OvmfPkgIa32X64.dsc                                                                                       |
>> 4 -
>> 
>> OvmfPkg/OvmfPkgX64.dsc                                                                                           |   4
>> -
>> 
>> OvmfPkg/OvmfXen.dsc                                                                                              |   4 -
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.in
>> f                                          |   5 +-
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
>> |   4 +-
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/SecPeiCpuExceptionHandlerLib
>> .inf                                       |   4 +-
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.i
>> nf                                          |   4 +-
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ExceptionHandlerAsm.nas
>> m                                           | 116 +++++++++++++++++---
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler
>> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} | 108 +++---------------
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
>> ndlerLib.inf                                 |  65 -----------
>> 
>> 
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
>> ndlerLib.uni                                 |  18 ---
>> 
>> UefiCpuPkg/UefiCpuPkg.dsc                                                                                        |   7
>> --
>> 
>> 18 files changed, 133 insertions(+), 232 deletions(-)
>> 
>> rename
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/{Xcode5ExceptionHandler
>> Asm.nasm => SecPeiExceptionHandlerAsm.nasm} (70%)
>> 
>> delete mode 100644
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
>> ndlerLib.inf
>> 
>> delete mode 100644
>> UefiCpuPkg/Library/CpuExceptionHandlerLib/Xcode5SecPeiCpuExceptionHa
>> ndlerLib.uni
>> 
>> 
>> 
>> --
>> 
>> 2.39.2
>> 
>> 
>> 
>> 
>> 
>> -=-=-=-=-=-=
>> Groups.io Links: You receive all messages sent to this group.
>> View/Reply Online (#102255):
>> https://edk2.groups.io/g/devel/message/102255
>> Mute This Topic: https://groups.io/mt/97969646/1712937
>> Group Owner: devel+owner@edk2.groups.io
>> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com]
>> -=-=-=-=-=-=
>> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102293): https://edk2.groups.io/g/devel/message/102293
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Ard Biesheuvel 1 year, 1 month ago
On Fri, 31 Mar 2023 at 12:41, Marvin Häuser <mhaeuser@posteo.de> wrote:
>
> Hi Ray,
>
> > On 31. Mar 2023, at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
> >
> > Ard,
> > What does "-read_only_relocs suppress" control?
>
> It controls whether relocs that target read-only segments yield a build error or not. I think lld uses “-z notext”.
>
> > Linker doesn't produce relocation entries that modifies .text section silently
> > so the final .text just cannot run at all?
>
> Could you please rephrase? I’m not sure I understand, but I think it’s important everyone understands the issues at play to make a good judgment call.
>

As *I* understood it, it means suppress the *warning* not suppress the
*relocation*

But the resulting binaries are broken, so it doesn't really matter.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102299): https://edk2.groups.io/g/devel/message/102299
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Marvin Häuser 1 year, 1 month ago
> On 31. Mar 2023, at 13:03, Ard Biesheuvel <ardb@kernel.org> wrote:
> 
> On Fri, 31 Mar 2023 at 12:41, Marvin Häuser <mhaeuser@posteo.de> wrote:
>> 
>> Hi Ray,
>> 
>>>> On 31. Mar 2023, at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
>>> 
>>> Ard,
>>> What does "-read_only_relocs suppress" control?
>> 
>> It controls whether relocs that target read-only segments yield a build error or not. I think lld uses “-z notext”.
>> 
>>> Linker doesn't produce relocation entries that modifies .text section silently
>>> so the final .text just cannot run at all?
>> 
>> Could you please rephrase? I’m not sure I understand, but I think it’s important everyone understands the issues at play to make a good judgment call.
>> 
> 
> As *I* understood it, it means suppress the *warning* not suppress the
> *relocation*

Correct.

> 
> But the resulting binaries are broken, so it doesn't really matter.



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102300): https://edk2.groups.io/g/devel/message/102300
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Ni, Ray 1 year, 1 month ago

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marvin
> Häuser
> Sent: Friday, March 31, 2023 7:10 PM
> To: Ard Biesheuvel <ardb@kernel.org>
> Cc: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io; Andrew Fish
> <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Liu,
> Zhiguang <zhiguang.liu@intel.com>; Rebecca Cran <rebecca@bsdio.com>;
> Tom Lendacky <thomas.lendacky@amd.com>
> Subject: Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify
> CpuExceptionHandlerLib
> 
> 
> > On 31. Mar 2023, at 13:03, Ard Biesheuvel <ardb@kernel.org> wrote:
> >
> > On Fri, 31 Mar 2023 at 12:41, Marvin Häuser <mhaeuser@posteo.de> wrote:
> >>
> >> Hi Ray,
> >>
> >>>> On 31. Mar 2023, at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
> >>>
> >>> Ard,
> >>> What does "-read_only_relocs suppress" control?
> >>
> >> It controls whether relocs that target read-only segments yield a build
> error or not. I think lld uses “-z notext”.
> >>
> >>> Linker doesn't produce relocation entries that modifies .text section
> silently
> >>> so the final .text just cannot run at all?
> >>
> >> Could you please rephrase? I’m not sure I understand, but I think it’s
> important everyone understands the issues at play to make a good judgment
> call.
> >>
> >
> > As *I* understood it, it means suppress the *warning* not suppress the
> > *relocation*

What the meaning of "suppress relocation"?
Why the final binaries are not executable?

> 
> Correct.
> 
> >
> > But the resulting binaries are broken, so it doesn't really matter.
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102313): https://edk2.groups.io/g/devel/message/102313
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Marvin Häuser 1 year, 1 month ago
> On 31. Mar 2023, at 16:39, Ni, Ray <ray.ni@intel.com> wrote:
> 
> 
> 
>> -----Original Message-----
>> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Marvin
>> Häuser
>> Sent: Friday, March 31, 2023 7:10 PM
>> To: Ard Biesheuvel <ardb@kernel.org>
>> Cc: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io; Andrew Fish
>> <afish@apple.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Liu,
>> Zhiguang <zhiguang.liu@intel.com>; Rebecca Cran <rebecca@bsdio.com>;
>> Tom Lendacky <thomas.lendacky@amd.com>
>> Subject: Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify
>> CpuExceptionHandlerLib
>> 
>> 
>>> On 31. Mar 2023, at 13:03, Ard Biesheuvel <ardb@kernel.org> wrote:
>>> 
>>> On Fri, 31 Mar 2023 at 12:41, Marvin Häuser <mhaeuser@posteo.de> wrote:
>>>> 
>>>> Hi Ray,
>>>> 
>>>>>> On 31. Mar 2023, at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
>>>>> 
>>>>> Ard,
>>>>> What does "-read_only_relocs suppress" control?
>>>> 
>>>> It controls whether relocs that target read-only segments yield a build
>> error or not. I think lld uses “-z notext”.
>>>> 
>>>>> Linker doesn't produce relocation entries that modifies .text section
>> silently
>>>>> so the final .text just cannot run at all?
>>>> 
>>>> Could you please rephrase? I’m not sure I understand, but I think it’s
>> important everyone understands the issues at play to make a good judgment
>> call.
>>>> 
>>> 
>>> As *I* understood it, it means suppress the *warning* not suppress the
>>> *relocation*
> 
> What the meaning of "suppress relocation"?

The option naming is just a bit odd, it suppresses the warning about relocations to read-only segments, not the relocations themselves.

> Why the final binaries are not executable?

I explained that here: https://edk2.groups.io/g/devel/message/102219

TL;dr: Relocations are relative to the first writable segment (thus usually __DATA), so relocations to preceding segments (usually __TEXT) will underflow and thus get corrupted offsets.

Best regards,
Marvin

> 
>> 
>> Correct.
>> 
>>> 
>>> But the resulting binaries are broken, so it doesn't really matter.
>> 
>> 
>> 
>> 
>> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102315): https://edk2.groups.io/g/devel/message/102315
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [RFT PATCH v3 0/5] UefiCpuPkg, OvmfPkg: Simplify CpuExceptionHandlerLib
Posted by Ard Biesheuvel 1 year, 1 month ago
On Fri, 31 Mar 2023 at 12:09, Ni, Ray <ray.ni@intel.com> wrote:
>
> Ard,
> What does "-read_only_relocs suppress" control?
> Linker doesn't produce relocation entries that modifies .text section silently
> so the final .text just cannot run at all?
>

Yeah, good question. So this is why I dropped this now - it doesn't
work as expected.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102284): https://edk2.groups.io/g/devel/message/102284
Mute This Topic: https://groups.io/mt/97969646/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-