Hi Yvan, > Here is the backport of Wilco's patch (r237607) along with Kyrill's > one (r244643, which removed the remaining occurences of > aarch64_nopcrelative_literal_loads). To fix the issue the original > patch has to be modified, to keep aarch64_pcrelative_literal_loads > test for large models in aarch64_classify_symbol.
The patch looks good to me, however I can't approve it. > On trunk and gcc-7-branch the :lo12: relocations are not generated > because of Wilco's fix for pr78733 (r243456 and 243486), but my > understanding is that the bug is still present since compiling > gcc.target/aarch64/pr78733.c with -mcmodel=large brings back the > :lo12: relocations (I'll submit a patch to add the test back if my > understanding is correct). You're right, eventhough -mpc-relative-literal-loads doesn't make much sense in the large memory model, it seems best to keep the option orthogonal to enable the workaround. I've prepared a patch to fix this on trunk/GCC7. It also adds a test which we should add to your changes to GCC6 too. Wilco