Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libparpack built without using FFLAGS when using autotools #448

Open
loqs opened this issue Jan 27, 2024 · 2 comments
Open

libparpack built without using FFLAGS when using autotools #448

loqs opened this issue Jan 27, 2024 · 2 comments

Comments

@loqs
Copy link

loqs commented Jan 27, 2024

Expected behavior

FFLAGS will be used for all parts of the build.

Actual behavior

FFLAGS are used for everything except libparpack.

Where/how to reproduce the problem

  • arpack-ng: release or commit (SHA)
    3.9.1 4032903
  • OS: debian ? ubuntu ? mac ?...
    Arch Linux
  • compiler: gcc ? intel ? clang ? version ?...
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.2.1 20230801 (GCC) 
$ f90 -v
Using built-in specs.
COLLECT_GCC=f95
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,objc,obj-c++ --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.2.1 20230801 (GCC) 
$ ompi_info
                 Package: Open MPI builduser@buildhost Distribution
                Open MPI: 4.1.6
  Open MPI repo revision: v4.1.6
   Open MPI release date: Sep 30, 2023
                Open RTE: 4.1.6
  Open RTE repo revision: v4.1.6
   Open RTE release date: Sep 30, 2023
                    OPAL: 4.1.6
      OPAL repo revision: v4.1.6
       OPAL release date: Sep 30, 2023
                 MPI API: 3.1.0
            Ident string: 4.1.6
                  Prefix: /usr
 Configured architecture: x86_64-pc-linux-gnu
          Configure host: buildhost
           Configured by: builduser
           Configured on: Fri Jan 19 20:02:42 UTC 2024
          Configure host: buildhost
  Configure command line: '--prefix=/usr' '--enable-builtin-atomics' '--enable-memchecker' '--enable-mpi-cxx' '--enable-mpi-fortran=all' '--enable-pretty-print-stacktrace' '--libdir=/usr/lib' '--sysconfdir=/etc/openmpi' '--with-cuda=/opt/cuda' '--with-hwloc=external' '--with-libevent=external' '--with-pmix=external' '--with-valgrind'
                Built by: builduser
                Built on: Fri Jan 19 20:02:42 UTC 2024
              Built host: buildhost
              C bindings: yes
            C++ bindings: yes
             Fort mpif.h: yes (all)
            Fort use mpi: yes (full: ignore TKR)
       Fort use mpi size: deprecated-ompi-info-value
        Fort use mpi_f08: yes
 Fort mpi_f08 compliance: The mpi_f08 module is available, but due to limitations in the gfortran compiler and/or Open MPI, does not support the following: array subsections, direct passthru (where possible) to underlying Open MPI's C functionality
  Fort mpi_f08 subarrays: no
           Java bindings: no
  Wrapper compiler rpath: runpath
              C compiler: gcc
     C compiler absolute: /usr/bin/gcc
  C compiler family name: GNU
      C compiler version: 13.2.1
            C++ compiler: g++
   C++ compiler absolute: /usr/bin/g++
           Fort compiler: gfortran
       Fort compiler abs: /usr/bin/gfortran
         Fort ignore TKR: yes (!GCC$ ATTRIBUTES NO_ARG_CHECK ::)
   Fort 08 assumed shape: yes
      Fort optional args: yes
          Fort INTERFACE: yes
    Fort ISO_FORTRAN_ENV: yes
       Fort STORAGE_SIZE: yes
      Fort BIND(C) (all): yes
      Fort ISO_C_BINDING: yes
 Fort SUBROUTINE BIND(C): yes
       Fort TYPE,BIND(C): yes
 Fort T,BIND(C,name="a"): yes
            Fort PRIVATE: yes
          Fort PROTECTED: yes
           Fort ABSTRACT: yes
       Fort ASYNCHRONOUS: yes
          Fort PROCEDURE: yes
         Fort USE...ONLY: yes
           Fort C_FUNLOC: yes
 Fort f08 using wrappers: yes
         Fort MPI_SIZEOF: yes
             C profiling: yes
           C++ profiling: yes
   Fort mpif.h profiling: yes
  Fort use mpi profiling: yes
   Fort use mpi_f08 prof: yes
          C++ exceptions: no
          Thread support: posix (MPI_THREAD_MULTIPLE: yes, OPAL support: yes, OMPI progress: no, ORTE progress: yes, Event lib: yes)
           Sparse Groups: no
  Internal debug support: no
  MPI interface warnings: yes
     MPI parameter check: runtime
Memory profiling support: no
Memory debugging support: no
              dl support: yes
   Heterogeneous support: no
 mpirun default --prefix: no
       MPI_WTIME support: native
     Symbol vis. support: yes
   Host topology support: yes
            IPv6 support: no
      MPI1 compatibility: no
          MPI extensions: affinity, cuda, pcollreq
   FT Checkpoint support: no (checkpoint thread: no)
   C/R Enabled Debugging: no
  MPI_MAX_PROCESSOR_NAME: 256
    MPI_MAX_ERROR_STRING: 256
     MPI_MAX_OBJECT_NAME: 64
        MPI_MAX_INFO_KEY: 36
        MPI_MAX_INFO_VAL: 256
       MPI_MAX_PORT_NAME: 1024
  MPI_MAX_DATAREP_STRING: 128
           MCA allocator: basic (MCA v2.1.0, API v2.0.0, Component v4.1.6)
           MCA allocator: bucket (MCA v2.1.0, API v2.0.0, Component v4.1.6)
           MCA backtrace: execinfo (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA btl: tcp (MCA v2.1.0, API v3.1.0, Component v4.1.6)
                 MCA btl: smcuda (MCA v2.1.0, API v3.1.0, Component v4.1.6)
                 MCA btl: self (MCA v2.1.0, API v3.1.0, Component v4.1.6)
                 MCA btl: vader (MCA v2.1.0, API v3.1.0, Component v4.1.6)
            MCA compress: gzip (MCA v2.1.0, API v2.0.0, Component v4.1.6)
            MCA compress: bzip (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA crs: none (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA dl: dlopen (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA event: external (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA hwloc: external (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA if: linux_ipv6 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA if: posix_ipv4 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
         MCA installdirs: env (MCA v2.1.0, API v2.0.0, Component v4.1.6)
         MCA installdirs: config (MCA v2.1.0, API v2.0.0, Component v4.1.6)
          MCA memchecker: valgrind (MCA v2.1.0, API v2.0.0, Component v4.1.6)
              MCA memory: patcher (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA mpool: hugepage (MCA v2.1.0, API v3.0.0, Component v4.1.6)
             MCA patcher: overwrite (MCA v2.1.0, API v1.0.0, Component v4.1.6)
                MCA pmix: flux (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA pmix: ext3x (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA pmix: isolated (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA pstat: linux (MCA v2.1.0, API v2.0.0, Component v4.1.6)
              MCA rcache: gpusm (MCA v2.1.0, API v3.3.0, Component v4.1.6)
              MCA rcache: grdma (MCA v2.1.0, API v3.3.0, Component v4.1.6)
              MCA rcache: rgpusm (MCA v2.1.0, API v3.3.0, Component v4.1.6)
           MCA reachable: netlink (MCA v2.1.0, API v2.0.0, Component v4.1.6)
           MCA reachable: weighted (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA shmem: posix (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA shmem: mmap (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA shmem: sysv (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA timer: linux (MCA v2.1.0, API v2.0.0, Component v4.1.6)
              MCA errmgr: default_tool (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA errmgr: default_app (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA errmgr: default_orted (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA errmgr: default_hnp (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: singleton (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: env (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: slurm (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: hnp (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: tool (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA ess: pmi (MCA v2.1.0, API v3.0.0, Component v4.1.6)
               MCA filem: raw (MCA v2.1.0, API v2.0.0, Component v4.1.6)
             MCA grpcomm: direct (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA iof: tool (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA iof: orted (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA iof: hnp (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA odls: default (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA odls: pspawn (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA oob: tcp (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA plm: isolated (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA plm: slurm (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA plm: rsh (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA ras: slurm (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA ras: simulator (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA regx: naive (MCA v2.1.0, API v1.0.0, Component v4.1.6)
                MCA regx: fwd (MCA v2.1.0, API v1.0.0, Component v4.1.6)
                MCA regx: reverse (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA rmaps: mindist (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA rmaps: ppr (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA rmaps: rank_file (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA rmaps: round_robin (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA rmaps: seq (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA rmaps: resilient (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA rml: oob (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA routed: direct (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA routed: radix (MCA v2.1.0, API v3.0.0, Component v4.1.6)
              MCA routed: binomial (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA rtc: hwloc (MCA v2.1.0, API v1.0.0, Component v4.1.6)
              MCA schizo: ompi (MCA v2.1.0, API v1.0.0, Component v4.1.6)
              MCA schizo: jsm (MCA v2.1.0, API v1.0.0, Component v4.1.6)
              MCA schizo: slurm (MCA v2.1.0, API v1.0.0, Component v4.1.6)
              MCA schizo: flux (MCA v2.1.0, API v1.0.0, Component v4.1.6)
              MCA schizo: orte (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA state: hnp (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA state: app (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA state: tool (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA state: orted (MCA v2.1.0, API v1.0.0, Component v4.1.6)
               MCA state: novm (MCA v2.1.0, API v1.0.0, Component v4.1.6)
                 MCA bml: r2 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: han (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: basic (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: adapt (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: cuda (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: self (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: inter (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: monitoring (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: sm (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: libnbc (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: tuned (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA coll: sync (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA fbtl: posix (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA fcoll: dynamic_gen2 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA fcoll: individual (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA fcoll: two_phase (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA fcoll: vulcan (MCA v2.1.0, API v2.0.0, Component v4.1.6)
               MCA fcoll: dynamic (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA fs: ufs (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA io: romio321 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA io: ompio (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                  MCA op: avx (MCA v2.1.0, API v1.0.0, Component v4.1.6)
                 MCA osc: rdma (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA osc: pt2pt (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA osc: sm (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA osc: monitoring (MCA v2.1.0, API v3.0.0, Component v4.1.6)
                 MCA pml: v (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA pml: ob1 (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA pml: cm (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA pml: monitoring (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                 MCA rte: orte (MCA v2.1.0, API v2.0.0, Component v4.1.6)
            MCA sharedfp: sm (MCA v2.1.0, API v2.0.0, Component v4.1.6)
            MCA sharedfp: lockedfile (MCA v2.1.0, API v2.0.0, Component v4.1.6)
            MCA sharedfp: individual (MCA v2.1.0, API v2.0.0, Component v4.1.6)
                MCA topo: treematch (MCA v2.1.0, API v2.2.0, Component v4.1.6)
                MCA topo: basic (MCA v2.1.0, API v2.2.0, Component v4.1.6)
           MCA vprotocol: pessimist (MCA v2.1.0, API v2.0.0, Component v4.1.6)
$ ld -v
GNU ld (GNU Binutils) 2.41.0
  • environment: export FFLAGS ?...
$ printenv
SHELL=/bin/bash
DEBUG_FFLAGS= -ffile-prefix-map=/build/arpack/src=/usr/src/debug/arpack
BUILDTOOL=devtools
SUDO_GID=0
PYTHONHASHSEED=0
TEXTDOMAINDIR=/usr/share/locale
SUDO_COMMAND=/bin/bash -c bash -c cd\ /startdir;\ makepkg\ "$@" -bash --syncdeps --noconfirm --log --holdver --skipinteg --install
SUDO_USER=root
FFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection  -ffile-prefix-map=/build/arpack/src=/usr/src/debug/arpack
PWD=/build/arpack/src
SOURCE_DATE_EPOCH=1706383633
LOGNAME=builduser
CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection  -Wformat -Werror=format-security -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/arpack/src=/usr/src/debug/arpack -flto=auto
DEBUG_RUSTFLAGS=-C debuginfo=2 --remap-path-prefix=/build/arpack/src=/usr/src/debug/arpack
COMMAND_MODE=legacy
LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto
HOME=/build
LANG=C.UTF-8
RUSTFLAGS= -C debuginfo=2 --remap-path-prefix=/build/arpack/src=/usr/src/debug/arpack
FCFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection  -ffile-prefix-map=/build/arpack/src=/usr/src/debug/arpack
MAKEFLAGS=-j32
TERM=xterm-256color
USER=builduser
SHLVL=1
DEBUGINFOD_URLS=https://debuginfod.archlinux.org 
CHOST=x86_64-pc-linux-gnu
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -fstack-clash-protection -fcf-protection  -Wformat -Werror=format-security -g -ffile-prefix-map=/build/arpack/src=/usr/src/debug/arpack -flto=auto
SUDO_UID=0
MAIL=/var/mail/builduser
BUILDTOOLVER=1:1.0.4-1.1-any
OLDPWD=/startdir
TEXTDOMAIN=pacman-scripts
_=/usr/bin/printenv
  • configure: ./configure --enable-stuff ? cmake -DSTUFFS=ON ?
./configure --enable-icb --enable-mpi --prefix=/usr
cmake -DCMAKE_INSTALL_PREFIX='/usr'  -DICB=True -DMPI=True

Steps to reproduce the problem

For autotools with the issue:

$ cd arpack-ng
$ ./bootstrap
$ ./configure --enable-icb --enable-mpi --prefix=/usr
$ make
# make install

For cmake without the issue:

$ cd arpack-ng
$ ./bootstrap
$ cmake -DCMAKE_INSTALL_PREFIX='/usr'  -DICB=True -DMPI=True
$ cmake --build
# cmake --install

Notes, remarks

I believe the issue is caused by:

FFLAGS_SAV = @FFLAGS@
FFLAGS =

Removing those lines and both build systems use FFLAGS throughout.

@fghoussen
Copy link
Collaborator

Feel free to propose a PR

@fghoussen
Copy link
Collaborator

I believe the issue is caused by:

If tested to work at your side, feel free to push this patch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants