Build Question: How to Add -Wl, --option Before Objects In Setup.py?

Ned Deily nad at acm.org
Mon Oct 27 16:39:32 EDT 2014


In article 
<CAHu5PrbHSob2r-zOTCtrYiqdudU_q+4mDXOXzp=_ReJp7khTDg at mail.gmail.com>,
 Cyd Haselton <chaselton at gmail.com> wrote:
> I need to add a linker option to the command(s) run by setup.py when
> building various objects.  I'm not familiar with Python at all, so I
> basically copied and modified a line from one area of the script to
> another
> 
> 
> ext_modules=[Extension('_struct', ['_struct.c'], extra_link_args =
> ['Wl,--allow-shlib-undefined'])],
>                      *snip*
> 
> Unfortunately this seems to append the option to the end of the
> command line.  What's the best (fastest) way to add it before the
> object being built (objectname.o)?

It depends on what system and build tools that you are using and that 
the Python you are using was built with but, in general on most 
POSIX-like systems, one way to do it should be to supply it via an 
LDFLAGS environment variable.  The safest approach would be to get the 
default value of LDFLAGS for this Python instance, append your 
additional values to it, and pass it back into the setup.py build.  You 
can do that all in one line:

LDFLAGS="$(python -c 'import 
sysconfig;print(sysconfig.get_config_var("LDFLAGS"))') 
-Wl,--allow-shlib-undefined" python setup.py build

-- 
 Ned Deily,
 nad at acm.org




More information about the Python-list mailing list