This is an archive of the discontinued LLVM Phabricator instance.

Fix float abi for SUSE ARM triples
AbandonedPublic

Authored by ismail on Apr 24 2017, 5:03 AM.

Details

Summary

SUSE's ARM triples always ends with -gnueabi but all the targets are hard-float

Event Timeline

ismail created this revision.Apr 24 2017, 5:03 AM
ismail updated this revision to Diff 96382.Apr 24 2017, 5:03 AM

Fix typo

rengolin edited edge metadata.

I'm not sure this will work at all. Not because it doesn't make sense (it does), but because of several bugs in the soft vs. hard float implementation in the Triple related classes all the way to the back-end.

I'm adding other folks to discuss.

joerg edited edge metadata.Apr 24 2017, 6:06 AM

I'm not sure the results will really work that well either.

I am open to suggestions on how to do this correctly. The problem as stated is all SUSE ARM triples end with -gnueabi but they are all hard-float. Environment handling in LLVM seems to only check for the last part of the triple and not the whole string.

compnerd edited edge metadata.Apr 24 2017, 5:27 PM

I think that you should mutate the environment in the canonicalisation phase of the triple. That will allow you to use armv7-suse-linux-gnueabi and armv7-suse-linux-gnueabihf in the frontend, but have the backend always get armv7-suse-linux-gnueabihf.

ismail abandoned this revision.Apr 25 2017, 12:59 AM

compnerd has a better fix.