mirror of
git://git.yoctoproject.org/meta-raspberrypi.git
synced 2025-07-19 12:59:03 +02:00
userland: Add '--no-as-needed' linker flag
This is done to ensure all specified shared libraries are linked against applications (e.g. raspivid)i. libmmal_vc_client.so makes use of __attribute__(constructor) to ensure that supplier components (e.g. camera) are loaded when the static library is loaded. raspivid, and possibly other applications, link against libmmal_vc_client.so, causing the ctor to execute, but there is no needed dependency. Some build environments (e.g. Yocto/OpenEmbedded) pass the '--no-as-needed' linker flag which removes the dependency on libmmal_vc_client and thus components are not registered. In this situation raspivid then gives an error of the form root@raspberrypi:~# raspivid -o test mmal: mmal_component_create_core: could not find component 'vc.ril.camera' mmal: Failed to create camera component mmal: main: Failed to create camera component mmal: Failed to run camera app. Please check for firmware updates For further details see: https://lists.yoctoproject.org/pipermail/yocto/2014-June/019933.html Change-Id: I9d787fd83379e8b6428dde3827395c8b96be1f7f Signed-off-by: Alex J Lennon <ajlennon@dynamicdevices.co.uk> Acked-by: Andrei Gherzan <andrei@gherzan.ro>
This commit is contained in:
parent
f3a8693f08
commit
e7fdcad1fa
|
@ -18,7 +18,7 @@ S = "${WORKDIR}/git"
|
|||
|
||||
inherit cmake
|
||||
|
||||
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release"
|
||||
EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DCMAKE_EXE_LINKER_FLAGS='-Wl,--no-as-needed'"
|
||||
|
||||
# The compiled binaries don't provide sonames.
|
||||
SOLIBS = "${SOLIBSDEV}"
|
||||
|
|
Loading…
Reference in New Issue
Block a user