[ld/testsuite] Skip "Mixing PIC and non-PIC" testcase on ARM/AArch64 if when no -fpie or -fPIE

Jiong Wang jiong.wang@foss.arm.com
Wed Mar 2 18:04:00 GMT 2016



On 02/03/16 17:40, H.J. Lu wrote:
> On Wed, Mar 2, 2016 at 9:36 AM, Jiong Wang <jiong.wang@foss.arm.com> wrote:
>>
>> On 02/03/16 16:40, H.J. Lu wrote:
>>> On Wed, Mar 2, 2016 at 8:08 AM, Jiong Wang <jiong.wang@foss.arm.com>
>>> wrote:
>>>>>>> Have you looked at the testcase I added? Are there anything
>>>>>>> which are target specific?
>>>>>>
>>>>>> I do have looked at the testcase, they do be purely C code.
>>>>>>
>>>>>> If the convention of generic is syntax generic instead of both syntax
>>>>>> and
>>>>>> sematics, I don't have further comment on this.
>>>>>>
>>>>>> Anyway, attached patch skips the non-pie version "Mixing PIC and
>>>>>> non-PIC"
>>>>>> testcase.
>>>>>>
>>>>>> Not sure if it's trivial enough to qualify obvious, so OK for master
>>>>>> branch?
>>>>>>
>>>>>> 2016-03-02  Jiong Wang  <jiong.wang@arm.com>
>>>>>>
>>>>>> ld/testsuite/
>>>>>>
>>>>>>      * ld-elf/shared.exp (mix_pic_and_non_pic): Only run on ARM and
>>>>>> AArch64
>>>>>>        when -fPIE or -fpie specified.
>>>>> That is wrong.  If you don't want to see FAIL, you can skip the whole.
>>>>> mix_pic_and_non_pic.  Please don't modify mix_pic_and_non_pic.
>>>>
>>>> Then, how about the updated version?
>>>>
>>>> 2016-03-02  Jiong Wang  <jiong.wang@arm.com>
>>>>
>>>> ld/testsuite/
>>>>
>>>>      * ld-elf/shared.exp: Skip "Mixing PIC and non-PIC" on ARM and AArch64
>>>>      if -fpie or -fPIE not specified.
>>>>
>>> Please use setup_xfail instead of skipping.
>>
>> setup_xfail will actually update one global xfail related flag which affect
>> the
>> pass/fail after it. so you must put "setup_xfail" accurately before the fail
>> you
>> want to xfail or the pass you want to xpass.
> There is
>
> ld-elf/comm-data.exp:setup_xfail "arm*-*-*" "ld/13802"
>
> How does it work?

I think that's because it's using run_ld_link_test, while your 
"mix_pic_and_non_pic"
is using run_cc_link_test.

 From ld.log, those compile steps in run_cc_link_test is treated as a 
seperate tesing, thus
an internal PASS is generated. So if you put setup_xfail outside 
mix_pic_and_non_pic, then
the flag setup will be wrongly taken by the later PASS and turns it into 
XPASS.

>
>



More information about the Binutils mailing list