[New-bugs-announce] [issue4010] configure options don't trickle down to distutils

Skip Montanaro report at bugs.python.org
Wed Oct 1 18:43:53 CEST 2008

New submission from Skip Montanaro <skip at pobox.com>:

If you are fortunate enough to have all your third-party libraries in
a single quasi-standard location, say, /usr/local/lib, you will
probably have never encountered this problem, but setting environment
variables like LDFLAGS don't get translated into the relevant args for
the distutils build_ext command.  The evidence for this is this output
at the end of the make process:

    Failed to find the necessary bits to build these modules:
    _hashlib           _sqlite3           _ssl
    bsddb185           linuxaudiodev      ossaudiodev
    To find the necessary bits, look in setup.py in detect_modules() for
the module's name.

    Failed to build these modules:
    _curses            _curses_panel      _tkinter
    gdbm               readline

Here's the specific failure for readline:

    >>> import readline_failed
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
	ImportError: ld.so.1: python: fatal: libreadline.so.4: open failed: No
such file or directory

yet if you poke around in my config.status file you'll see that I set
the relevant -L and -R flags:

    s, at LDFLAGS@,|#_!!_#|-L/opt/app/nonc++/ncurses-5.6/lib
-R/opt/app/nonc++/ncurses-5.6/lib -L/opt/app/nonc++/gdbm-1.8/lib
-R/opt/app/nonc++/gdbm-1.8/lib -L/opt/app/nonc++/readline-4.3/lib
-R/opt/app/nonc++/readline-4.3/lib -L/opt/app/nonc++/tcl-8.4/lib
-R/opt/app/nonc++/tcl-8.4/lib -L/opt/app/nonc++/BerkleyDB-4.3/lib

The workaround is to run the build_ext command separately:

    ./python ../setup.py build_ext --library-dirs=... --rpath=...

It's not hard to work around this problem, but it's tedious to build
the command line args from the massive list of directories I have to
educate distutils about.

components: Build, Distutils
messages: 74137
nosy: skip.montanaro
priority: normal
severity: normal
status: open
title: configure options don't trickle down to distutils
type: behavior

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list