Ok, thanks. I am not sure how to handle it. libgcc_s.1.dylib never appears in the configure process and we don't actually test that the Fortran compiler can link C; for 25 years it just always could. 

   Barry


On Apr 7, 2021, at 10:49 AM, Blaise A Bourdin <bourdin@lsu.edu> wrote:

No luck with -lgcc but it looks like this symbol is defined in 
/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/libgcc_s.1.dylib
00000000000039b0 T ___muldc3

So adding -lgcc_s.1 eliminates the warning.
I assume that the issue is with gcc-10 on macOS ARM. I can try to report it to upstream to although building a small test may be a bit challenging.

Regards,
Blaise

On Apr 6, 2021, at 5:32 PM, Barry Smith <bsmith@petsc.dev> wrote:


    Blaise,

    Thanks, can you try cd src/snes/tutorials and then cut and paste the huge line that you sent earlier that begins with mpif90 -Wl,-bind_at_load .....  and add at the end -lgcc and see if that line successfully links the Fortran code?

   Thanks

   Barry



On Apr 6, 2021, at 12:22 PM, Blaise A Bourdin <bourdin@lsu.edu> wrote:

Hi Barry,


  Please send configure.log 
See attached


  It would also be helpful if you could run 

  nm -o /usr/lib/lib* | grep muldc3 

That is uneventful (I have no idea how these broken symbolic link got there and can’t delete them because of SIP)…
SiMini:lib $  nm -o /usr/lib/lib* | grep muldc3 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libhunspell-1.2.0.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libhunspell-1.2.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libiodbc.2.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libiodbc.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libiodbcinst.2.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libiodbcinst.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libstdc++.6.dylib: No such file or directory.
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: error: /usr/lib/libstdc++.dylib: No such file or directory.

Blaise




  Our cross language linker tests are not adding all the libraries they need to add when using Fortran for linking.

  Barry



On Apr 6, 2021, at 11:00 AM, Matthew Knepley <knepley@gmail.com> wrote:

On Tue, Apr 6, 2021 at 11:04 AM Blaise A Bourdin <bourdin@lsu.edu> wrote:
Hi,

I am having the following warning when compiling any fortran example (currently on main, but  it’s been going on for a little while) on a ARM mac.


*******************Error detected during compile or link!*******************
See http://www.mcs.anl.gov/petsc/documentation/faq.html
/opt/HPC/petsc-main/src/snes/tutorials ex5f
*********************************************************
mpif90 -Wl,-bind_at_load -Wl,-multiply_defined,suppress -Wl,-multiply_defined -Wl,suppress -Wl,-commons,use_dylibs -Wl,-search_paths_first -Wl,-no_compact_unwind -ffree-line-length-none -fallow-argument-mismatch -fPIC -g   -ffree-line-length-none -fallow-argument-mismatch -fPIC -g    -I/opt/HPC/petsc-main/include -I/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/include -I/opt/X11/include     ex5f.F90  -Wl,-rpath,/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/lib -L/opt/HPC/petsc-main/bigsur-gcc10.2-arm64-reallybasic-g/lib -Wl,-rpath,/opt/X11/lib -L/opt/X11/lib -Wl,-rpath,/opt/homebrew/Cellar/mpich/3.4.1_2/lib -L/opt/homebrew/Cellar/mpich/3.4.1_2/lib -Wl,-rpath,/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1 -L/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/aarch64-apple-darwin20/10.2.1 -Wl,-rpath,/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10 -L/opt/homebrew/Cellar/gcc/10.2.0_4/lib/gcc/10 -lpetsc -llapack -lblas -lX11 -lc++ -ldl -lmpifort -lmpi -lpmpi -lgfortran -lemutls_w -lm -lc++ -ldl -o ex5f
warning: (arm64)  could not find object file symbol for symbol muldc3
Fortran example src/snes/tutorials/ex5f run successfully with 1 MPI process


For reference, here is how I configured petsc:
./configure     --CFLAGS='-Wimplicit-function-declaration'    --FFLAGS="-ffree-line-length-none -fallow-argument-mismatch"            --with-debugging=1                    --with-shared-libraries=1             --with-x11=1

It looks like this symbol is referenced in: sfpack.o

SiMini:petsc-main (main)$ grep -ri muldc3 bigsur-gcc10.2-arm64-reallybasic-g/*
Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.3.015.0.dylib matches
Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.3.015.dylib matches
bigsur-gcc10.2-arm64-reallybasic-g/lib/petsc/conf/check.log:warning: (arm64)  could not find object file symbol for symbol ___muldc3
Binary file bigsur-gcc10.2-arm64-reallybasic-g/lib/libpetsc.dylib matches
Binary file bigsur-gcc10.2-arm64-reallybasic-g/obj/vec/is/sf/impls/basic/sfpack.o matches

SiMini:petsc-main (main)$ nm bigsur-gcc10.2-arm64-reallybasic-g/obj/vec/is/sf/impls/basic/sfpack.o | grep muldc3
                 U ___muldc3

Google tells me it is a gcc thing for complex multiplication. Ah, I think this is the problem:


It is in the C library and you are linking from Fortran, so the compatibility libraries are not correct.

  Thanks,

    Matt
 
Any idea?
Blaise


-- 
A.K. & Shirley Barton Professor of  Mathematics
Adjunct Professor of Mechanical Engineering
Adjunct of the Center for Computation & Technology
Louisiana State University, Lockett Hall Room 344, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 Web http://www.math.lsu.edu/~bourdin



-- 
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
-- Norbert Wiener



-- 
A.K. & Shirley Barton Professor of  Mathematics
Adjunct Professor of Mechanical Engineering
Adjunct of the Center for Computation & Technology
Louisiana State University, Lockett Hall Room 344, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 Web http://www.math.lsu.edu/~bourdin

<configure.log>


-- 
A.K. & Shirley Barton Professor of  Mathematics
Adjunct Professor of Mechanical Engineering
Adjunct of the Center for Computation & Technology
Louisiana State University, Lockett Hall Room 344, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 Web http://www.math.lsu.edu/~bourdin