1)
make V=1 PETSC_DIR=/thfs1/home/mkcode/tianya/software/petsc-3.18.1 PETSC_ARCH=arch-linux-c-debug all
V=1 imprimirá todos os comandos de compilação
2) Pode-se ver que o padrão é -g -O0 ou -g3 -O0
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/ipm/ipm.c -o arch-linux-c-debug/obj/tao/constrained/impls/ipm/ipm.o
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/admm/admm.c -o arch-linux-c-debug/obj/tao/constrained/impls/admm/admm.o
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpif90 -c -Wall -ffree-line-length-none -ffree-line-length-0 -Wno-lto-type-mismatch -Wno-unused-dummy-argument -g -O0 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/ksp/f90-mod/petsckspdefmod.F90 -o arch-linux-c-debug/obj/ksp/f90-mod/petsckspdefmod.o -J/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include
/thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g3 -O0 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -MMD -MP /thfs1/home/mkcode/tianya/software/petsc-3.18.1/src/tao/constrained/impls/ipm/pdipm.c -o arch-linux-c-debug/obj/tao/constrained/impls/ipm/pdipm.o
3) Sinto que este arquivo pode ser alterado
config/BuildSystem/config/package.py:250: if flag in ['-g','-g3','-Z7']:
config/BuildSystem/config/compilerOptions.py:41: flags.extend([' -g3','-O0'])
config/BuildSystem/config/compilerOptions.py:159: # -g3 causa um como SEGV no OSX
4)
grep -rn \\-g3 *
Binary file config/BuildSystem/config/__pycache__/compilerOptions.cpython-38.pyc matches
Binary file config/BuildSystem/config/__pycache__/package.cpython-38.pyc matches
config/BuildSystem/config/package.py:250: if flag in ['-g','-g3','-Z7']:
config/BuildSystem/config/compilerOptions.py:41: flags.extend(['-g3','-O0'])
config/BuildSystem/config/compilerOptions.py:159: # -g3 causes an as SEGV on OSX
config/BuildSystem/config/compilerOptions.py:268: # g77 3.2.3 preprocesses the file into nothing if we give -g3
Binary file config/BuildSystem/config/packages/__pycache__/libpng.cpython-38.pyc matches
config/BuildSystem/config/packages/libpng.py:29: # Switch -g3 to -g - as libpng build can break with -g3 ref - https://github.com/glennrp/libpng/issues/254
config/BuildSystem/config/packages/libpng.py:32: cflags = cflags.replace('-g3','-g')
Binary file share/petsc/datafiles/meshes/barycentricallyrefinedcube.h5 matches
Binary file src/ksp/ksp/tutorials/ex1 matches
Binary file src/ksp/ksp/tutorials/ex45 matches
5)
Rever
249 for flag in cflags.split():
250 if flag in ['-g','-g3','-Z7','-pg']:
251 outflags.append(flag)
6)
Using C compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -o .o -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0
mpicc -show: gcc -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C compiler version: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using C++ compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicxx -o .o -c -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -g -O0 -std=gnu++17 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include
Using C compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicc -o .o -c -Wall -Wwrite-strings -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0
mpicc -show: gcc -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C compiler version: gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using C++ compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpicxx -o .o -c -Wall -Wwrite-strings -Wno-strict-aliasing -Wno-unknown-pragmas -Wno-lto-type-mismatch -fstack-protector -fvisibility=hidden -pg -O0 -std=gnu++17 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include
mpicxx -show: g++ -fPIC -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include -L/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -lmpicxx -Wl,-rpath -Wl,/thfs1/software/mpich/mpi-n-gcc9.3.0/lib -Wl,--enable-new-dtags -lmpi
C++ compiler version: g++ (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
Using Fortran compile: /thfs1/software/mpich/mpi-n-gcc9.3.0/bin/mpif90 -o .o -c -Wall -ffree-line-length-none -ffree-line-length-0 -Wno-lto-type-mismatch -Wno-unused-dummy-argument -pg -O0 -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/include -I/thfs1/home/mkcode/tianya/software/petsc-3.18.1/arch-linux-c-debug/include -I/thfs1/software/mpich/mpi-n-gcc9.3.0/include
Resumir:
Rever
Em petsc-3.18.1/config/BuildSystem/config/compilerOptions.py, -g foi alterado para -pg, o que parece estar ok no momento.
pergunta:
O arquivo gmon.out exigido pelo gprof não pode ser gerado, provavelmente por causa da biblioteca de vínculo dinâmico.