llvm backend: Put string constants in .rodata.str.* sections (#13265)
authorReid Barton <rwbarton@gmail.com>
Thu, 9 Mar 2017 15:42:49 +0000 (10:42 -0500)
committerBen Gamari <ben@smart-cactus.org>
Thu, 9 Mar 2017 15:42:58 +0000 (10:42 -0500)
commit90009cf62bcebf875e68af625dbdbfc3c2f71717
treee1eeb7fbca85ae9d940393240beab65087a76152
parent7b087aeba45a7a70a5553ef4c116ee67660423e8
llvm backend: Put string constants in .rodata.str.* sections (#13265)

The .cstring.* sections don't get merged by the linker (bfd or gold).
That's bad, and especially bad in #13265 where it caused the number of
sections to exceed what is apparently an internal limit in ld.bfd.

Test Plan:
I can only test this on Linux, and I am guessing at what
the correct behavior is on Mac OS and Windows (and AIX I suppose).
Testers on other platforms would be much appreciated, though I
understand that the LLVM backend is broken on Mac OS currently for
other reasons (#13378).

Reviewers: olsner, austin, xnyhps, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D3282
compiler/llvmGen/LlvmCodeGen/Data.hs