[Python-Dev] Please give this patch for building bsddb a try

Barry A. Warsaw barry@zope.com
Wed, 19 Jun 2002 14:31:58 -0400


>>>>> "MvL" == Martin v Loewis <martin@v.loewis.de> writes:

    MvL> I dislike that change. Setting LD_RUN_PATH is the jobs of
    MvL> whoever is building the compiler, and should not be done by
    MvL> Python automatically. So far, the Python build process avoids
    MvL> adding any -R linker options, since it requires quite some
    MvL> insight into the specific installation to determine whether
    MvL> usage of that option is the right thing.

Really?  You know the path for the -R/--rpath flag, so all you need is
the magic compiler-specific incantation, and distutils already (or
/should/ already) know that.

    MvL> If setup.py fails to build an extension correctly, it is the
    MvL> adminstrator's job to specify a correct build procedure in
    MvL> Modules/Setup. For that reason, I rather recommend to remove
    MvL> the magic that setup.py looks in /usr/local/Berkeley*,
    MvL> instead of adding more magic.

I disagree.  While the sysadmin should probably fiddle with
/etc/ld.so.conf when he installs BerkeleyDB, it's not documented in
the Sleepycat docs, so it's entirely possible that they haven't done
it.  That shouldn't stop Python from building a perfectly usable
module, especially because it really can figure out all the necessary
information.

Is there some specific fear you have about compiling in the run-path?

Note I'm not saying setting LD_RUN_PATH is the best approach, but it
seemed like the most portable.  I couldn't figure out if distutils
knew what the right compiler-specific switches are (i.e. "-R dir" on
Solaris cc if memory serves, and "-Xlinker -rpath -Xlinker dir" for
gcc, and who knows what for other Unix or <gasp> Windows compilers).

-Barry