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

Cyd Haselton chaselton at gmail.com
Mon Oct 27 19:20:36 EDT 2014


On Mon, Oct 27, 2014 at 3:39 PM, Ned Deily <nad at acm.org> wrote:
> 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
>

I'm building python on an Android device in the KBOX
environment...which simulates a Unix type filesystem.
Python isn't installed; I'm building from sources (2.7.8) with GCC
4.8.0 and make.

The problem with the LDFLAGS approach is that some of the libraries
that must be linked (-lc -ldl) do not need the --allow-shlib-undefined
option...it's only the lpython2.7 that does.  Any way to do this?

Cyd Haselton



More information about the Python-list mailing list