This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: dejagnu multilib options and dg-{add|additional-}options


On 23 July 2013 17:40, Janis Johnson <janis_johnson@mentor.com> wrote:
> On 07/22/2013 02:59 AM, Vidya Praveen wrote:
>> Hello,
>>
>> There are 42 test files (25 under gcc.dg) that specifies
>>
>> { dg-add-options bind_pic_locally }
>>
>> in the regression testsuite. The procedure add_options_for_bind_pic_locally
>> from lib/target-supports.exp adds -fPIE or -fpie when -fPIC or -fpic is passed
>> respectively. But this is added before the dejagnu multilib options are added.
>> So when -fPIC is passed as a multilib option, -fPIE will be unset by -fPIC
>> (see gcc/common.opt). This should have been the behaviour since the patch
>> http://gcc.gnu.org/ml/gcc-patches/2012-11/msg01026.html that brings all -fPIC
>> & -fPIE variants in a Negative loop, was applied.
>>
>> I tried fixing this in dejagnu/target.exp by adding the multilib options before
>> the other options:
>>
>> default_target_compile:
>>
>> <       append add_flags " [board_info $dest multilib_flags]"
>> ---
>>>       set add_flags " [board_info $dest multilib_flags] $add_flags"
>>
>> and ran regressions for x86_64-unknown-linux-gnu before and after the change.
>> The only difference in the results after the change was 24 new PASSes which
>> are from the testcases which either use bind_pic_locally or that use -fno-pic.
>>
>> (Interestingly, there are many test files that bind_pic_locally pass without
>> any issue before and after the change.)
>>
>> I tend to think that the options added from the test files should always win.
>> Please correct me if I'm wrong. If I'm right, is dejagnu/target.exp is the
>> best place to fix this and the way it tried to fix? Any better suggestions?
>>
>> Though this case is to do with -fPIC, I'm sure there are other options which
>> when they come as multilib options might have same issue with the some of the
>> options added by the test files or the default options.
>>
>> Regards
>> VP
>
> Ideally we would ask for that change in DejaGnu, but relying on such a
> change would require everyone testing GCC to upgrade to a version of
> DejaGnu with that fix, and I don't think we're ready to do that.
>
> Tests that add options that might override or conflict with multilib
> flags should check for those flags first and skip the test if they are
> used.  For examples, see tests in gcc.target/arm that use dg-skip-if.

Umm, the purpose of bind_pic_locally appears to be to detect the use
of -fPIC and override that behavior with -fPIE.  If I understand the
above paragraph correctly then bind_pic_locally is fundamentally
broken and all of the tests that use it need rewriting to skip if
-fPIC or -fpic is in use?

Cheers
/Marcus


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