<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cmake.git/Modules/FortranCInterface, branch master</title>
<subtitle>gitlab.kitware.com: cmake/cmake.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/'/>
<entry>
<title>Modules:Check,GenerateExportHeader: include only what's needed</title>
<updated>2023-03-13T14:36:09+00:00</updated>
<author>
<name>scivision</name>
<email>scivision@users.noreply.github.com</email>
</author>
<published>2023-03-10T03:08:45+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=03c6ebf2b53956d9d8d035f9bf67bb73caca65f3'/>
<id>03c6ebf2b53956d9d8d035f9bf67bb73caca65f3</id>
<content type='text'>
GenerateExportHeader had a hidden state requirement that other
modules were included first. Considering include_guard, Modules
should include all they actually use.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GenerateExportHeader had a hidden state requirement that other
modules were included first. Considering include_guard, Modules
should include all they actually use.
</pre>
</div>
</content>
</entry>
<entry>
<title>Modules: Drop redundant check logging to CMakeOutput.log and CMakeError.log</title>
<updated>2023-01-18T21:41:01+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2023-01-13T20:16:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=0f688386eabafb1e70a172004df8be4d9dc1d037'/>
<id>0f688386eabafb1e70a172004df8be4d9dc1d037</id>
<content type='text'>
`try_compile` and `try_run` now automatically log checks using them to
`CMakeConfigureLog.yaml`.

Add `LOG_DESCRIPTION` arguments to some `try_compile` calls to
replace the description previously written to the old logs.

Issue: #23200
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`try_compile` and `try_run` now automatically log checks using them to
`CMakeConfigureLog.yaml`.

Add `LOG_DESCRIPTION` arguments to some `try_compile` calls to
replace the description previously written to the old logs.

Issue: #23200
</pre>
</div>
</content>
</entry>
<entry>
<title>Modules: Use new keyword-dispatched try_compile signature</title>
<updated>2022-09-16T17:14:51+00:00</updated>
<author>
<name>Matthew Woehlke</name>
<email>matthew.woehlke@kitware.com</email>
</author>
<published>2022-09-16T17:14:51+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=d00d8537f6c52997f41535634c110116900e95c9'/>
<id>d00d8537f6c52997f41535634c110116900e95c9</id>
<content type='text'>
Modify modules that ship with CMake and use the project flavor of
try_compile to use the new signature added by commit 56ae40cc59
(try_compile: Add PROJECT keyword-dispatched signature, 2022-09-14).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modify modules that ship with CMake and use the project flavor of
try_compile to use the new signature added by commit 56ae40cc59
(try_compile: Add PROJECT keyword-dispatched signature, 2022-09-14).
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Add support for LLVMFlang mangling</title>
<updated>2022-09-09T14:37:56+00:00</updated>
<author>
<name>Gilles Gouaillardet</name>
<email>gilles@rist.or.jp</email>
</author>
<published>2022-09-09T14:23:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=0f5b6dd215439304f701284390127469dcf64ccb'/>
<id>0f5b6dd215439304f701284390127469dcf64ccb</id>
<content type='text'>
The following `module.f90` file

    module mymodule
    contains
      subroutine mysub()
      end subroutine
    end module

when compiled with `flang-new` (from LLVM 15.0.0) generate the
`_QMmymodulePmysub` symbol.

    $ flang-new -c module.f90
    $ nm module.o
    0000000000000000 T _QMmymodulePmysub

This commit fixes the regular expressions accordingly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following `module.f90` file

    module mymodule
    contains
      subroutine mysub()
      end subroutine
    end module

when compiled with `flang-new` (from LLVM 15.0.0) generate the
`_QMmymodulePmysub` symbol.

    $ flang-new -c module.f90
    $ nm module.o
    0000000000000000 T _QMmymodulePmysub

This commit fixes the regular expressions accordingly.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge topic 'FortranCInterface-gcc12'</title>
<updated>2022-05-17T12:47:31+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2022-05-17T12:47:24+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=2ef9865f090eaf201382cbf737db1c8064e9364e'/>
<id>2ef9865f090eaf201382cbf737db1c8064e9364e</id>
<content type='text'>
cb616d43d6 FortranCInterface: Fix failure with gfortran 12 and Clang

Acked-by: Kitware Robot &lt;kwrobot@kitware.com&gt;
Merge-request: !7266
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cb616d43d6 FortranCInterface: Fix failure with gfortran 12 and Clang

Acked-by: Kitware Robot &lt;kwrobot@kitware.com&gt;
Merge-request: !7266
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Fix failure with gfortran 12 and Clang</title>
<updated>2022-05-16T15:18:00+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2022-05-16T15:15:34+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=cb616d43d6f0912f3b4ab61d210cebe42dbfffb3'/>
<id>cb616d43d6f0912f3b4ab61d210cebe42dbfffb3</id>
<content type='text'>
The C flags added by commit 6a0ce19ce1 (FortranCInterface: Fix
compatibility with GCC gfortran 12 LTO, 2022-01-19, v3.22.2~5^2)
should only be added for the GNU C compiler.

Fixes: #23500
Issue: #23123
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The C flags added by commit 6a0ce19ce1 (FortranCInterface: Fix
compatibility with GCC gfortran 12 LTO, 2022-01-19, v3.22.2~5^2)
should only be added for the GNU C compiler.

Fixes: #23500
Issue: #23123
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Fix mangling detection for x86_64 on arm64 macOS</title>
<updated>2022-02-11T16:56:58+00:00</updated>
<author>
<name>Brad King</name>
<email>brad.king@kitware.com</email>
</author>
<published>2022-02-11T16:51:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=58af150a74d8da81255689dd4981aed8f45fff03'/>
<id>58af150a74d8da81255689dd4981aed8f45fff03</id>
<content type='text'>
Fixes: #23218
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: #23218
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Fix compatibility with GCC gfortran 12 LTO</title>
<updated>2022-01-19T19:47:38+00:00</updated>
<author>
<name>Björn Esser</name>
<email>besser82@fedoraproject.org</email>
</author>
<published>2022-01-19T16:26:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=6a0ce19ce1cb594cdec19bacc9fc7a38156e38da'/>
<id>6a0ce19ce1cb594cdec19bacc9fc7a38156e38da</id>
<content type='text'>
Since version 12.0 the GCC Fortran compiler has implemented "WG5/N1942",
which causes, if link-time opmization is enabled, obfuscation of hard-coded
string values in the compiler objects and its resulting ELF-binaries.

This causes the CMake-internal detection of the mangling scheme for the
naming of subroutines to fail.  Thus we must ensure to have any link-time
optimization features to be disabled on the executable file we perform the
detection on.

The static libraries, however, must be build with LTO and non-LTO objects,
as that will ensure the verify step will operate on IPO objects, if building
those is requested by the system compiler flags.

Fixes: #23123

Signed-off-by: Björn Esser &lt;besser82@fedoraproject.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since version 12.0 the GCC Fortran compiler has implemented "WG5/N1942",
which causes, if link-time opmization is enabled, obfuscation of hard-coded
string values in the compiler objects and its resulting ELF-binaries.

This causes the CMake-internal detection of the mangling scheme for the
naming of subroutines to fail.  Thus we must ensure to have any link-time
optimization features to be disabled on the executable file we perform the
detection on.

The static libraries, however, must be build with LTO and non-LTO objects,
as that will ensure the verify step will operate on IPO objects, if building
those is requested by the system compiler flags.

Fixes: #23123

Signed-off-by: Björn Esser &lt;besser82@fedoraproject.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Fix regression in timestamp check</title>
<updated>2021-10-01T17:00:18+00:00</updated>
<author>
<name>Seth R Johnson</name>
<email>johnsonsr@ornl.gov</email>
</author>
<published>2021-10-01T01:48:26+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=2a00e5072d0639a4b88bee811df2c5acce37ea62'/>
<id>2a00e5072d0639a4b88bee811df2c5acce37ea62</id>
<content type='text'>
Since commit d7c8030541 (FortranCInterface: Fix misuse of IS_NEWER_THAN
in timestamp check, 2021-02-21, v3.21.0-rc1~631^2~3), FortranCInterface
checks for `Output.cmake.in` in the build tree instead of the source
tree as before.  This caused it to always re-run the detection.

Fixes: #22709
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since commit d7c8030541 (FortranCInterface: Fix misuse of IS_NEWER_THAN
in timestamp check, 2021-02-21, v3.21.0-rc1~631^2~3), FortranCInterface
checks for `Output.cmake.in` in the build tree instead of the source
tree as before.  This caused it to always re-run the detection.

Fixes: #22709
</pre>
</div>
</content>
</entry>
<entry>
<title>FortranCInterface: Fix misuse of IS_NEWER_THAN in timestamp check</title>
<updated>2021-02-22T16:02:37+00:00</updated>
<author>
<name>Craig Scott</name>
<email>craig.scott@crascit.com</email>
</author>
<published>2021-02-21T07:04:28+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/cmake.git/commit/?id=d7c80305410b728fce426ff0891ac9a28c4168e5'/>
<id>d7c80305410b728fce426ff0891ac9a28c4168e5</id>
<content type='text'>
When using a file system which only has second resolution timestamps,
there is a reasonably high likelihood of timestamps being the same.
The IS_NEWER_THAN test returns true when timestamps are the same,
so don't redo detection when they match exactly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When using a file system which only has second resolution timestamps,
there is a reasonably high likelihood of timestamps being the same.
The IS_NEWER_THAN test returns true when timestamps are the same,
so don't redo detection when they match exactly.
</pre>
</div>
</content>
</entry>
</feed>
