On Wed, 10 Mar 2021, Fande Kong wrote: > On Wed, Mar 10, 2021 at 9:34 AM Satish Balay <ba...@mcs.anl.gov> wrote: > > > On Wed, 10 Mar 2021, Fande Kong wrote: > > > > > Thanks, Barry, > > > > > > It seems PETSc works fine with manually built compilers. We are pretty > > much > > > sure that the issue is related to conda. Conda might introduce extra > > flags. > > > > > > We still need to make it work with conda because we deliver our package > > via > > > conda for users. > > > > > > > > > I unset all flags from conda, and got slightly different results this > > > time. The log was attached. Anyone could explain the motivation that we > > > try to build executable without a main function? > > > > Its attempting to build a shared library - which shouldn't have a main. > > > > However - the primary issue is: > > > > >>>>> > > Executing: mpicc -o > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest > > > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest.o > > -L/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers > > -lconftest > > Possible ERROR while running linker: exit code 1 > > stderr: > > ld: can't link with a main executable file > > '/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/libconftest.dylib' > > for architecture x86_64 > > clang-11: error: linker command failed with exit code 1 (use -v to see > > invocation) > > <<< > > > > Here its built a .dylib - and attempting to use it. But the compiler gives > > the above error. > > > > Can you build with conda compilers - but outside conda env? It appears to > > have: > > > > I am already outside of conda (build), but in order to use conda compilers, > we need a few variables.
Can you send the configure.log for this build outside conda - but using conda tools. And what do you get for: /Users/kongf/miniconda3/envs/testpetsc/bin/mpicc -show /Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-clang -v src/benchmarks/sizeof.c > > > > AS=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-as > > AR=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-ar > > > > CXX_FOR_BUILD=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-clang++ > > > > INSTALL_NAME_TOOL=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-install_name_tool > > > > CC_FOR_BUILD=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-clang > > FC_FOR_BUILD=/Users/kongf/miniconda3/envs/testpetsc/bin/-gfortran > > LD=/Users/kongf/miniconda3/envs/testpetsc/bin/x86_64-apple-darwin13.4.0-ld > > > > Don't know if any one of them is making a difference. > > > > I unset all these variables, and did not make a difference. > > > > > > Also you might want to comment out > > "self.executeTest(self.resetEnvCompilers)" in setCompilers.py to see if its > > making a difference [same with self.checkEnvCompilers? > > > > Still the same issue. Might it is just a bad compiler Perhaps you can try to reproduce the above test outside configure [i.e create a .dylib, and attempt to link to it] - and attempt to debug it further. If its a broken conda compiler [or conda-ld] perhaps there is a way to use compilers/ld from outside conda - from this conda build. Satish - > > > Thanks for your help > > Fande, > > > > > > > > Satish > > > > > > > > > > Thanks, > > > > > > Fande > > > > > > Executing: mpicc -c -o > > > > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest.o > > > > > -I/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers > > > -fPIC > > > > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest.c > > > > > > Successful compile: > > > Source: > > > #include "confdefs.h" > > > #include "conffix.h" > > > #include <stdio.h> > > > int (*fprintf_ptr)(FILE*,const char*,...) = fprintf; > > > void foo(void){ > > > fprintf_ptr(stdout,"hello"); > > > return; > > > } > > > void bar(void){foo();} > > > Running Executable WITHOUT threads to time it out > > > Executing: mpicc -o > > > > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/libconftest.so > > > -dynamic -fPIC > > > > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest.o > > > > > > Possible ERROR while running linker: exit code 1 > > > stderr: > > > Undefined symbols for architecture x86_64: > > > "_main", referenced from: > > > implicit entry/start for main executable > > > ld: symbol(s) not found for architecture x86_64 > > > clang-11: error: linker command failed with exit code 1 (use -v to see > > > invocation) > > > Rejected C compiler flag -fPIC because it was not compatible > > with > > > shared linker mpicc using flags ['-dynamic'] > > > > > > > > > On Mon, Mar 8, 2021 at 7:28 PM Barry Smith <bsm...@petsc.dev> wrote: > > > > > > > > > > > Fande, > > > > > > > > I see you are using CONDA, this can cause issues since it sticks > > all > > > > kinds of things into the environment. PETSc tries to remove some of > > them > > > > but perhaps not enough. If you run printenv you will see all the mess > > it is > > > > dumping in. > > > > > > > > Can you trying the same build without CONDA environment? > > > > > > > > Barry > > > > > > > > > > > > On Mar 8, 2021, at 7:31 PM, Matthew Knepley <knep...@gmail.com> wrote: > > > > > > > > On Mon, Mar 8, 2021 at 8:23 PM Fande Kong <fdkong...@gmail.com> wrote: > > > > > > > >> Thanks Matthew, > > > >> > > > >> Hmm, we still have the same issue after shutting off all unknown > > flags. > > > >> > > > > > > > > Oh, I was misinterpreting the error message: > > > > > > > > ld: can't link with a main executable file > > > > > > '/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-6v1w4q4u/config.setCompilers/libconftest.dylib' > > > > > > > > So clang did not _actually_ make a shared library, it made an > > executable. > > > > Did clang-11 change the options it uses to build a shared library? > > > > > > > > Satish, do we test with clang-11? > > > > > > > > Thanks, > > > > > > > > Matt > > > > > > > > Thanks, > > > >> > > > >> Fande > > > >> > > > >> On Mon, Mar 8, 2021 at 6:07 PM Matthew Knepley <knep...@gmail.com> > > wrote: > > > >> > > > >>> On Mon, Mar 8, 2021 at 7:55 PM Fande Kong <fdkong...@gmail.com> > > wrote: > > > >>> > > > >>>> Hi All, > > > >>>> > > > >>>> mpicc rejected "-fPIC". Anyone has a clue how to work around this > > issue? > > > >>>> > > > >>> > > > >>> The failure is at the last step > > > >>> > > > >>> Executing: mpicc -o > > > >>> > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-6v1w4q4u/config.setCompilers/conftest > > > >>> -fPIC > > > >>> > > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-6v1w4q4u/config.setCompilers/conftest.o > > > >>> > > -L/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-6v1w4q4u/config.setCompilers > > > >>> -lconftest > > > >>> Possible ERROR while running linker: exit code 1 > > > >>> stderr: > > > >>> ld: can't link with a main executable file > > > >>> > > '/var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-6v1w4q4u/config.setCompilers/libconftest.dylib' > > > >>> for architecture x86_64 > > > >>> clang-11: error: linker command failed with exit code 1 (use -v to > > see > > > >>> invocation) > > > >>> > > > >>> but you have some flags stuck in which may or may not affect this. I > > > >>> would try shutting them off: > > > >>> > > > >>> LDFLAGS_LD=-pie -headerpad_max_install_names -dead_strip_dylibs > > -rpath > > > >>> /Users/kongf/miniconda3/envs/moose/lib > > > >>> -L/Users/kongf/miniconda3/envs/moose/lib > > > >>> > > > >>> I cannot tell exactly why clang is failing because it does not > > report a > > > >>> specific error. > > > >>> > > > >>> Thanks, > > > >>> > > > >>> Matt > > > >>> > > > >>> The log was attached. > > > >>>> > > > >>>> Thanks so much, > > > >>>> > > > >>>> Fande > > > >>>> > > > >>> > > > >>> > > > >>> -- > > > >>> 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/> > > > >>> > > > >> > > > > > > > > -- > > > > 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/> > > > > > > > > > > > > > > > > > > > >