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 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.

Janis


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