Ensure that we don't produce code for pre-ARMv7 without barriers
ClosedPublic

Authored by bgamari on Dec 26 2015, 7:20 PM.

Details

Summary

We are unable to produce load/store barriers for pre-ARMv7 targets.
Phab:D894 added dummy cases to SMP.h for these barriers to prevent the
build from failing under the assumption that there are no SMP-capable
devices of this vintage. However, Trac #10433 points out that it is more
correct to simply set NOSMP for such targets.

Tested By: rwbarton

Test Plan

Validate

Diff Detail

Repository
rGHC Glasgow Haskell Compiler
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
bgamari updated this revision to Diff 5988.Dec 26 2015, 7:20 PM
bgamari retitled this revision from to Ensure that we don't produce core for pre-ARMv7 without barriers.
bgamari updated this object.
bgamari edited the test plan for this revision. (Show Details)
bgamari added reviewers: rwbarton, erikd, austin.
bgamari updated the Trac tickets for this revision.
bgamari retitled this revision from Ensure that we don't produce core for pre-ARMv7 without barriers to Ensure that we don't produce code for pre-ARMv7 without barriers.Dec 27 2015, 10:49 AM
bgamari edited edge metadata.

Anyone know anyone with hardware that could test this?

rwbarton edited edge metadata.Jan 25 2016, 8:33 AM

What kind of testing do you have in mind? I can certainly try to build this with a cross-compiler that targets armv5, is that enough?

It's certainly better than nothing.

rwbarton requested changes to this revision.Jan 25 2016, 12:06 PM
rwbarton edited edge metadata.

Well the build succeeded but I still have a threaded RTS. Seems like a case issue. Rebuilding...

This revision now requires changes to proceed.Jan 25 2016, 12:06 PM
rwbarton added inline comments.Jan 25 2016, 12:06 PM
mk/config.mk.in
189

These need to be ARMv5 ARMv6.

bgamari updated this revision to Diff 6427.Jan 25 2016, 12:43 PM
bgamari edited edge metadata.

Fix capitalization

rwbarton accepted this revision.Jan 25 2016, 1:47 PM
rwbarton edited edge metadata.

Seems to be correct now. I misunderstood the effect of ArchSupportsSMP at first. It doesn't disable the threaded runtime entirely. Rather, it makes it impossible to run on more than one capability. I'm assuming this is okay.

bgamari updated this object.Jan 25 2016, 2:16 PM
bgamari edited edge metadata.
bgamari updated this object.

Sounds reasonable to me.

Thanks Reid!

This revision was automatically updated to reflect the committed changes.