From: Sudakshina Das <Sudi.Das@arm.com>
To: "binutils@sourceware.org" <binutils@sourceware.org>
Cc: nd <nd@arm.com>, "nickc@redhat.com" <nickc@redhat.com>,
Ramana Radhakrishnan <Ramana.Radhakrishnan@arm.com>
Subject: [PATCH, BFD, LD, AArch64, 3/4] Add --bti to enable BTI and select BTI enabled PLTs but also warn for missing NOTE sections.
Date: Wed, 06 Mar 2019 10:36:00 -0000 [thread overview]
Message-ID: <28fed67e-7286-0526-3974-7312b0418405@arm.com> (raw)
In-Reply-To: <2277b4b2-6509-1558-bd40-17ffcb27dbb1@arm.com>
[-- Attachment #1: Type: text/plain, Size: 12887 bytes --]
Hi
On 06/03/2019 10:34, Sudakshina Das wrote:
> Hi
>
> On 06/03/2019 10:30, Sudakshina Das wrote:
>> Hi
>>
>> On 06/03/2019 10:26, Sudakshina Das wrote:
>>> Hi
>>>
>>> This patch series is aimed at giving support for the new Armv8.3-A
>>> Pointer Authentication and Armv8.5-A Branch Target Identification
>>> feature in the linker.
>>>
>>> In order to support these, we propose to make the following changes:
>>> 1) We have defined .note.gnu.property for AArch64.
>>> 2) We have defined a new Program Property type
>>> GNU_PROPERTY_AARCH64_FEATURE_1_AND and used 2 bits to represent
>>> BTI and PAC respectively.
>>> - GNU_PROPERTY_AARCH64_FEATURE_1_BTI
>>> - GNU_PROPERTY_AARCH64_FEATURE_1_PAC (We have only reserved this bit
>>> for now.)
>>> 3) We also need custom PLTs when these features are turned on and thus
>>> we have defined the following processor-specific dynamic array tags:
>>> - DT_AARCH64_BTI_PLT
>>> - DT_AARCH64_PAC_PLT
>>> Details of these can be found in the new AArch64 ELF documentation:
>>> https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
>>>
>>>
>>> Command line options:
>>> We introduce a new set of command line options for the linker in
>>> order to support the correct PLTs
>>> 1) --pac-plt : In the presence of this option, the linker uses a PAC
>>> enabled PLT. It also uses the dynamic tag DT_AARCH64_PAC_PLT to
>>> reflect the same. Other tools like Objdump can use this to determine
>>> the size of the PLTs.
>>> 2) --bti: In the presence of this option, the linker enables BTI with
>>> the GNU_PROPERTY_AARCH64_FEATURE_1_BTI feature and also uses a BTI
>>> enabled PLT. It also uses the dynamic tag DT_AARCH64_BTI_PLT to
>>> reflect the choice of the PLTs. Other tools like Objdump can use this
>>> to determine the size of the PLTs. Using this option can give a
>>> warning if not all input objects are marked with
>>> GNU_PROPERTY_AARCH64_FEATURE_1_BTI.
>>> 3)--bti-nowarn - Same as above but does not emit any warnings.
>>>
>>> In terms of the PLTs, in the presence of both --pac-plt and
>>> --bti/--bti-nowarn, the linker chooses the PLTs protected with both
>>> BTI and PAC and uses both DT_AARCH64_PAC_PLT and DT_AARCH64_BTI_PLT.
>>>
>>> Interaction between Command line arguments and GNU NOTE section
>>> 1) For PAC, in the presence of --pac-plt along with BIND_NOW, the
>>> linker can choose to ignore the pac-plt directive and use smaller
>>> PLTs without compromising on security,
>>> 2) For BTI, the linker must also check for the
>>> GNU_PROPERTY_AARCH64_FEATURE_1_BTI in its input. If all inputs have
>>> GNU_PROPERTY_AARCH64_FEATURE_1_BTI, the final output will also be
>>> marked as such. The PLT should also be protected with a BTI PLT in
>>> this case. Thus even if there is no linker option to use BTI PLT, the
>>> linker
>>> should be able to use them depending on the NOTE section. The user
>>> can use the linker option --bti, to make sure that their intention of
>>> having all input objects (and hence the output) marked with BTI is
>>> not disrupted by any stray objects as this option will warn about it.
>>>
>>>
>>> The following patches implement these changes as follows:
>>> [1/4] Add support for GNU PROPERTIES in AArch64 for BTI and PAC:
>>> [2/4] Add --bti-nowarn to enable BTI without warning and to select
>>> BTI enabled PLTs
>>> [3/4] Add --bti to enable BTI and select BTI enabled PLTs but also
>>> warn for missing NOTE sections.
>>> [4/4] Add --pac-plt to enable PLTs protected with PAC.
>>>
>>> This is my first time making such intrusive changes to the linker.
>>> Please be kind :P
>>>
>>> Thanks
>>> Sudi
>>
>> This is part of the patch series to add support for BTI and
>> PAC in AArch64 linker.
>>
>> This patch implements the following:
>> 1) This extends in the gnu property support in the linker for
>> AArch64 by defining backend hooks for elf_backend_setup_gnu_properties,
>> elf_backend_merge_gnu_properties and elf_backend_parse_gnu_properties.
>> 2) It defines AArch64 specific GNU property
>> GNU_PROPERTY_AARCH64_FEATURE_1_AND and 2 bit for BTI and PAC in it.
>> 3) It also adds support in readelf.c to read and print these new
>> GNU properties in AArch64.
>> All these are made according to the new AArch64 ELF ABI
>> https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
>>
>>
>> Build and regression tests all pass on aarch64-none-linux-gnu and
>> new tests are added.
>>
>> Is this ok for trunk?
>>
>> Thanks
>> Sudi
>>
>> *** bfd/ChangeLog ***
>>
>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>
>> * elf-properties.c (_bfd_elf_link_setup_gnu_properties): Exclude
>> linker created inputs from merge.
>> * elfnn-aarch64.c (struct elf_aarch64_obj_tdata): Add field for
>> GNU_PROPERTY_AARCH64_FEATURE_1_AND properties.
>> (elfNN_aarch64_link_setup_gnu_properties): New.
>> (elfNN_aarch64_merge_gnu_properties): New.
>> (elf_backend_setup_gnu_properties): Define for AArch64.
>> (elf_backend_merge_gnu_properties): Likewise.
>> * elfxx-aarch64.c (_bfd_aarch64_elf_link_setup_gnu_properties):
>> Define.
>> (_bfd_aarch64_elf_parse_gnu_properties): Define.
>> (_bfd_aarch64_elf_merge_gnu_properties): Define.
>> * elfxx-aarch64.h (_bfd_aarch64_elf_link_setup_gnu_properties):
>> Declare.
>> (_bfd_aarch64_elf_parse_gnu_properties): Declare.
>> (_bfd_aarch64_elf_merge_gnu_properties): Declare.
>> (elf_backend_parse_gnu_properties): Define for AArch64.
>>
>> *** binutils/ChangeLog ***
>>
>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>
>> * readelf.c (decode_aarch64_feature_1_and): New.
>> (print_gnu_property_note): Add case for AArch64 gnu notes.
>>
>> *** include/ChangeLog ***
>>
>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>
>> * elf/common.h (GNU_PROPERTY_AARCH64_FEATURE_1_AND): New.
>> (GNU_PROPERTY_AARCH64_FEATURE_1_BTI): New.
>> (GNU_PROPERTY_AARCH64_FEATURE_1_PAC): New.
>>
>> *** ld/ChangeLog ***
>>
>> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
>>
>> * NEWS: Document GNU_PROPERTY_AARCH64_FEATURE_1_BTI and
>> GNU_PROPERTY_AARCH64_FEATURE_1_PAC.
>> * testsuite/ld-aarch64/aarch64-elf.exp: Add run commands for new
>> tests.
>> * testsuite/ld-aarch64/property-bti-pac1.d: New test.
>> * testsuite/ld-aarch64/property-bti-pac1.s: New test.
>> * testsuite/ld-aarch64/property-bti-pac2.d: New test.
>> * testsuite/ld-aarch64/property-bti-pac2.s: New test.
>> * testsuite/ld-aarch64/property-bti-pac3.d: New test.
>
> This is part of the patch series to add support for BTI and
> PAC in AArch64 linker.
>
> 1) This patch adds a new ld command line option: --bti-nowarn.
> In the presence of this option, the linker enables BTI with the
> GNU_PROPERTY_AARCH64_FEATURE_1_BTI feature. This gives no warning
> in case of missing gnu notes for BTI in inputs.
> 2) It also defines a new set of BTI enabled PLTs. These are used either
> when all the inputs are marked with GNU_PROPERTY_AARCH64_FEATURE_1_BTI
> or when the new --bti-nowarn option is used. This required adding new
> fields in elf_aarch64_link_hash_table so that we could make the PLT
> related information more generic.
> 3) It also defines a dynamic tag DT_AARCH64_BTI_PLT. The linker uses
> this whenever it picks BTI enabled PLTs.
> All these are made according to the new AArch64 ELF ABI
> https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
>
>
> Build and regression tests all pass on aarch64-none-linux-gnu and
> new tests are added.
>
> Is this ok for trunk?
>
> Thanks
> Sudi
>
> *** bfd/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
> Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> * bfd-in.h (aarch64_plt_type, aarch64_enable_bti_type): New.
> (aarch64_bti_pac_info): New.
> (bfd_elf64_aarch64_set_options): Add aarch64_bti_pac_info argument.
> (bfd_elf32_aarch64_set_options): Likewise.
> * bfd-in2.h: Regenerate
> * elfnn-aarch64.c (PLT_BTI_ENTRY_SIZE): New.
> (PLT_BTI_SMALL_ENTRY_SIZE, PLT_BTI_TLSDESC_ENTRY_SIZE): New.
> (elfNN_aarch64_small_plt0_bti_entry): New.
> (elfNN_aarch64_small_plt_bti_entry): New.
> (elfNN_aarch64_tlsdesc_small_plt_bti_entry): New.
> (elf_aarch64_obj_tdata): Add no_enable_bti_warn and plt_type fields.
> (elf_aarch64_link_hash_table): Add plt0_entry, plt_entry and
> tlsdesc_plt_entry_size fields.
> (elfNN_aarch64_link_hash_table_create): Initialise the new fields.
> (setup_plt_values): New helper function.
> (bfd_elfNN_aarch64_set_options): Use new bp_info to set plt sizes and
> bti enable type.
> (elfNN_aarch64_allocate_dynrelocs): Use new size members instead of
> fixed macros.
> (elfNN_aarch64_size_dynamic_sections): Likewise and add checks.
> (elfNN_aarch64_create_small_pltn_entry): Use new generic pointers
> to plt stubs instead of fixed ones and update filling them according
> to the need for bti.
> (elfNN_aarch64_init_small_plt0_entry): Likewise.
> (elfNN_aarch64_finish_dynamic_sections): Likewise.
> (get_plt_type, elfNN_aarch64_get_synthetic_symtab): New.
> (elfNN_aarch64_plt_sym_val): Update size accordingly.
> (elfNN_aarch64_link_setup_gnu_properties): Set up plts if BTI GNU NOTE
> is set.
> (bfd_elfNN_get_synthetic_symtab): Define.
>
> *** binutils/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
> Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> * readelf.c (get_aarch64_dynamic_type): New.
> (get_dynamic_type): Use above for EM_AARCH64.
> (dynamic_section_aarch64_val): New.
> (process_dynamic_section): Use above for EM_AARCH64.
>
> *** include/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
> Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> * elf/aarch64.h (DT_AARCH64_BTI_PLT): New.
>
> *** ld/ChangeLog ***
>
> 2019-xx-xx Sudakshina Das <sudi.das@arm.com>
> Szabolcs Nagy <szabolcs.nagy@arm.com>
>
> * NEWS: Document --bti-nowarn.
> * emultempl/aarch64elf.em (plt_type, bti_type, OPTION_BTI_NOWARN):
> New.
> (PARSE_AND_LIST_SHORTOPTS, PARSE_AND_LIST_OPTIONS): Add bti-nowarn.
> (PARSE_AND_LIST_ARGS_CASES): Handle OPTION_BTI_NOWARN.
> * testsuite/ld-aarch64/aarch64-elf.exp: Add all the tests below.
> * testsuite/ld-aarch64/bti-plt-1.d: New test.
> * testsuite/ld-aarch64/bti-plt-1.s: New test.
> * testsuite/ld-aarch64/bti-plt-2.d: New test.
> * testsuite/ld-aarch64/bti-plt-3.d: New test.
> * testsuite/ld-aarch64/bti-plt-4.d: New test.
> * testsuite/ld-aarch64/bti-plt-5.d: New test.
> * testsuite/ld-aarch64/bti-plt-so.s: New test.
> * testsuite/ld-aarch64/bti-plt.ld: New test.
This is part of the patch series to add support for BTI and
PAC in AArch64 linker.
This patch adds a new ld command line option: --bti.
In the presence of this option, the linker enables BTI with the
GNU_PROPERTY_AARCH64_FEATURE_1_BTI feature. It also uses the BTI
enabled PLTs and marks with DT_AARCH64_BTI_PLT. This also gives a
warning in case of missing gnu notes for BTI in inputs.
All these are made according to the new AArch64 ELF ABI
https://developer.arm.com/docs/ihi0056/latest/elf-for-the-arm-64-bit-architecture-aarch64-abi-2018q4
Build and regression tests all pass on aarch64-none-linux-gnu and
new tests are added.
Is this ok for trunk?
Thanks
Sudi
*** bfd/ChangeLog ***
2019-xx-xx Sudakshina Das <sudi.das@arm.com>
* elfnn-aarch64.c (elfNN_aarch64_merge_gnu_properties): Give out
warning with --bti and mising BTI NOTE SECTION.
*** ld/ChangeLog ***
2019-xx-xx Sudakshina Das <sudi.das@arm.com>
* NEWS: Document --bti.
* emultempl/aarch64elf.em (OPTION_BTI_WARN): Define.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add --bti.
(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_BTI_WARN.
* testsuite/ld-aarch64/aarch64-elf.exp: Add below tests.
* testsuite/ld-aarch64/bti-plt-6.d: New test.
* testsuite/ld-aarch64/bti-plt-7.d: New test.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: rb10236.patch --]
[-- Type: text/x-patch; name="rb10236.patch", Size: 5654 bytes --]
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 66fe86bbac45f2de1bce43c68036ff18ffb989a8..832de531131c82912275f2f40b475e3571cd53d5 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -9852,6 +9852,25 @@ elfNN_aarch64_merge_gnu_properties (struct bfd_link_info *info,
{
uint32_t prop
= elf_aarch64_tdata (info->output_bfd)->gnu_and_prop;
+
+ /* If output has been marked with BTI using command line argument, give out
+ warning if necessary. */
+ if ((prop & GNU_PROPERTY_AARCH64_FEATURE_1_BTI)
+ && (!elf_aarch64_tdata (info->output_bfd)->no_enable_bti_warn))
+ {
+ if ((aprop && !(aprop->u.number & GNU_PROPERTY_AARCH64_FEATURE_1_BTI))
+ || (bprop && !(bprop->u.number & GNU_PROPERTY_AARCH64_FEATURE_1_BTI))
+ /* If either property is NULL, it means its bfd did not have any
+ property. */
+ || !aprop || !bprop)
+ {
+ _bfd_error_handler (_("warning: BTI turned on by --bti when "
+ "all inputs do not have BTI in NOTE "
+ "section. If this was intentional use "
+ "--bti-nowarn to turn off the warning."));
+ }
+ }
+
return _bfd_aarch64_elf_merge_gnu_properties (info, abfd, aprop,
bprop, prop);
}
diff --git a/ld/NEWS b/ld/NEWS
index 31731219ad546483ae92a7e32862986627bfc4d4..e19870f741ad072d89e4f72a1c96d2903ad9d3fd 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -13,6 +13,10 @@ Changes in 2.33:
* Add --bti-nowarn for AArch64 to enable GNU_PROPERTY_AARCH64_FEATURE_1_BTI
on output without any warnings and use PLTs protected with BTI.
+* Add --bti for AArch64 to enable GNU_PROPERTY_AARCH64_FEATURE_1_BTI
+ on output while warning about missing GNU_PROPERTY_AARCH64_FEATURE_1_BTI
+ on inputs and use PLTs protected with BTI.
+
Changes in 2.32:
* Report property change in linker map file when merging GNU properties.
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 146bfad31fd299ef5c170b269e86afd0f3e1f5b9..c2db3e9e531930f0659197219369da1ddb04275c 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -373,6 +373,7 @@ PARSE_AND_LIST_PROLOGUE='
#define OPTION_FIX_ERRATUM_843419 314
#define OPTION_NO_APPLY_DYNAMIC_RELOCS 315
#define OPTION_BTI_NOWARN 316
+#define OPTION_BTI_WARN 317
'
PARSE_AND_LIST_SHORTOPTS=p
@@ -387,6 +388,7 @@ PARSE_AND_LIST_LONGOPTS='
{ "fix-cortex-a53-843419", no_argument, NULL, OPTION_FIX_ERRATUM_843419},
{ "no-apply-dynamic-relocs", no_argument, NULL, OPTION_NO_APPLY_DYNAMIC_RELOCS},
{ "bti-nowarn", no_argument, NULL, OPTION_BTI_NOWARN},
+ { "bti", no_argument, NULL, OPTION_BTI_WARN},
'
PARSE_AND_LIST_OPTIONS='
@@ -408,6 +410,7 @@ PARSE_AND_LIST_OPTIONS='
fprintf (file, _(" --fix-cortex-a53-843419 Fix erratum 843419\n"));
fprintf (file, _(" --no-apply-dynamic-relocs Do not apply link-time values for dynamic relocations\n"));
fprintf (file, _(" --bti-nowarn Turn on Branch Target Identification mechanism and generate PLTs with BTI. Generate no warnings for missing BTI on inputs\n"));
+ fprintf (file, _(" --bti Turn on Branch Target Identification mechanism and generate PLTs with BTI. Generate warnings for missing BTI on inputs\n"));
'
PARSE_AND_LIST_ARGS_CASES='
@@ -444,6 +447,11 @@ PARSE_AND_LIST_ARGS_CASES='
bti_type = BTI_NOWARN;
break;
+ case OPTION_BTI_WARN:
+ plt_type |= PLT_BTI;
+ bti_type = BTI_WARN;
+ break;
+
case OPTION_STUBGROUP_SIZE:
{
const char *end;
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index ed0bca5b081c5c016b3f8e96619b76820aa1525d..906534b230c8905fb97a6739e1c1411683455fe3 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -400,3 +400,5 @@ run_ld_link_tests $aarch64elflinktests
run_dump_test "bti-plt-3"
run_dump_test "bti-plt-4"
run_dump_test "bti-plt-5"
+run_dump_test "bti-plt-6"
+run_dump_test "bti-plt-7"
diff --git a/ld/testsuite/ld-aarch64/bti-plt-6.d b/ld/testsuite/ld-aarch64/bti-plt-6.d
new file mode 100644
index 0000000000000000000000000000000000000000..0f94e89ba227abbcf2d01b0b0fd0c5be12db2f5c
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/bti-plt-6.d
@@ -0,0 +1,15 @@
+#name: Warn with one missing GNU NOTE BTI input
+#source: property-bti-pac1.s
+#source: property-bti-pac2.s
+#as: -mabi=lp64 -defsym __property_pac__=1
+#ld: -shared --bti
+#warning: .*: warning: BTI turned on by --bti.*$
+#readelf: -n
+
+# Should warn about the missing input BTI NOTE but should
+# still mark output as BTI
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: AArch64 feature: BTI, PAC
diff --git a/ld/testsuite/ld-aarch64/bti-plt-7.d b/ld/testsuite/ld-aarch64/bti-plt-7.d
new file mode 100644
index 0000000000000000000000000000000000000000..e4fbac4d87d746d514d109b80ccc0d0105ef444d
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/bti-plt-7.d
@@ -0,0 +1,15 @@
+#name: Warn when neither inputs has GNU NOTE BTI
+#source: bti-plt-1.s
+#source: bti-plt-2.s
+#as: -mabi=lp64
+#ld: -shared --bti
+#warning: .*: warning: BTI turned on by --bti.*$
+#readelf: -n
+
+# Should warn about the missing input BTI NOTE but should
+# still mark output as BTI
+
+Displaying notes found in: .note.gnu.property
+ Owner Data size Description
+ GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
+ Properties: AArch64 feature: BTI
next prev parent reply other threads:[~2019-03-06 10:36 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-06 10:26 [PATCH, BFD, LD, AArch64, 0/4] Add support for AArch64 BTI and PAC in the linker Sudakshina Das
2019-03-06 10:31 ` [PATCH, BFD, LD, AArch64, 1/4] Add support for GNU PROPERTIES in AArch64 for BTI and PAC Sudakshina Das
2019-03-06 10:34 ` [PATCH, BFD, LD, AArch64, 2/4] Add --bti-nowarn to enable BTI without warning and to select BTI enabled PLTs Sudakshina Das
2019-03-06 10:36 ` Sudakshina Das [this message]
2019-03-06 10:39 ` [PATCH, BFD, LD, AArch64, 4/4] Add --pac-plt to enable PLTs protected with PAC Sudakshina Das
2019-04-11 14:47 ` Szabolcs Nagy
2019-03-07 12:37 ` [PATCH, BFD, LD, AArch64, 0/4] Add support for AArch64 BTI and PAC in the linker Nick Clifton
2019-03-07 14:28 ` Sudakshina Das
2019-03-07 15:26 ` Peter Smith
2019-03-07 15:35 ` Nick Clifton
2019-03-07 15:49 ` Szabolcs Nagy
2019-03-07 15:33 ` Nick Clifton
2019-03-07 17:53 ` Sudakshina Das
2019-03-08 10:07 ` Nick Clifton
2019-03-08 11:08 ` Szabolcs Nagy
2019-03-08 11:14 ` Ramana Radhakrishnan
2019-03-08 11:46 ` Peter Smith
2019-03-08 12:32 ` Nick Clifton
2019-03-08 12:44 ` Ramana Radhakrishnan
2019-03-08 13:36 ` Sudakshina Das
2019-03-11 12:30 ` Nick Clifton
2019-03-13 11:49 ` Sudakshina Das
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=28fed67e-7286-0526-3974-7312b0418405@arm.com \
--to=sudi.das@arm.com \
--cc=Ramana.Radhakrishnan@arm.com \
--cc=binutils@sourceware.org \
--cc=nd@arm.com \
--cc=nickc@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).