[libcamera-devel] [PATCH 0/5] Support loading IPAs from the build tree

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Feb 5 15:12:15 CET 2020


Hi Nicolas,

On 05/02/2020 14:03, Nicolas Dufresne wrote:
> 
> 
> Le mer. 5 févr. 2020 08 h 04, Kieran Bingham
> <kieran.bingham at ideasonboard.com
> <mailto:kieran.bingham at ideasonboard.com>> a écrit :
> 
>     When developing and testing libcamera, the usual development model is to
>     compile and run one of the test or utility applications.
> 
> 
> I like it. Be aware that it won't work for me. It only work if the build
> path matches run path, which isn't the case when cross compiling and
> exporting over NFS. Any suggestion ?

Interesting (and painful) point.

Ideally it would be a relative path, but the binary path
 (/proc/self/exe) doesn't always have to stay relative to the library
path ...

I wonder if I can get the library path at runtime... Time to dig into
what else is in the _DYNAMIC table perhaps.

Otherwise, I'm certainly open to suggestions from the list here ;-)

--
Kieran



>     IPA modules are loaded by the IPAManager, from a system path, or by
>     parsing an
>     environment variable.
> 
>     Provide the build path to the library through a temporary storage in the
>     runpath of the ELF library strings table.  This entry is stripped at
>     install
>     time, but allows us to identify the location of the recently
>     compiled IPA
>     modules without the user having to manually declare paths to the
>     build system.
> 
>     Previously to this series the IPA tests would only be able to be run
>     from the
>     root of the build tree, due to the hardcoded path relative to that
>     point. Now
>     that the IPAs can be found from their build location, we no longer
>     need to
>     provide this hardcoded path through the LIBCAMERA_IPA_MODULE_PATH
>     for tests,
>     and as a further consequence they can be run directly without
>     requiring the
>     launch to be run from the top level of the build tree.
> 
>     Kieran Bingham (5):
>       libcamera: utils: Provide helper to get dynamic library runpath
>       libcamera: ipa_manager: Split path handling
>       libcamera: ipa_manager: Allow recursive parsing
>       libcamera: ipa_manager: Search the runpath for IPA libraries
>       tests: Remove IPA_MODULE_PATH environment variable
> 
>      src/libcamera/include/ipa_manager.h |   5 +-
>      src/libcamera/include/utils.h       |   1 +
>      src/libcamera/ipa_manager.cpp       | 111 ++++++++++++++++++++++------
>      src/libcamera/meson.build           |   1 +
>      src/libcamera/utils.cpp             |  26 +++++++
>      src/meson.build                     |   7 ++
>      test/libtest/test.cpp               |   4 -
>      7 files changed, 126 insertions(+), 29 deletions(-)
> 
>     -- 
>     2.20.1
> 
>     _______________________________________________
>     libcamera-devel mailing list
>     libcamera-devel at lists.libcamera.org
>     <mailto:libcamera-devel at lists.libcamera.org>
>     https://lists.libcamera.org/listinfo/libcamera-devel
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list