On Wed, Jun 12, 2019 at 5:57 PM <ilia.diach...@optimitech.com> wrote: > This patch adds libgcc configuration option to disable TM clone > registry. This option helps to reduce code size for embedded targets > which do not need transactional memory support.
This looks OK to me. It is worth pointing out that ARM already ships compilers built this way, but they didn't bother adding a configure option. They just override Makefile variables in their build scripts. I think this is much cleaner as a documented configure option. One issue here is that I don't know the transactional memory support well enough to know what harm comes when we drop the tm clone registry support. Perhaps a change should be made to the compiler to disable the transactional memory support, or some subset of it. Maybe Aldy can comment on that? The intent here is to only use this for size constrained embedded targets (e.g. newlib-nano targets), and such targets are very unlikely to ever want transactional memory support. But someone might accidentally use this configure option with an x86_64-linux toolchain, and then get confusing transactional memory failures, and we might want to try to prevent that before it happens. Jim