Options used to compile repository packages


Is there a method to know the compilation options used for a particular package available in the repositories? For example i’m unable to decide which of the two is the appropriate HYPRE package for me:

  1. hypre-devel
  2. hypre-gnu-openmpi3-hpc-devel


For comprehensive info provide links to repos.
You may compile it by yourself.

There is only one repo and no standalone devel package… just the different builds.

Check the build log for options (or the spec file);

If you’re installing a solution that requires hypre,
It’s probably best to just run the install.

The install will likely do a dependency check for the existence of hypre and then for the specific features hypre is providing.

If an error is thrown, then the error should be explanatory enough to determine what the problem is.

If you’re running a test,
You may want to ensure you can erase all traces of any failed tests…
One way is to do your testing in a virtual machine,
Another way is to make sure you have a snapshot you can roll back to (Snapper should automatically make a snapshot of your system anyway each time you install any package if you’re installed on BTRFS).


Use hypre-devel if you know nothing about MPI.

Thanks for all your replies.

I’m using a parallel CFD code that was developed in-house. HYPRE is required for this code.

The code i am using requires MPI and HYPRE. The problem is that if i use hypre-devel it appears that whenever HYPRE is invoked every process is blurting messages which it should not be doing.

If i use hypre-gnu-openmpi3-hpc-devel then the same code with the same parameters as with hpre-devel gives a segmentation fault.

I also compiled openMPI-4 and HYPRE (using this compiled openMPI-4) separately and yet i got the same segmentaton fault.

I have generated a minimal Fortran 90 code to reproduce this error and asked the HYPRE developers for help. Hope they respond.

If i click the last link then i am directed back to this thread.

If you’re seeing segmentation faults, then you’re probably doing the right thing already if you’re in touch with the Hypre developers.
Your original question was about compilation options, and if an option wasn’t compiled, I usually see an error something like “foobar missing” – Not a segmentation fault which usually is some kind of process crashing.



My original question about compilation options was because using hypre-devel led to each process blurting out the same lines which should otherwise only be written by the rank = 0 process.

Using hypre-devel some of the messages from HYPRE which are directed to STDOUT are only supposed to come from rank = 0 process. So i thought that hypre-devel was compiled using gcc / gfortran and NOT mpicc / mpifort.

I still don’t know the compile-time options used by developers contributing to the repos.

Can you please show information about the hypre packages installed;

zypper if hypre-devel
zypper se -si hypre

zypper if hypre-devel
Loading repository data... 
Reading installed packages... 
Information for package hypre-devel: 
Repository     : Software for Scientists and Engineers (openSUSE_Leap_15.2) 
Name           : hypre-devel 
Version        : 2.20.0-lp152.47.1 
Arch           : x86_64 
Vendor         : obs://build.opensuse.org/science 
Installed Size : 1.2 MiB 
Installed      : Yes 
Status         : up-to-date 
Source package : hypre-2.20.0-lp152.47.1.src 
Summary        : Headers and library links for libHYPRE2_20_0 
Description    :  
    HYPRE headers and libraries files needed for development 
    This package contains development files of the serial version of Hypre.
zypper se -si hypre
Loading repository data... 
Reading installed packages... 
S  | Name                    | Type    | Version           | Arch   | Repository 
i+ | hypre-devel             | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i+ | hypre-mpich-devel       | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i+ | hypre-mvapich2-devel    | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i+ | hypre-openmpi3-devel    | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i  | libHYPRE2_20_0          | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i  | libHYPRE2_20_0-mpich    | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i  | libHYPRE2_20_0-mvapich2 | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2) 
i  | libHYPRE2_20_0-openmpi3 | package | 2.20.0-lp152.47.1 | x86_64 | Software for Scientists and Engineers (openSUSE_Leap_15.2)

Today i added more HYPRE packages from the repositories, and also compiled more using openMPI-4. The code now runs with MVAPICH2 (from the repositories) but not with openMPI (3 or 4). So the segmentation fault may not be due to errors from my code.

i’ve observed such things before also on different desktops / laptops. But i had forgotten about it since it was many years back when i was writing parallel codes using MPI. I got back to it over the past one month.

The hypre-devel package is for the serial version of Hypre, I’m assuming this is not your requirement… you need to use the other repective version and development packages…

Thanks for the info. It helps a lot. Could you tell me how to figure this out?

If you look at the package description either via YaST Software Management or zypper if <some_package>.

In your case it should pull in the required packages just installing for example (Note I’m on Tumbleweed);

zypper in libHYPRE-gnu-openmpi3-hpc

The following 19 NEW packages are going to be installed:
  gnu-compilers-hpc libHYPRE-gnu-openmpi3-hpc libHYPRE_2_20_0-gnu-openmpi3-hpc libfabric1 libinfinipath4 libopenmpi3-gnu-hpc libopenmpi_3_1_6-gnu-hpc libpsm2-2
  libpsm_infinipath1 libucm0 libucp0 libucs0 libuct0 lua-lmod lua54-luafilesystem lua54-luaposix lua54-luaterm openmpi3-config openmpi_3_1_6-gnu-hpc

So as i understand, we’ll get information only if we attempt to install a package.

No, you can see the package description from the output from zypper if <some_package>, eg;

zypper if gnu-compilers-hpc

Information for package gnu-compilers-hpc:
Repository     : Main Repository (OSS)
Name           : gnu-compilers-hpc
Version        : 1.4-4.3
Arch           : noarch
Vendor         : openSUSE
Installed Size : 2.4 KiB
Installed      : No
Status         : not installed <========
Source package : gnu-compilers-hpc-1.4-4.3.src
Summary        : SUSE HPC GNU Compiler Toolchain environment
Description    : 
    Provides HPC-compatible setup and configuration for the GNU compiler toolchain.


hypre:serial :

Files in https://build.opensuse.org/package/binaries/science/hypre:serial/openSUSE_Leap_15.2 created with

/usr/bin/gcc … -I/home/abuild/rpmbuild/BUILD/hypre-2.20.0/src/lapack -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DNDEBUG -O2 -g -DNDEBUG -fPIC -o CMakeFiles/HYPRE.dir/sstruct_ls/sys_pfmg_setup_rap.c.o -c /home/abuild/rpmbuild/BUILD/hypre-2.20.0/src/sstruct_ls/sys_pfmg_setup_rap.c

hypre:gnu-mpich-hpc :**

Files in https://build.opensuse.org/package/binaries/science/hypre:gnu-mpich-hpc/openSUSE_Leap_15.2 created with

/usr/bin/gcc … -I/home/abuild/rpmbuild/BUILD/hypre-2.20.0/src/lapack -isystem /usr/lib/hpc/gnu7/mpi/mpich/3.3.2/include -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -DNDEBUG -O2 -g -DNDEBUG -fPIC -fmessage-length=0 -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -o CMakeFiles/HYPRE.dir/sstruct_ls/maxwell_semi_interp.c.o -c /home/abuild/rpmbuild/BUILD/hypre-2.20.0/src/sstruct_ls/maxwell_semi_interp.c

Also this file is useful: _multibuild .