Looks like graphviz is coming with internal copy of libtool's libltdl, and is still using it's headers and conflicting with system copy: In file included from ../../lib/common/types.h:36:0, from gvplugin.c:27: ./gvcext.h:83:22: error: conflicting types for 'lt__PROGRAM__LTX_preloaded_symbols' ../../libltdl/ltdl.h:106:36: note: previous declaration of 'lt__PROGRAM__LTX_preloaded_symbols' was here Portage 2.2_rc88 (default/linux/amd64/10.0/developer, gcc-4.5.1, glibc-2.12.1-r1, 2.6.34 x86_64) ================================================================= System uname: Linux-2.6.34-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q8200_@_2.33GHz-with-gentoo-2.0.1 Timestamp of tree: Unknown app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11 dev-lang/python: 2.6.5-r3 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.3 sys-apps/sandbox: 2.3-r1 sys-devel/autoconf: 2.13, 2.68 sys-devel/automake: 1.4_p6-r1, 1.7.9-r2, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.5.1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.4 sys-devel/make: 3.82 virtual/os-headers: 2.6.35 (sys-kernel/linux-headers) ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=core2 -msse4.1 -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /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" CXXFLAGS="-march=core2 -msse4.1 -O2 -pipe" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y" FEATURES="assume-digests binpkg-logs collision-protect distlocks fixlafiles fixpackages multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,--hash-style=gnu -Wl,-O1 -Wl,--as-needed" LINGUAS="en" MAKEOPTS="-j9" PKGDIR="/usr/portage/packages" 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="/home/ssuominen/gentoo-x86" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage"
Created attachment 249121 [details] build.log
I believe I have this bug fixed in the upstream graphviz sources. cvs diff -r1.116 -r1.117 lib/gvc/Makefile.am Basically, $(INCLTDL) is sufficient, and -I$(top_srcdir)/libltdl causes the problem: @@ -18,8 +18,7 @@ -I$(top_srcdir)/lib/pathplan \ -I$(top_srcdir)/lib/$(GRAPH) \ -I$(top_srcdir)/lib/cdt \ - $(INCLTDL) -I$(top_srcdir)/libltdl \ - -DGVLIBDIR=\"$(pkglibdir)\" + $(INCLTDL) -DGVLIBDIR=\"$(pkglibdir)\" if WITH_WIN32 AM_CFLAGS = -D_BLD_gvc=1
(In reply to comment #2) > I believe I have this bug fixed in the upstream graphviz sources. To put that in one-liner sed: sed -i -e 's:-I$(top_srcdir)/libltdl::' lib/gvc/Makefile.am || die #339298 in src_prepare() of the ebuild It doesn't solve the issue. It looks like the ebuild is already going great lenghts to avoid using the internal copy already, before this bug: # This is an old version of libtool rm -rf libltdl sed -i -e '/libltdl/d' configure.ac || die sed -i -e 's/AC_LIBLTDL_CONVENIENCE/AC_LIBLTDL_INSTALLABLE/' configure.ac || die And then runs eautoreconf on the package, which seems to create the libltdl directory again... sigh. Configures the package with --disable-ltdl-install to avoid the package to install the bundled libltdl to system, then --enable-ltdl to enable ltdl for use. What a mess...
Created attachment 249672 [details, diff] Make *sure* only system copy is used This with next attachment -libtool.patch will ensure only *system* copy is used, and it still fails with: In file included from ../../lib/common/types.h:36:0, from gvplugin.c:27: ./gvcext.h:83:22: error: conflicting types for 'lt__PROGRAM__LTX_preloaded_symbols' /usr/include/ltdl.h:106:36: note: previous declaration of 'lt__PROGRAM__LTX_preloaded_symbols' was here (I'm not suggesting to use this in Portage, only making a point that the error happens regardless. There's something wrong in gvcext.h itself with libtool-2.4, imho.)
Created attachment 249673 [details, diff] For prev. attached ebuild
Created attachment 254443 [details, diff] gvcext.h conflicts w/ /usr/include/ltdl.h You have missed that one :)
Graphviz did not build for me on my ~x86 laptop until I used Samuli's patches AND Jimmy Jazz's patch together. I hope this helps.
(In reply to comment #2) > I believe I have this bug fixed in the upstream graphviz sources. > > cvs diff -r1.116 -r1.117 lib/gvc/Makefile.am > > Basically, $(INCLTDL) is sufficient, and -I$(top_srcdir)/libltdl causes the > problem: > > @@ -18,8 +18,7 @@ > -I$(top_srcdir)/lib/pathplan \ > -I$(top_srcdir)/lib/$(GRAPH) \ > -I$(top_srcdir)/lib/cdt \ > - $(INCLTDL) -I$(top_srcdir)/libltdl \ > - -DGVLIBDIR=\"$(pkglibdir)\" > + $(INCLTDL) -DGVLIBDIR=\"$(pkglibdir)\" > > if WITH_WIN32 > AM_CFLAGS = -D_BLD_gvc=1 > I've included this change, plus the change from Comment #6 and it seems to work now. +*graphviz-2.26.3-r3 (17 Nov 2010) + + 17 Nov 2010; Samuli Suominen <ssuominen@gentoo.org> + +graphviz-2.26.3-r3.ebuild, +files/graphviz-2.26.3-libtool.patch: + Fix building with libtool >= 2.4 wrt #339298 by John Ellson and Jimmy + Jazz.
*** Bug 346943 has been marked as a duplicate of this bug. ***
*** Bug 349153 has been marked as a duplicate of this bug. ***
*** Bug 376029 has been marked as a duplicate of this bug. ***