On 17/08/16 12:19 +0100, Joe Seymour wrote:
Disabling the original changes for targets with unsupported pointer
sizes seems
like a reasonable solution to me, but I can't see an existing
mechanism to do
so? Do others agree?
Yes, the intention was that the transaction-safe exceptions would only
be defined where it is relatively straightforward to support them. If
they're causing build failures they can be simply disabled for that
target. Maybe the configure script should check for 32-bit or 64-bit
pointers and completely disable the TM exceptions otherwise.
More generally, it might be useful to have a mechanism to disable
transactional
memory for some targets. I've observed things like register_tm_clones
taking up
space in ARM Cortex-M binaries. Presumably, this would be achieved by
adding an
--{enable,disable}-transactional-memory argument to configure? I'm happy to
work on a patch, if this is acceptable in principle.
I think that makes sense, for cases where the target can support the
TM clones but they aren't wanted.
If we add such an option then the checks for 32/64-bit pointers can go
in there, so that when the option isn't used the default depends on
the target.