[testsuite] Clean up effective_target cache

Christophe Lyon christophe.lyon@linaro.org
Tue Sep 1 14:12:00 GMT 2015


On 25 August 2015 at 17:31, Mike Stump <mikestump@comcast.net> wrote:
> On Aug 25, 2015, at 1:14 AM, Christophe Lyon <christophe.lyon@linaro.org> wrote:
>> Some subsets of the tests override ALWAYS_CXXFLAGS or
>> TEST_ALWAYS_FLAGS and perform effective_target support tests using
>> these modified flags.
>
>> This patch adds a new function 'clear_effective_target_cache', which
>> is called at the end of every .exp file which overrides
>> ALWAYS_CXXFLAGS or TEST_ALWAYS_FLAGS.
>
> So, a simple English directive somewhere that says, if one changes ALWAYS_CXXFLAGS or TEST_ALWAYS_FLAGS then they should do a clear_effective_target_cache at the end as the target cache can make decisions based upon the flags, and those decisions need to be redone when the flags change would be nice.
>
> I do wonder, do we need to reexamine when setting the flags?  I’m thinking of a sequence like: non-thumb default, is_thumb, set flags (thumb), is_thumb.  Anyway, safe to punt this until someone discovers it or is reasonable sure it happens.
>
> Anyway, all looks good.  Ok.
>
Here is what I have committed (r227372).

I updated the comment before clear_effective_target_cache, and copied
the directive you suggested above.
I also added a test to check if $et_prop_list exists before clearing
(there were error messages otherwise).

Christophe.

>> However, I noticed that lib/g++.exp changes ALWAYS_CXXFLAGS, but does
>> not appear to restore it. In doubt, I didn't change it.
>
> Yeah, I examined it.  It seems like it might not matter, as anyone setting and unsetting would come in cleared, and if they didn’t, it should be roughly the same exact state, meaning, no clearing necessary.  I think it is safe to punt this until someone finds a bug or can see a way that it would matter.  I also don’t think it would hurt to clear, if someone wanted to refactor the code a bit and make the clearing and the cleanup a little more automatic.  I’m thinking of a RAII style code in which the dtor runs the clear.  Not sure if that is even possible in tcl.  [ checking ] Nope, maybe not.  Oh well.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: et_cache.patch
Type: text/x-patch
Size: 5946 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150901/274b6297/attachment.bin>


More information about the Gcc-patches mailing list