[OE-core] python recipes with extensions fail to find/link with proper libraries
Alejandro Enedino Hernandez Samaniego
alejandro.enedino.hernandez-samaniego at xilinx.com
Mon May 7 21:27:59 UTC 2018
Hello Francesco,
Please hit the reply-all button, otherwise I wont be getting notified
when you reply.
I think you're doing something very specific since you're building on
target and tweaking the build system so to help you more I would need to
take a look at the recipes you are using.
Alejandro
On 05/04/2018 01:19 AM, Francesco Giancane wrote:
> Hi Alejandro,
>
> Thank you for your response.
> I know that openblas recipe is a pain, given that its Makefile is not
> correctly written with respect to cross-compilation. However, the
> library has been built locally on the target (sigh!) and then it is
> being deployed with a recipe which unpacks the built binary and copy
> them into the sys root.
>
> So, from the openblas side, everything is OK.
>
> What is actually wrong is the configuration step for python3-numpy and
> python3-scipy: in the setup.py they are instructed to search for some
> libraries (namely, openblas amongst them) but they fail to search for
> them given that the path they are searching for is the sysroot-native,
> rather than sysroot. (you can see it clearly from the logs attached in
> the first message).
>
> Installing the packages using pip3 install scipy numpy on the target
> results on a correct execution (and libraries are properly found and
> linked).
>
> Thank you,
> Francesco Giancane
>
>
>
>
> Il giorno ven 4 mag 2018 alle ore 03:01 Alejandro Enedino Hernandez
> Samaniego <alejandr at xilinx.com <mailto:alejandr at xilinx.com>> ha scritto:
>
> Hello Francesco,
>
> It would be helpful if you could provide more information about
> this, e.g. access to your layer or your recipes, to make sure they
> are actually being built correctly, also I would start by manually
> linking it against the built library to see if the error is just
> not having them on the correct path, but I seem to remember a lot
> of issues when trying to cross compile openblas, specially for an
> arm MACHINE.
>
> Alejandro
>
> *From:* openembedded-core-bounces at lists.openembedded.org
> <mailto:openembedded-core-bounces at lists.openembedded.org>
> [mailto:openembedded-core-bounces at lists.openembedded.org
> <mailto:openembedded-core-bounces at lists.openembedded.org>] *On
> Behalf Of *Francesco Giancane
> *Sent:* Wednesday, May 2, 2018 2:33 PM
> *To:* OE-core <openembedded-core at lists.openembedded.org
> <mailto:openembedded-core at lists.openembedded.org>>
> *Subject:* [OE-core] python recipes with extensions fail to
> find/link with proper libraries
>
> Hi Everyone,
>
> I found a problem working with python(3) and C extensions.
>
> The use-case is the recipe for python(3)-numpy, which can be
> linked against a BLAS/LAPACK library to use accelerated matricial
> and vectorial operations.
>
> As it is currently shipped, the recipe fails to find any proper
> library and then does not use extensions.
>
> I wrote a custom recipe for openblas which is correctly built &
> deploy using standard commands.
>
> openblas is also added as a DEPENDS in a bbappend file for numpy.
>
> However, the do_compile phase cannot find the aforementioned library.
>
> Log attached:
>
> DEBUG: Executing shell function do_compile
>
> blas_opt_info:
>
> blas_mkl_info:
>
> customize UnixCCompiler
>
> libraries mkl_rt not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> blis_info:
>
> customize UnixCCompiler
>
> libraries blis not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> openblas_info:
>
> customize UnixCCompiler
>
> customize UnixCCompiler
>
> libraries openblas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> atlas_3_10_blas_threads_info:
>
> Setting PTATLAS=ATLAS
>
> customize UnixCCompiler
>
> libraries tatlas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> atlas_3_10_blas_info:
>
> customize UnixCCompiler
>
> libraries satlas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> atlas_blas_threads_info:
>
> Setting PTATLAS=ATLAS
>
> customize UnixCCompiler
>
> libraries ptf77blas,ptcblas,atlas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> atlas_blas_info:
>
> customize UnixCCompiler
>
> libraries f77blas,cblas,atlas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> blas_info:
>
> customize UnixCCompiler
>
> libraries blas not found in
> ['/home/fgp/poky/rpi3_64/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/python3-numpy/1.14.2-r0/recipe-sysroot-native/usr/lib']
>
> NOT AVAILABLE
>
> blas_src_info:
>
> NOT AVAILABLE
>
> NOT AVAILABLE
>
> ...And it is correct for it to fail as it is searching for
> openblas in the wrong path (sysroot-native vs sysroot).
>
> I would assume that this is a setuptools.bbclass issue, does
> anyone know what to do? Is it trivial to fix?
>
> I noticed that all the shipped python extensions were built as if
> we were building for x86, even though the MACHINE is an arm target.
>
> Thank you for your attention,
>
>
> Francesco Giancane
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180507/a9f555bf/attachment-0002.html>
More information about the Openembedded-core
mailing list