This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author masamoto
Recipients erik.bray, masamoto
Date 2016-09-14.08:25:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1473841542.62.0.996664155856.issue27374@psf.upfronthosting.co.za>
In-reply-to
Content
Hello, Eric.
I tried to build the '_speedups' C extension module of simplejson (third party library) using the python built on cygwin. As you pointed out, the build of '_speedups' C extension module at the stage of the link failed.

build log:
Python3.5.2+ has be used. It has applyed patches to known issues.

$ ./configure --prefix=/opt/py35 --with-threads --with-dbmliborder=gdbm --with-system-ffi --with-system-expat
$ make && make altinstall
$ LANG=C /opt/py35/bin/pip3.5 install simplejson
(snip)
running build_ext
    building 'simplejson._speedups' extension
    creating build/temp.cygwin-2.6.0-i686-3.5
    creating build/temp.cygwin-2.6.0-i686-3.5/simplejson
    gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/opt/py35/include/python3.5m -c simplejson/_speedups.c -o build/temp.cygwin-2.6.0-i686-3.5/simplejson/_speedups.o
    gcc -shared -Wl,--enable-auto-image-base build/temp.cygwin-2.6.0-i686-3.5/simplejson/_speedups.o -L/opt/py35/lib/python3.5/config -L/opt/py35/lib -lpython3.5m -o build/lib.cygwin-2.6.0-i686-3.5/simplejson/_speedups.cpython-35m.dll
    /usr/lib/gcc/i686-pc-cygwin/5.4.0/../../../../i686-pc-cygwin/bin/ld: cannot find -lpython3.5m
    collect2: error: ld returned 1 exit status
    ***************************************************************************
    WARNING: The C extension could not be compiled, speedups are not enabled.
    Failure information, if any, is above.
    I'm retrying the build without the C extension now.
    ***************************************************************************
(snip)

In the log, -L option specified to "/opt/py35/lib/python3.5/config". But, the current python has "/opt/py35/lib/python3.5/config-3.5m" instead of "/opt/py35/lib/python3.5/config". And libpython3.5m.dll.a library exists in the config-3.5m. I think that to succeed building a C extension module if -L options is changed to "/opt/py35/lib/python3.5/config-3.5m". 
I'm going to try to find the place that add -L option at build time.
History
Date User Action Args
2016-09-14 08:25:42masamotosetrecipients: + masamoto, erik.bray
2016-09-14 08:25:42masamotosetmessageid: <1473841542.62.0.996664155856.issue27374@psf.upfronthosting.co.za>
2016-09-14 08:25:42masamotolinkissue27374 messages
2016-09-14 08:25:42masamotocreate