On Wed, Mar 10, 2021 at 12:05 PM Barry Smith <bsm...@petsc.dev> wrote:
> Fande, > > Please add in config/BuildSystem/config/framework.py line 528 two new > lines > > # pgi dumps filename on stderr - but returns 0 errorcode' > lines = [s for s in lines if lines != 'conftest.c:'] > # in case -pie is always being passed to linker > lines = [s for s in lines if s.find('-pie being ignored. It is only > used when linking a main executable') < 0] > > Barry > > You have (another of Conda's "take over the world my way" approach) > > LDFLAGS_LD=-pie -headerpad_max_install_names -dead_strip_dylibs -rpath > /Users/kongf/miniconda3/envs/testpetsc/lib > -L/Users/kongf/miniconda3/envs/testpetsc/lib > > Executing: mpicc -o > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest > -dynamiclib -single_module > /var/folders/tv/ljnkj46x3nq45cp9tbkc000c0000gn/T/petsc-pkset22y/config.setCompilers/conftest.o > Possible ERROR while running linker: > stderr: > ld: warning: -pie being ignored. It is only used when linking a main > executable > Rejecting C linker flag -dynamiclib -single_module due to > > ld: warning: -pie being ignored. It is only used when linking a main > executable > > This is the correct link command for the Mac but it is being rejected due > to the warning message. > Could we somehow skip warning messages? Fande > > > On Mar 10, 2021, at 10:11 AM, Fande Kong <fdkong...@gmail.com> 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? > > 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/> >> >> >> <configure.log> > > >