This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: RFC: section merge test (ld-elf)

> -----Original Message-----
> From: Nick Clifton []
> Sent: 03 May 2016 15:57
> To: Sivanupandi, Pitchumani <>;
> Subject: Re: RFC: section merge test (ld-elf)
> Hi Sivanupandi,
> > Test flags1.s expects output (after objcopy) have one program header.
> > But sections are merged to a segment while linking itself (same for
> > native as well). Is that expected from this testcase?
> > Is that testcase intended to check merge of sections after objcopy
> > with updated flags?
> Yes and no.  The purpose of the test is to check that the flags have been
> changed for the .post_text_reserve section.  It does this however, in a
> rather roundabout way by checking to see if the .text section and the
> .post_text_reserve_section have been combined into a single program
> segment.  (They were in separate segments before the objcopy because they
> had incompatible flags.  They can be merged into the same segment after
> the objcopy because their flags are not compatible.  This merging does not
> have to happen though, it is only an optimization that the linker is free
> to ignore).
> If you want to remove the XFAIL for the AVR for this test, then that would
> be fine with me.  If you feel like more of a challenge, then rewriting
> this test so that it passes "-S --wide" to readelf, instead of "-l --
> wide", and then checks the section flags, would be a great way to improve
> the test and make it work with a wider range of targets.

Hi Nick,

Thanks. I have included the patch.
This removes avr from xfail list in flags1.d and merge.d tests.
Test flags1.d is updated to dump section headers and validates the section
flags as set by objcopy.

If ok, could you please commit?


2016-05-05  Pitchumani Sivanupandi  <>

	* testsuite/ld-elf/flags1.d (readelf): Dump section header instead program headers.
	(xfail): Remove avr-*-*.
	Update regex to check the section flags.
	* testsuite/ld-elf/merge.d (xfail): Remove avr-*-*.

diff --git a/ld/testsuite/ld-elf/flags1.d b/ld/testsuite/ld-elf/flags1.d
index e7c6b4f..09ac477 100644
--- a/ld/testsuite/ld-elf/flags1.d
+++ b/ld/testsuite/ld-elf/flags1.d
@@ -1,11 +1,11 @@
 #name: --set-section-flags test 1 (sections)
 #ld: -Tflags1.ld
 #objcopy_linked_file: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code
-#readelf: -l --wide
-#xfail: "avr-*-*" "dlx-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*"
+#readelf: -S --wide
+#xfail: "dlx-*-*" "h8300-*-*" "i960-*-*" "ip2k-*-*" "m32r-*-*"
 #xfail: "moxie-*-*" "mt-*-*" "visium-*-*" "*-*-nacl*"
 #xfail: "*-*-hpux*" "hppa*64*-*-*"
-# Fails on the AVR, DLX, H8300, I960, IP2K, M32R, MOXIE, MT, VISIUM
+# Fails on the DLX, H8300, I960, IP2K, M32R, MOXIE, MT, VISIUM
 #  and all NaCl targets,
 #  because the two sections are not merged into one segment.
 #  (There is no good reason why they have to be).
@@ -13,11 +13,8 @@
 # Fails on hppa64 because a PHDR is always added.
-Program Headers:
-  Type.*
-  LOAD +0x[0-9a-f]+ 0x0*0 0x0*0 0x0*01(6[1-9a-f]|70) 0x0*01(6[1-9a-f]|70) RWE 0x[0-9a-f]+
+Section Headers:
-  Segment Sections...
-   00[ \t]+.text .post_text_reserve[ \t]*
+  \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX.*
+  \[[ 0-9]+\] \.post_text_reserve.*[ \t]+PROGBITS[ \t0-9a-f]+AX.*
diff --git a/ld/testsuite/ld-elf/merge.d b/ld/testsuite/ld-elf/merge.d
index 17f3c06..7c1e4f0 100644
--- a/ld/testsuite/ld-elf/merge.d
+++ b/ld/testsuite/ld-elf/merge.d
@@ -1,7 +1,7 @@
 #source: merge.s
 #ld: -T merge.ld
 #objdump: -s
-#xfail: "avr-*-*" "bfin-*-*" "cr16-*-*" "cris*-*-*" "crx-*-*" "d10v-*-*" "d30v-*-*"
+#xfail: "bfin-*-*" "cr16-*-*" "cris*-*-*" "crx-*-*" "d10v-*-*" "d30v-*-*"
 #xfail: "dlx-*-*" "fr30-*-*" "frv-*-*" "hppa*64*-*-*" "h8300-*-*" "score-*-*"
 #xfail: "i370-*-*" "i860-*-*" "i960-*-*" "ip2k-*-*" "iq2000-*-*" "lm32-*-*"
 #xfail: "mcore-*-*" "mn102*-*-*" "ms1-*-*" "mep-*-*"

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]