Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 493222 - sci-libs/hypre-2.9.0b fails due to underlinking
Summary: sci-libs/hypre-2.9.0b fails due to underlinking
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-03 14:27 UTC by Justin Lecher (RETIRED)
Modified: 2014-06-09 03:18 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
hypre-2.9.0b:20131203-142219.log (hypre-2.9.0b:20131203-142219.log,225.15 KB, text/plain)
2013-12-03 14:27 UTC, Justin Lecher (RETIRED)
Details
Diff against hypre-2.9.0b.ebuild - remove blas and lapack use flags (hypre-2.9.0b.ebuild.diff,1.58 KB, patch)
2014-05-01 13:00 UTC, Matthias Maier
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Justin Lecher (RETIRED) gentoo-dev 2013-12-03 14:27:00 UTC
g++ -shared -Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -o libHYPRE-2.9.0b.so  /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/FEI_mv/fei-hypre/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/FEI_mv/femli/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/IJ_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/distributed_ls/Euclid/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/distributed_ls/ParaSails/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/distributed_ls/pilut/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/distributed_matrix/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/krylov/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/matrix_matrix/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/multivector/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/parcsr_ls/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/parcsr_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/parcsr_block_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/seq_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/sstruct_ls/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/sstruct_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/struct_ls/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/struct_mv/*.o /var/tmp/portage/sci-libs/hypre-2.9.0b/work/hypre-2.9.0b/src/utilities/*.o         -lstdc++ -lm -lsuperlu -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../.. -lgfortran -lm -lquadmath -Wl,-soname,libHYPRE-2.9.0b.so -Wl,-z,defs
mli_utils.c:1171: error: undefined reference to 'hypre_dgesvd'
mli_utils.c:1200: error: undefined reference to 'hypre_dgesvd'
ConjGrad.c:38: error: undefined reference to 'hypre_ddot'
ConjGrad.c:54: error: undefined reference to 'hypre_dscal'
ConjGrad.c:60: error: undefined reference to 'hypre_daxpy'
ConjGrad.c:60: error: undefined reference to 'hypre_daxpy'
ConjGrad.c:60: error: undefined reference to 'hypre_daxpy'
ConjGrad.c:54: error: undefined reference to 'hypre_dscal'
ConjGrad.c:60: error: undefined reference to 'hypre_daxpy'
ConjGrad.c:48: error: undefined reference to 'hypre_dcopy'
ConjGrad.c:54: error: undefined reference to 'hypre_dscal'
ConjGrad.c:54: error: undefined reference to 'hypre_dscal'
ConjGrad.c:48: error: undefined reference to 'hypre_dcopy'
ConjGrad.c:48: error: undefined reference to 'hypre_dcopy'
FGmres.c:38: error: undefined reference to 'hypre_ddot'
FGmres.c:48: error: undefined reference to 'hypre_dcopy'
ParaSails.c:1143: error: undefined reference to 'hypre_dpotrf'
ParaSails.c:1157: error: undefined reference to 'hypre_dpotrs'
ParaSails.c:1333: error: undefined reference to 'hypre_dgels'
pblas1.c:42: error: undefined reference to 'hypre_dnrm2'
pblas1.c:56: error: undefined reference to 'hypre_ddot'
HYPRE_lobpcg.c:119: error: undefined reference to 'hypre_dpotrf'
HYPRE_lobpcg.c:106: error: undefined reference to 'hypre_dsygv'
ame.c:588: error: undefined reference to 'hypre_dpotrf'
ame.c:588: error: undefined reference to 'hypre_dsygv'
par_gsmg.c:735: error: undefined reference to 'hypre_dgels'
par_relax.c:3174: error: undefined reference to 'hypre_dgetrf'
par_relax.c:3185: error: undefined reference to 'hypre_dgetrs'
par_relax.c:3367: error: undefined reference to 'hypre_dgetrf'
par_relax.c:3378: error: undefined reference to 'hypre_dgetrs'
schwarz.c:614: error: undefined reference to 'hypre_dgetrs'
schwarz.c:765: error: undefined reference to 'hypre_dgetrs'
schwarz.c:779: error: undefined reference to 'hypre_dpotrs'
schwarz.c:628: error: undefined reference to 'hypre_dpotrs'
schwarz.c:355: error: undefined reference to 'hypre_dpotrf'
schwarz.c:2103: error: undefined reference to 'hypre_dgetrf'
schwarz.c:1016: error: undefined reference to 'hypre_dpotrs'
schwarz.c:3944: error: undefined reference to 'hypre_dgetrf'
collect2: error: ld returned 1 exit status
Makefile:109: recipe for target 'libHYPRE.so' failed
make[1]: *** [libHYPRE.so] Error 1



$ einfo =sci-libs/hypre-2.9.0b
Portage 2.2.7 (default/linux/amd64/13.0, gcc-4.8.2-asneeded, glibc-2.17, 3.12.2-lh x86_64)
=================================================================
                        System Settings
=================================================================
System uname: Linux-3.12.2-lh-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    16468048 total,    644616 free
KiB Swap:    4194300 total,   4194300 free
Timestamp of tree: Tue, 03 Dec 2013 07:00:01 +0000
ld GNU gold (GNU Binutils 2.23.2) 1.11
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.6, 3.3.3
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12.1-r1
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.1.2, 4.7.3-r1, 4.8.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           4.0
sys-kernel/linux-headers: 3.12 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo sunrise bicatali betagarden dummy Neurogeek science last-hope
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wimplicit-function-declaration"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/eselect/ /usr/share/gnupg/qualified.txt /usr/share/nano/ /var/lib/hsqldb /var/spool/munin-async/.ssh /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g -Wenum-compare"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS=" -vt --keep-going --autounmask-write --autounmask --quiet-build=n"
FCFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g"
FEATURES="assume-digests binpkg-logs buildsyspkg ccache cgroup collision-protect compressdebug distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news noinfo parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms sign split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -ftracer   -march=native -frecord-gcc-switches -g"
GENTOO_MIRRORS=" /mnt/tmpfs/ http://gentoo.j-schmitz.net/mirror/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common"
MAKEOPTS="-j4 -l8"
PKGDIR="/usr/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_COMPRESS_FLAGS="-z -e -9 -v"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--omit-dir-times"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/local/overlays/sunrise-reviewed /local/overlays/bicatali /local/overlays/betagarden /local/overlays/dummy /local/overlays/neurogeek /local/overlays/sci /local/overlays/lh-overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl alsa amd64 avx bash-completion berkdb branding bzip2 cairo caps cli cracklib crypt cups cxx dbus dri fortran gdbm gif gmp gstreamer gtk iconv icu ipv6 jpeg jpeg2k ldap logrotate mmx mmxext modules mudflap multilib ncurses network-cron nls nptl nsplugin numa opengl openmp pam pcre pgo png pulseaudio qt3support readline session smp sse sse2 sse2_4way sse2check sse3 sse4 sse41 sse4_1 sse4a sse5 ssl ssse3 startup-notification tcpd threads tiff truetype unicode vaapi vdpau xattr xinerama zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="plymouth" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-32 efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer pdfimport scripting-javascript wiki-publisher nlpsolver" LINGUAS="en" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi stub_status" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64 arm armeb" QEMU_USER_TARGETS="i386 x86_64 arm armeb" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
USE_PYTHON="2.7 3.3"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND
Comment 1 Justin Lecher (RETIRED) gentoo-dev 2013-12-03 14:27:52 UTC
Created attachment 364530 [details]
hypre-2.9.0b:20131203-142219.log

build.log
Comment 2 Matthias Maier gentoo-dev 2014-05-01 12:52:28 UTC
This underlinkage issue comes from the fact that the hypre's configuration options --with/without-blas/lapack are a very big misnomer. They do not enable or disable blas/lapack support because both are mandatory build time dependencies. They enable or disable usage of an _external_ blas/lapack library.

This is evidenced by the fact that in case of --without-blas/lapack the configuration options

    /* Using internal Hypre routines */
    #define HYPRE_USING_HYPRE_BLAS 1

    /* Using internal Hypre routines */
    #define HYPRE_USING_HYPRE_LAPACK 1

are set in HYPRE_config.h after configuration and the fact that the unresolved symbols are indeed blas symbol names prefixed with 'hypre_'. 

The underlinkage now arises from the fact that the ebuild forcefully removes bundled blas and lapack files - which is actually the right thing to do(tm).

Therefore, I suggest to drop the blas and lapack keywords - both are mandatory build time dependencies and should be treated as such.

See attached ebuild.
Comment 3 Matthias Maier gentoo-dev 2014-05-01 13:00:45 UTC
Created attachment 376138 [details, diff]
Diff against hypre-2.9.0b.ebuild - remove blas and lapack use flags

This diff removes blas and lapack keywords. The proposed changes for bug 508030 are also applied (drop mpi use constraint and remove --without-strict-testing).
Comment 4 Sébastien Fabbro (RETIRED) gentoo-dev 2014-06-09 03:18:56 UTC
+  09 Jun 2014; Sébastien Fabbro <bicatali@gentoo.org> hypre-2.9.0b.ebuild:
+  Fixed underlinking (bug #493222) and enabling MPI (bug #508030) thanks
+  Matthias Maier
+