On 20.08.21 09:34, Richard Biener via Fortran wrote:

On Thu, Aug 19, 2021 at 10:10 PM Iain Sandoe <i...@sandoe.co.uk> wrote:
libm is not needed on Darwin, and should not be added unconditionally
even if that is (mostly) harmless since it is a symlink to libc.

tested on x86_64, i686-darwin, x86_64-linux,
OK for master?
OK.
Richard.

Looks also good to me – but for completeness and as background, I also
want to remark the following.

(At least as I understand it, I did not dig deeper.)

--- a/libgfortran/configure.ac
+++ b/libgfortran/configure.ac
...
+AC_CHECK_LIBM

This CHECK_LIBM has a hard-coded list of targets and for some (like
Darwin) it simply does not set $LIBM.

+++ b/libgfortran/Makefile.am
@@ -42,7 +42,7 @@ libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
  libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' 
$(srcdir)/libtool-version` \
         $(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la \
         $(HWCAP_LDFLAGS) \
-       -lm $(extra_ldflags_libgfortran) \
+       $(LIBM) $(extra_ldflags_libgfortran) \

I think usage like this one do not actually link '-lm' as
gcc/config/darwin.h contains:

#define LINK_SPEC  \
   ...
   %:remove-outfile(-lm) \

However, this spec change comes too early for:
--- a/libgfortran/libgfortran.spec.in
+++ b/libgfortran/libgfortran.spec.in
@@ -5,4 +5,4 @@
  #

  %rename lib liborig
-*lib: @LIBQUADSPEC@ -lm %(libgcc) %(liborig)
+*lib: @LIBQUADSPEC@  @LIBM@ %(libgcc) %(liborig)
NIT: There are two spaces instead of one before @LIBM@.

Thus, it makes sense to the unconditional '-lm' from the .spec file.

Tobias

-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955

Reply via email to