[petsc-dev] Fortran macOS Linkage Warning

Matthew Knepley knepley at gmail.com
Fri Mar 12 06:01:14 CST 2021


On Fri, Mar 12, 2021 at 3:44 AM Pierre Jolivet <pierre at joliv.et> wrote:

> Sorry to dig up this old thread, but this is triggering false positives
> while make checking for people who don’t want to toy around with
> MACOSX_DEPLOYMENT_TARGET.
> Could/should we filter this somehow, or have BuildSystem tinker with the
> environment variable itself?
>

I worry about suppressing this warning because the variable has
real consequences for linking (especially if CMake is somehow involved),
and it might make it harder to debug. I would rather have a large warning
suggesting people unset this.

  Thanks,

     Matt


> Thanks,
> Pierre
>
> $ make check
> Running check examples to verify correct installation
> Using PETSC_DIR=/Users/jolivet/repo/petsc and
> PETSC_ARCH=arch-darwin-c-debug-real
> *******************Error detected during compile or
> link!*******************
> See http://www.mcs.anl.gov/petsc/documentation/faq.html
> /Users/jolivet/repo/petsc/src/snes/tutorials ex19
>
> *********************************************************************************
> mpicc -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 -Wall -g  -Wall -g
>  -I/Users/jolivet/repo/petsc/include
> -I/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/include
> -I/opt/intel/mkl/include     ex19.c
>  -Wl,-rpath,/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib
> -L/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib
> -Wl,-rpath,/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib
> -L/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib
> -Wl,-rpath,/opt/intel/mkl/lib -L/opt/intel/mkl/lib
> -Wl,-rpath,/opt/intel/lib -L/opt/intel/lib
> -Wl,-rpath,/usr/local/Cellar/mpich/3.4.1_1/lib
> -L/usr/local/Cellar/mpich/3.4.1_1/lib
> -Wl,-rpath,/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/x86_64-apple-darwin20/10.2.0
> -L/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/gcc/x86_64-apple-darwin20/10.2.0
> -Wl,-rpath,/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10
> -L/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10 -lpetsc -lHYPRE -lcmumps
> -ldmumps -lsmumps -lzmumps -lmumps_common -lpord -lmkl_scalapack_lp64
> -lmkl_blacs_mpich_lp64 -lEl -lElSuiteSparse -lpmrrr -lp4est -lsc -liomp5
> -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lparmmg -lmmg -lmmg3d
> -lptesmumps -lptscotchparmetis -lptscotch -lptscotcherr -lesmumps -lscotch
> -lscotcherr -lparmetis -lmetis -ltriangle -ltet -lz -lX11 -lc++ -ldl
> -lmpifort -lmpi -lpmpi -lgfortran -lquadmath -lm -lc++ -ldl -o ex19
> ld: warning: dylib (/usr/local/Cellar/mpich/3.4.1_1/lib/libmpifort.dylib)
> was built for newer macOS version (11.1) than being linked (11.0)
> ld: warning: dylib
> (/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/libgfortran.dylib) was built for
> newer macOS version (11.2) than being linked (11.0)
> ld: warning: dylib
> (/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/libquadmath.dylib) was built for
> newer macOS version (11.2) than being linked (11.0)
> ld: warning: dylib
> (/usr/local/Cellar/gcc/10.2.0_4/lib/gcc/10/libquadmath.0.dylib) was built
> for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib/libcmumps.a(cana_aux.o))
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib/libdmumps.a(dana_aux.o))
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib/libsmumps.a(sana_aux.o))
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib/libzmumps.a(zana_aux.o))
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (/Users/jolivet/repo/petsc/arch-darwin-c-debug-real/lib/libmumps_common.a(front_data_mgt_m.o))
> was built for newer macOS version (11.2) than being linked (11.0)
> C/C++ example src/snes/tutorials/ex19 run successfully with 1 MPI process
>
>
> On 15 Feb 2021, at 6:08 PM, Jacob Faibussowitsch <jacob.fai at gmail.com>
> wrote:
>
> Yes, this also seems to work on my end.
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
>
> On Feb 15, 2021, at 12:05, Satish Balay <balay at mcs.anl.gov> wrote:
>
> Does setting MACOSX_DEPLOYMENT_TARGET also work?
>
> Satish
>
> On Mon, 15 Feb 2021, Jacob Faibussowitsch wrote:
>
> I think this problem ultimately stems from the fact that gcc/g++ and
> gfortran are not from the same people on macOS. It seems like clang is
> configured to build for 11.0 target, whilst gcc defaults to newest
> available target. And indeed if I change my compile command there is no
> warning:
>
> mkdir -p build && gfortran -c -o ./build/conftest.o conftest.F90 && gcc-10
> -o ./build/libconftest.dylib ./build/conftest.o -dynamiclib -undefined
> dynamic_lookup && rm -rf ./build
>
> Note I now call gcc-10 as the linker which is the __actual__ gcc (not
> clang in a trench coat).
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
>
> On Feb 15, 2021, at 11:46, Jacob Faibussowitsch <jacob.fai at gmail.com>
> wrote:
>
> Ok so if I pass -mmacosx-version-min=11.2 to the linker the warning
> disappears...
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
>
> On Feb 15, 2021, at 11:41, Jacob Faibussowitsch <jacob.fai at gmail.com <
> mailto:jacob.fai at gmail.com <jacob.fai at gmail.com>>> wrote:
>
> I can reproduce the warning compiling just that simple code you listed.
> This is the compile command:
>
> mkdir -p build && gfortran -c -o ./build/conftest.o conftest.F90 && gcc -o
> ./build/libconftest.dylib ./build/conftest.o -dynamiclib -undefined
> dynamic_lookup && rm -rf ./build
>
> And error:
> ld: warning: object file (./build/conftest.o) was built for newer macOS
> version (11.2) than being linked (11.0)
>
> Note I recently uninstalled and reinstalled command line tools too, which
> does not seem to have fixed it.
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
>
> On Feb 15, 2021, at 11:30, Satish Balay <balay at mcs.anl.gov <
> mailto:balay at mcs.anl.gov <balay at mcs.anl.gov>>> wrote:
>
> Here is the compile command and the warning:
>
>
> ===== Checking linker
> Executing: gfortran -c -o
> /var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers/conftest.o
> -I/var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers
>   /var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers/conftest.F90
>
> Successful compile:
> Source:
>     function foo(a)
>     real:: a,x,bar
>     common /xx/ x
>     x=a
>     foo = bar(x)
>     end
> Executing: gcc  -o
> /var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers/libconftest.dylib
>  -dynamiclib -single_module -undefined dynamic_lookup -multiply_defined
> suppress
>  /var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers/conftest.o
>
> Possible ERROR while running linker:
> stderr:
> ld: warning: object file
> (/var/folders/9w/7dlszmmn6q1gd5yf3r9n79bc0000gn/T/petsc-dk9aiv7x/config.setCompilers/conftest.o)
> was built for newer macOS version (11.2) than being linked (11.0)
>         Accepted FC PIC code without compiler flag
>
> =============================================================================================
> <<<<<<
>
> Its likely due to the way brew built gfortran. You can try compiling a
> simple test code and see if you can reproduce this warning.
>
> There is a related issue at:
>
> https://github.com/spack/spack/issues/21644 <
> https://github.com/spack/spack/issues/21644>
>
> Satish
>
>
> On Sat, 13 Feb 2021, Jacob Faibussowitsch wrote:
>
> Hello All,
>
> I’ve been getting these warnings for weeks, at first I figured it was due
> to gfortran brew package not being updated for Big Sur, but since it has
> persisted through a few gfortran brew updates I’m thinking it may be petsc
> related. This is on clean build on master.
>
> ld: warning: object file
> (master-arch-darwin-c-debug/obj/sys/classes/bag/f2003-src/fsrc/bagenum.o)
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (master-arch-darwin-c-debug/obj/sys/f90-src/fsrc/f90_fwrap.o) was built for
> newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (master-arch-darwin-c-debug/obj/sys/objects/f2003-src/fsrc/optionenum.o)
> was built for newer macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (master-arch-darwin-c-debug/obj/sys/fsrc/somefort.o) was built for newer
> macOS version (11.2) than being linked (11.0)
> ld: warning: object file
> (master-arch-darwin-c-debug/obj/sys/f90-mod/petscsysmod.o) was built for
> newer macOS version (11.2) than being linked (11.0)
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
> Cell: (312) 694-3391
>
>
>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210312/c2f695d3/attachment.html>


More information about the petsc-dev mailing list