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

Cyd Haselton chaselton at gmail.com
Fri Oct 31 07:12:29 EDT 2014


On Tue, Oct 28, 2014 at 4:01 PM, Ned Deily <nad at acm.org> wrote:
> In article
> <CAHu5Pra68EDgkvFYHTQ+SrmB6syew9A1SAbB5CEmLuzqbs5vQg at mail.gmail.com>,
>  Cyd Haselton <chaselton at gmail.com> wrote:
>
>> On Tue, Oct 28, 2014 at 3:11 AM, Ned Deily <nad at acm.org> wrote:
>> > In article
>> > <CAHu5PrY-T=DT3wOg-Y+Va9WgwBV3w9d7M-tu=_N-CNgWsSzGpg at mail.gmail.com>,
>> >  Cyd Haselton <chaselton at gmail.com> wrote:
>> > [...]
>> >> 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?
>> >
>> > Sorry, I have no experience with that environment nor an understanding
>> > of why you need to specify --allow-shlib-undefined (it seems to be the
>> > default in some versions of ld).  You could look at and, if necessary,
>> > modify Lib/distutils, the part of the Python standard library that
>> > builds extension modules from setup.py.
>
>> No need to apologize.  Also no need to have an understanding of the
>> environment; with a few rare exceptions it behaves just like a
>> Unix/Linux one.
>>
>> The reason why I need to specify --allow-shlib-undefined is for the
>> python library; it's throwing undefined references to sincos even
>> though the symbol is there. Specifying that option is the only fix
>> I've found.
>>
>> As mentioned earlier, i'm not familiar with python or its build
>> system; which file in the distutils dir do I need to modify?
>
> Perhaps I should apologize for not asking earlier what you are really
> trying to do before suggesting heading down the path of modifying
> Distutils :)  So the issue is with an undefined reference to sincos?  It
> appears that that routine is often supplied in libm.  Is that the case
> on your platform?  And, if so, the right fix might be to supply it
> manually or, better, ensure that Python supplies it as a result of
> running ./configure.  Also, what version of Python are you building?
>
> --
>  Ned Deily,
>  nad at acm.org
>
> --
> https://mail.python.org/mailman/listinfo/python-list

So, after trying various ways to add that flag before lpython in
setup.py, I stripped all --allow-shlib-undefined
--no-allow-shlib-undefined feom the Makefile, ran make clean, and
make.

I still get the following error:
Modules/python.o \
                -lc -ldl -lm  -L. -lpython2.7   -lm
./libpython2.7.so: undefined reference to `sincos'
collect2: error: ld returned 1 exit status
make: *** [python] Error 1

Should I repost this to the dev mailing list?



More information about the Python-list mailing list