Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 356629 - sys-cluster/pacemaker fails to build due to linking it's libraries from ${ROOT} rather than builddir
Summary: sys-cluster/pacemaker fails to build due to linking it's libraries from ${ROO...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Cluster Team
URL:
Whiteboard:
Keywords:
: 358523 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-02-26 21:48 UTC by Diego Elio Pettenò (RETIRED)
Modified: 2012-05-24 09:32 UTC (History)
7 users (show)

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


Attachments
Build log (pacemaker-1.1.4-r4:20110226-203637.log,100.36 KB, text/plain)
2011-02-27 23:48 UTC, Diego Elio Pettenò (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Diego Elio Pettenò (RETIRED) gentoo-dev 2011-02-26 21:48:21 UTC
Portage 2.1.9.41 (default/linux/x86/10.0, gcc-4.5.2-asneeded, glibc-2.13-r1, 2.6.37.2 i686)
=================================================================
System uname: Linux-2.6.37.2-i686-Quad-Core_AMD_Opteron-tm-_Processor_2350-with-gentoo-2.0.1
Timestamp of tree: Sat, 26 Feb 2011 17:30:01 +0000
distcc 3.1 i686-pc-linux-gnu [disabled]
ccache version 3.1.4 [disabled]
app-shells/bash:     4.1_p9
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.4.6, 2.7.1-r1, 3.1.3-r1
dev-util/ccache:     3.1.4
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.1-r1
sys-apps/openrc:     0.7.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.36.1 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="*"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib/tomoyo/conf /usr/share/bufrtables /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/openvpn/easy-rsa /usr/share/qpsmtpd/plugins /usr/share/themes/oxygen-gtk/gtk-2.0 /var/bind /var/lib/hsqldb /var/lib/redmine/config /var/spool/torque /var/vpopmail/etc /var/yp/Makefile"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/games/angband/edit/ /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /var/lib/redmine/config/locales /var/lib/redmine/config/settings.yml"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms split-log strict test test-fail-continue unknown-features-warn unmerge-orphans userfetch userpriv usersandbox"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.wheel.sk/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j14"
PKGDIR="/var/spool/portage/packages"
PORTAGE_COMPRESS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/cache/portage/tree"
SYNC="rsync://yamato.home.flameeyes.eu/gentoo-portage"
USE="acl berkdb bzip2 cli cracklib crypt cups cxx dri fortran gdbm gpm iconv ipv6 java5 java6 modules mudflap mysql ncurses nls nostatic nptl nptlonly openmp pam pcre pcsc-lite perl postgres pppd python qt3support readline ruby session ssl sysfs tcpd unicode vhosts x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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 auth_digest cgi" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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 ubx" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18 jruby ruby19 ree18" USERLAND="GNU" VIDEO_CARDS="intel radeon nouveau vmware" 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" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Comment 1 Rafał Mużyło 2011-02-26 23:36:48 UTC
Didn't you forget to attach something here ?
Comment 2 Diego Elio Pettenò (RETIRED) gentoo-dev 2011-02-27 23:48:41 UTC
Created attachment 264119 [details]
Build log
Comment 3 Rafał Mużyło 2011-02-28 14:12:50 UTC
Looking at the errors, the problem seems to lie in sys-cluster/cluster-glue
- both of the mentioned libraries (libpils and libplumb) seems to belong to that package.
Comment 4 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-03-12 21:26:44 UTC
*** Bug 358523 has been marked as a duplicate of this bug. ***
Comment 5 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2011-03-12 21:32:14 UTC
(In reply to comment #3)
> Looking at the errors, the problem seems to lie in sys-cluster/cluster-glue
> - both of the mentioned libraries (libpils and libplumb) seems to belong to
> that package.

Nah, the problem is that pacemaker uses libraries in / rather than those in build dir. It's some kind of libtool magic I haven't been able to figure out yet...


janus02 tools # nm ../lib/common/.libs/libcrmcommon.so.2.0.0 | grep log_init_quiet
000000000000cd2d T crm_log_init_quiet
janus02 tools # grep libcrmcommon crm_verify
  notinst_deplibs=' ../lib/pengine/libpe_status.la ../pengine/libpengine.la /var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/libpe_status.la /var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/libcib.la ../lib/common/libcrmcommon.la ../lib/cib/libcib.la /var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/libcrmcommon.la'
janus02 tools # ./crm_verify --lt-debug
crm_verify:crm_verify:93: libtool wrapper (GNU libtool) 2.4
crm_verify:crm_verify:114: newargv[0]: /var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/.libs/crm_verify
/var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/.libs/crm_verify: symbol lookup error: /var/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/.libs/crm_verify: undefined symbol: crm_log_init_quiet

That symbol is indeed not present in libcrmcommon.so from pacemaker-1.0.x.
Diego I would appreciate if you have a look, maybe there's something obvious I'm missing, but the buildsystem looks fine :/
Comment 6 Alexander Bergmann 2011-03-17 14:18:13 UTC
I narrowed the problem down to the applied patch pacemaker-1.1.4-autotools-r2.patch. Without the compilation work fine for me.

Interesting enough is that libtool will generate different LD_LIBRARY_PATH strings causing the problem that an old library is taken instead of the new one that has the symbol crm_log_init_quiet. It looks like it comes down to the order of the LDADD libraries.

tools/Makefile.am

/* This config fails with the shown problem. */
crm_verify_LDADD        = $(top_builddir)/lib/pengine/libpe_status.la   \
                        $(top_builddir)/pengine/libpengine.la           \
                        $(COMMONLIBS)

/* This one works fine. */
crm_verify_LDADD        = $(COMMONLIBS) \
                        $(top_builddir)/lib/pengine/libpe_status.la \
                        $(top_builddir)/pengine/libpengine.la

I'm not sure which lines are also affected, but my compilation worked fine after this.

/* This LD_LIBRARY_PATH fails. */
LD_LIBRARY_PATH="/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:$LD_LIBRARY_PATH"

/* This one works fine. */
LD_LIBRARY_PATH="/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/src/packages/install/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH"

As you can see, the execution breaks if "lib/common/.libs" is listed after "/usr/lib64".
Comment 7 upendra 2011-07-22 17:51:14 UTC
I am having issues while merging pacemaker and wondering if this bug is related with my issue.

 emerge -av pacemaker

 * IMPORTANT: 3 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] sys-cluster/cluster-glue-1.0.7-r2  USE="-doc -libnet -static-libs" 0 kB
[ebuild  N     ] sys-cluster/corosync-1.3.0  USE="ssl -doc (-infiniband)" 0 kB
[ebuild  N     ] sys-cluster/openais-1.1.4  554 kB
[ebuild  N     ] sys-cluster/resource-agents-1.0.4-r1  USE="-doc -libnet" 0 kB
[ebuild  N     ] sys-cluster/pacemaker-1.0.10  USE="ais (-heartbeat) -smtp -snmp -static-libs" 6,488 kB
[blocks B      ] <sys-cluster/heartbeat-3.0 ("<sys-cluster/heartbeat-3.0" is blocking sys-cluster/cluster-glue-1.0.7-r2, sys-cluster/resource-agents-1.0.4-r1)
[blocks B      ] sys-cluster/heartbeat ("sys-cluster/heartbeat" is blocking sys-cluster/corosync-1.3.0)

Total: 5 packages (5 new), Size of downloads: 7,041 kB
Conflict: 2 blocks (2 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-cluster/heartbeat-2.0.8::gentoo, installed) pulled in by
    sys-cluster/heartbeat required by @selected

  (sys-cluster/corosync-1.3.0::gentoo, ebuild scheduled for merge) pulled in by
    sys-cluster/corosync required by (sys-cluster/openais-1.1.4::gentoo, ebuild scheduled for merge)

  (sys-cluster/cluster-glue-1.0.7-r2::gentoo, ebuild scheduled for merge) pulled in by
    sys-cluster/cluster-glue required by (sys-cluster/pacemaker-1.0.10::gentoo, ebuild scheduled for merge)
    sys-cluster/cluster-glue required by (sys-cluster/resource-agents-1.0.4-r1::gentoo, ebuild scheduled for merge)

  (sys-cluster/resource-agents-1.0.4-r1::gentoo, ebuild scheduled for merge) pulled in by
    sys-cluster/resource-agents required by (sys-cluster/pacemaker-1.0.10::gentoo, ebuild scheduled for merge)
Comment 8 Marc Schiffbauer gentoo-dev 2012-05-14 17:47:21 UTC
I ran into this bug too with 1.1.6.1

I am not sure if this is a corect fix, but 

changing the line 

  #include <glib/ghash.h>

to 

  #include <glib.h>

in ./lib/ais/plugin.c makes it compile at least.

Like so:

--- ./lib/ais/plugin.c.orig     2012-05-14 19:46:43.516233057 +0200
+++ ./lib/ais/plugin.c  2012-05-14 19:46:47.914334757 +0200
@@ -40,7 +40,7 @@
 #include "plugin.h"
 #include "utils.h"
 
-#include <glib/ghash.h>
+#include <glib.h>
 
 #include <sys/resource.h>
 #include <sys/utsname.h>
Comment 9 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-05-16 10:45:11 UTC
(In reply to comment #8)
> I ran into this bug too with 1.1.6.1
> 
> I am not sure if this is a corect fix, but 
> 
> changing the line 
> 
>   #include <glib/ghash.h>
> 
> to 
> 
>   #include <glib.h>

That's a separate bug, please file additional report next time.
I've fixed it in 1.1.6.1 and it'll also fixed in 1.1.7 bump that'll come shortly.

+  16 May 2012; Kacper Kowalik <xarthisius@gentoo.org> pacemaker-1.1.6.1.ebuild:
+  Fix building with glib-2.32, thanks to Marc Schiffbauer <mschiff@gentoo.org>
+  for patch
Comment 10 Ultrabug gentoo-dev 2012-05-16 15:14:40 UTC
Thank you guys, so I guess all the work and proposals fixed the different problems.

- cluster-glue was fixed in bug #412653
- pacemaker compilation was fixed by xarthisius thanks to mschiff
- I just bumped pacemaker-1.1.7

I guess all of this should fix your problem Diego. Can you please test and close this bug ?

Cheers

*pacemaker-1.1.7 (16 May 2012)

  16 May 2012; Ultrabug <ultrabug@gentoo.org> -pacemaker-1.1.4-r4.ebuild,
  -files/pacemaker-1.1.4-autotools-r2.patch, -pacemaker-1.1.5.ebuild,
  -files/pacemaker-1.1.5-autotools.patch, +pacemaker-1.1.7.ebuild:
  Version bump, drop old, wtr #356629.

  16 May 2012; Kacper Kowalik <xarthisius@gentoo.org> pacemaker-1.1.6.1.ebuild:
  Fix building with glib-2.32, thanks to Marc Schiffbauer <mschiff@gentoo.org>
  for patch
Comment 11 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-05-17 08:15:39 UTC
(In reply to comment #10)
> Thank you guys, so I guess all the work and proposals fixed the different
> problems.
> 
> - cluster-glue was fixed in bug #412653
> - pacemaker compilation was fixed by xarthisius thanks to mschiff
> - I just bumped pacemaker-1.1.7
> 
> I guess all of this should fix your problem Diego. Can you please test and
> close this bug ?
Nah, the original problem still happens. It's visible when you upgrade pacemaker and it changes/adds symbols in libs. So, e.g. upgrading 1.1.6.1 -> 1.1.7 may not trigger it, but with next version it's not certain...
Comment 12 Kacper Kowalik (Xarthisius) (RETIRED) gentoo-dev 2012-05-24 09:32:11 UTC
(In reply to comment #6)
> I narrowed the problem down to the applied patch
> pacemaker-1.1.4-autotools-r2.patch. Without the compilation work fine for me.

OK, I've given it a go with current tree (by upgrading 1.0.11 to 1.1.7) Despite that beforementioned patch was merged upstream (or at least something close to it) I'm unable to reproduce the original issue. As such I'll close this bug, If anyone is still experiencing described issues please let us know.