Skip to content
Snippets Groups Projects
  1. Nov 10, 2017
  2. Nov 08, 2017
    • Brad King's avatar
      Merge branch 'implicit-lib-gcceh' into release-3.9 · 482f71c4
      Brad King authored
      Merge-request: !1460
      482f71c4
    • Christian Pfeiffer's avatar
      Restore exclusion of "gcc_eh" from implicit link libraries · 41aacca7
      Christian Pfeiffer authored and Brad King's avatar Brad King committed
      Since commit v3.9.0-rc1~148^2 (Do not assume GCC libs are linked by all
      compilers, 2017-05-05) we no longer filter out all `gcc*` implicit link
      libraries.  This allows mixing of gcc and non-gcc compilers across
      languages.  However, this caused a subtle problem with how GCC makes
      exception handling symbols available to linked binaries.
      
      GCC (at least on MinGW) provides two different libraries with exception
      handling symbols:
      
      * gcc_s: A shared library with -fvisibility=default, used by -shared-libgcc.
      * gcc_eh: A static library with -fvisibility=hidden, used by -static-libgcc.
      
      The C compiler (on MinGW) defaults to -static-libgcc and uses gcc_eh.
      The C++ compiler defaults to -shared-libgcc and uses gcc_s when linking
      shared libraries and executables so that exceptions can propagate across
      shared libraries [1].  When linking a mixed-language binary, the C++
      compiler should be used along with its choice of gcc_s.  In this case
      gcc_eh should not be added even though the C compiler implies it because
      gcc_s supersedes it.
      
      Since the above-mentioned change, CMake is adding gcc_eh to C++ link
      lines that also contain C code on MinGW.  This causes both gcc_s and
      gcc_eh to be used, which is incorrect.  We can fix this simply by
      excluding gcc_eh from the C compiler's implicit link libraries.
      
      [1] https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Link-Options.html#Link-Options
      
      Fixes: #17436
      41aacca7
  3. Nov 03, 2017
  4. Nov 01, 2017
  5. Oct 31, 2017
  6. Oct 04, 2017
  7. Sep 27, 2017
  8. Sep 20, 2017
  9. Sep 19, 2017
  10. Sep 18, 2017
  11. Sep 13, 2017
  12. Sep 07, 2017
  13. Sep 06, 2017
  14. Sep 05, 2017
  15. Sep 01, 2017
    • Brad King's avatar
      Merge branch 'fix-genex-SOURCES' into release-3.9 · 2820de21
      Brad King authored
      Merge-request: !1218
      2820de21
    • Brad King's avatar
      Genex: Fix TARGET_PROPERTY value of SOURCES · 068cc545
      Brad King authored
      Refactoring in commit v3.8.0-rc1~445^2~2 (cmTarget: Move sanity checks
      and computed property access to callers, 2016-10-13) exposed a typo in
      commit v3.8.0-rc1~445^2~3 (cmGeneratorTarget: Implement
      cmTargetPropertyComputer interface, 2016-10-13).  Together they broke
      the `$<TARGET_PROPERTY:mytgt,SOURCES>` generator expression in the case
      that the `SOURCES` target property is populated in part by the
      `target_sources` command.  Add the missing `;`-separator.
      
      Fixes: #17243
      068cc545
Loading