Prevent multiple semantic running for statements
fix Issue 11171 - text relocations in shared phobos library

- Read-only data with relocations cannot be added to CDATA,
  because text relocations are prohibited by many security
  checks (SELinux).
  Also text relocations effectively break sharing of
  read-only segments across multiple processes.
use .data.rel.ro segment for constant data with relocations

- The runtime linker will mark this as read only
  after relocations are processed.
fix non-PIC relocation in 32-bit dso thunk

- causes dynamic TEXT relocations
need GOT only for PIC code (x86_32)
Move Statement::toCBuffer into a visitor
Merge pull request #3237 from yebblies/statementtocbuffer

[DDMD] [refactor] Move Statement::toCBuffer into a visitor
Merge pull request #3209 from 9rnsr/fix11939

Prevent multiple semantic running for statements
Merge pull request #3229 from MartinNowak/fix11171b

fix non-PIC relocation in 32-bit dso thunk
Merge pull request #3187 from MartinNowak/fix11171

[dll] fix Issue 11171 – Text relocations in Phobos shared library
fix Issue 12089 - std.utf.validate and inout(char[]) failts to compile
Revert "Merge pull request #3209 from 9rnsr/fix11939"

This reverts commit 931c72761178a224d44798813ff2667d7fb13e46, reversing
changes made to 3f5d722f6dbca011c60c3282d88ec024d6c06709.

Because it's incorrectly merged change.
Merge pull request #3241 from 9rnsr/RevertPull3209

Revert "Merge pull request #3209 from 9rnsr/fix11939"
Merge pull request #3239 from 9rnsr/fix12089

[REG2.065a] Issue 12089 - std.utf.validate and inout(char[]) failts to compile
Move Expression::implicitCastTo into a visitor class
Merge pull request #3246 from yebblies/implicitcastto2

[DDMD] [refactor] Move Expression::implicitCastTo into a visitor class
Refactor Type::toCBuffer* and helpers into a visitor class in hdrgen.c

- Move the main function Type::toCBuffer2 into the visitor class
- Move TypeQualified::toCBuffer2Helper into an internal helper function
- Remove one-caller function attributesToCBuffer into caller
- Factor out repeated safety and linkage printing
- Rename functionToCBuffer2 to functionToBufferWithIdent
- Rename toCBufferWithAttributes to functionToBufferFull
- Do special-case checking in Type::toCBuffer instead of overriding in TypeFunction::toCBuffer and TypeError::toCBuffer
- Move Type::toCBuffer3 into internal helper visitWithMask
- Rename toCBuffer2 to toBufferShort and make it a free function
- Move Type::toCBuffer into a free function
Clean up errors in implicitCastTo refactoring not caught by the C++ compiler.
Merge pull request #3248 from yebblies/implicitcasttofixup

Clean up errors in implicitCastTo refactoring not caught by the C++ compiler
Merge pull request #3238 from yebblies/typetocbuffer

[DMDD] [refactor] Move Type::toCBuffer into a visitor class