Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 534088 - autotools.eclass: autoreconf fails to reconfigure libltdl after libtoolizing it in
Summary: autotools.eclass: autoreconf fails to reconfigure libltdl after libtoolizing ...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo's Team for Core System packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 531462
  Show dependency tree
 
Reported: 2014-12-31 10:57 UTC by Michał Górny
Modified: 2015-11-22 14:38 UTC (History)
3 users (show)

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


Attachments
Patch delaying subdir eautoreconf (autotools.eclass.diff,2.51 KB, patch)
2014-12-31 11:20 UTC, Michał Górny
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-12-31 10:57:54 UTC
Here's what happens in graphviz-2.36.0: eautoreconf runs libtoolize that copies new libltdl around but doesn't run eautoreconf inside it afterwards. As a result, make is started with old configure/configure.ac inside libltdl, and fails trying to reconfigure it with old automake afterwards.

Possibilities I see:

1. run eautoreconf in LT_CONFIG_LTDL_DIR after main autoreconf,

2. add LT_CONFIG_LTDL_DIR to AC_CONFIG_SUBDIR loop, and run it between pre-aclocal activities and aclocal.
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2014-12-31 11:20:32 UTC
Created attachment 392756 [details, diff]
Patch delaying subdir eautoreconf

Oh, I was wrong. For (2) you don't actually need explicit LT_CONFIG_LTDL_DIR, AC_CONFIG_SUBDIRS handles it.

Attaching example patch that works for me. It's far from perfect but should cover most of the uses.
Comment 2 Pacho Ramos gentoo-dev 2015-06-02 08:49:38 UTC
@base-system, Any updates on this? It's blocking graphviz stabilization for months :(

Thanks
Comment 3 Pacho Ramos gentoo-dev 2015-09-03 15:12:27 UTC
ping :/
Comment 4 Alexander Tsoy 2015-09-28 23:27:06 UTC
Another instance of this bug: bug #561494
Comment 5 Alexander Tsoy 2015-09-28 23:52:02 UTC
Oh.. I see: https://bugs.gentoo.org/show_bug.cgi?id=536420#c9
Does this mean the need to remove LTDL_INIT from configure.ac?
Comment 6 Alexander Tsoy 2015-09-29 12:34:05 UTC
Please ignore my previous comment. %)
Comment 7 SpanKY gentoo-dev 2015-09-29 15:20:02 UTC
eautoreconf is designed to mimic autoreconf.  in that regard, autoreconf does:
  autoreconf_current_directory(dir) {
    cd $dir
    autopoint
    aclocal
    for (all subdirs)
      autoreconf_current_directory $subdir
    libtoolize (automatically add --ltdl as needed)
    aclocal
    autoconf
    autoheader
    automake
  }
  autoreconf_current_directory .

eautoreconf currently does:
  eautoreconf(dir) {
    cd $dir
    for (all subdirs)
      eautoreconf $subdir
    eaclocal
    autopoint/intltoolize/gtkdocize/elibtoolize
    eaclocal
    eautoconf
    eautoheader
    eautomake
    elibtoolize
  }
  eautoreconf .

we are out of sync w/autoreconf in a few ways:
 - we subdirs before aclocal/autopoint
 - we run aclocal before autopoint
 - we don't automatically pass --ltdl to libtoolize (LT_CONFIG_LTDL_DIR)

you're proposing doing:
  eautoreconf(dir) {
    cd $dir
    eaclocal
    autopoint/intltoolize/gtkdocize/elibtoolize
    for (all subdirs)
      eautoreconf $subdir
    eaclocal
    eautoconf
    eautoheader
    eautomake
    elibtoolize
  }
  eautoreconf .

that doesn't really bring us in line either though.

the reason graphviz fails is that it expects libtoolize to use --ltdl and we don't.  i don't think the subdir ordering is the issue.  i've fixed that here:
http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87e80c5f4f04419eb8ec2986b2713ef59e7969fd

and now graphviz works for me (after deleting the line that deletes libltdl).