error while compiling PnMPI with hires libs on a clean CentOS7 installation.
Open
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 22
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
On a clean Centos 7 machine (Intel64):
packages
sudo yum -y group install "Development Tools"
sudo yum -y install cmake screen gcc-gfortran git help2man install environment-modules mpich-devel
build llnl-hires-timers and PnMPI
git clone https://github.com/LLNL/llnl-hires-timers.git
mkdir llnl-hires-timers/build && cd llnl-hires-timers/build && cmake .. && make &&sudo make install
git clone https://github.com/LLNL/PnMPI.git && cd PnMPI
git submodule update --init --recursive
mkdir build && cd build && module load mpi && cmake -DCMAKE_INSTALL_PREFIX=${HOME}/pnmpi ..
make
Error
That produces an error in modules/metrics/timing.c.
Scanning dependencies of target metrics-timing
[ 45%] Building C object src/modules/metrics/CMakeFiles/metrics-timing.dir/timing.c.o
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:847:1: warning: implicit declaration of function ‘metric_atomic_init’ [-Wimplicit-function-declaration]
metric_atomic_keyword size_t metric_invocations = metric_atomic_init(0);
^
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:847:1: error: initializer element is not constant
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c: In function ‘MPI_Finalize’:
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10933:23: error: ‘counters’ undeclared (first use in this function)
print_counters(&counters);
^
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10933:23: note: each undeclared identifier is reported only once for each function it appears in
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10940:10: error: variable ‘tmp’ has initializer but incomplete type
struct counter tmp = { 0 };
^
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10940:10: warning: excess elements in struct initializer [enabled by default]
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10940:10: warning: (near initialization for ‘tmp’) [enabled by default]
/home/user/source/PnMPI/buildtimer/src/modules/metrics/timing.c:10940:18: error: storage size of ‘tmp’ isn’t known
struct counter tmp = { 0 };
^
make[2]: *** [src/modules/metrics/CMakeFiles/metrics-timing.dir/timing.c.o] Error 1
make[1]: *** [src/modules/metrics/CMakeFiles/metrics-timing.dir/all] Error 2
make: *** [all] Error 2
solution:
It appears there are a few bugs in src/modules/metrics/timing.c.w. I was able to fix them. Should I send a patch?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the CentOS 7 build using the listed package installation, module load, CMake, and make commands. Start with src/modules/metrics/timing.c and compare the reported metric_atomic_init, counters, and struct counter errors with the surrounding code. Done means the metrics-timing target compiles successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100