libfsl*: fix install path + update conf opts
v2 cover libfsl*: fix install path + update conf opts
Hi all,
I meant to do this series for a long time:
http://patchwork.ozlabs.org/patch/409684/
I tried to split what Jeff offered into separate patches.
Some are taking care of the install path that was causing troubles to gst-fsl-plugins at runtime since we don't use ldconfig.
The other patches enable some missing configure options (hard float and vpu) as pointed by Jeff.
Changelog:v1->v2:
- add staging for libfslparser although not required so far -> suggested by Jerome for consistency between libfsl packages
- use symlinks for both staging and install dir
-> suggested by Jerome for consistency between both folders
Here is the defconfig that has been used to test those patches:
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_EABIHF=y
BR2_ARM_ENABLE_NEON=y
BR2_ARM_FPU_NEON=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_TARGET_GENERIC_GETTY_PORT="ttymxc1"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/boundarydevices/nitrogen6x/post-build.sh"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/boundarydevices/linux-imx6/tarball/d7a412b/linux-imx6-d7a412b.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="boundary"
BR2_LINUX_KERNEL_ZIMAGE=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="imx6dl-nit6xlite imx6dl-nitrogen6_vm imx6dl-nitrogen6x imx6q-nitrogen6x imx6q-nitrogen6_max imx6q-sabrelite" BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
BR2_PACKAGE_ALSA_UTILS_AMIDI=y
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_APLAYMIDI=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_GSTREAMER=y
BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y
BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST_PLUGINS_GOOD=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_FLV=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ID3DEMUX=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_MATROSKA=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_VIDEOBOX=y
BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_V4L2=y
BR2_PACKAGE_GST_FSL_PLUGINS=y
BR2_PACKAGE_GSTREAMER1=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIORATE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_AUDIOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ENCODING=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOCONVERT=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_GIO=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_SUBPARSE=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_TCP=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_VIDEOTESTSRC=y
BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_ALSA=y
BR2_PACKAGE_GST1_PLUGINS_GOOD=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUDIOPARSERS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_AUTODETECT=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_DEBUGUTILS=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLV=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_ID3DEMUX=y
BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_MATROSKA=y
BR2_PACKAGE_GST1_IMX=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX6Q=y
BR2_PACKAGE_IMX_GPU_VIV=y
BR2_PACKAGE_IMX_GPU_VIV_APITRACE=y
BR2_PACKAGE_IMX_GPU_VIV_EXAMPLES=y
BR2_PACKAGE_IMX_GPU_VIV_GMEM_INFO=y
BR2_PACKAGE_FONTCONFIG=y
BR2_PACKAGE_IPERF3=y
BR2_PACKAGE_OPENSSH=y
BR2_PACKAGE_RSYNC=y
BR2_PACKAGE_HOST_MKE2IMG=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
I'll detail on each patch what has been done.
Regards,
Gary
Gary Bisson (4):
libfslcodec: add install hooks to fix libraries path
libfslcodec: add missing configure options
libfslparser: add install hooks to fix libraries path
libfslparser: add missing configure options
package/libfslcodec/libfslcodec.mk | 23 +++++++++++++++++++++++ package/libfslparser/libfslparser.mk | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+)
Signature · 1 line
2.6.2
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
By default, all the libraries are installed under /usr/lib/imx-mm which causes problems at runtime.
The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.inc
---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)
Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
Regards,
Gary
--- package/libfslcodec/libfslcodec.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
package/libfslcodec/libfslcodec.mk +15 -0
@@ -20,4 +20,19 @@ endef # FIXME The Makefile installs both the arm9 and arm11 versions of the # libraries, but we only need one of them. +# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx). +define LIBFSLCODEC_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_STAGING_HOOKS += LIBFSLCODEC_FIXUP_STAGING_PATH + +# Use symlinks in install dir as well to match staging setup. +define LIBFSLCODEC_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(TARGET_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_TARGET_HOOKS += LIBFSLCODEC_FIXUP_TARGET_PATH + $(eval $(autotools-package))
Signature · 1 line
2.6.2
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 22 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incSigned-off-by Gary Bisson <[email protected]>---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)
Quoted 5 lines
Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
The link you pointed to does a move, not a copy. Why do you do a symlink?
1) Where are the libraries searched for at build time? If they are only searched for in /usr/lib/ , then do a move. If womething is positively looking for them in /usr/lin/imx-mm/ , then do a symlink, indeed.
2) Where are libraries searched for at runtime? Same logic as for build time.
Regards,
Yann E. MORIN.
Quoted 38 lines
Regards,
Gary--- package/libfslcodec/libfslcodec.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)package/libfslcodec/libfslcodec.mk +15
-0@@ -20,4 +20,19 @@ endef # FIXME The Makefile installs both the arm9 and arm11 versions of the # libraries, but we only need one of them. +# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx). +define LIBFSLCODEC_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_STAGING_HOOKS += LIBFSLCODEC_FIXUP_STAGING_PATH + +# Use symlinks in install dir as well to match staging setup. +define LIBFSLCODEC_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(TARGET_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_TARGET_HOOKS += LIBFSLCODEC_FIXUP_TARGET_PATH + $(eval $(autotools-package))Signature · 6 lines
2.6.2 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
Yann, All,
Quoted 33 lines · Yann E. MORIN
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 22 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incSigned-off-by Gary Bisson <[email protected]>---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)Quoted 5 lines
Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
The link you pointed to does a move, not a copy. Why do you do a symlink?
Quoted 7 lines
1) Where are the libraries searched for at build time? If they are only searched for in
/usr/lib/, then do a move. If womething is positively looking for them in/usr/lin/imx-mm/, then do a symlink, indeed.2) Where are libraries searched for at runtime? Same logic as for build time.
Just want to add something here, my v1 was doing a symlink in staging (because of the build time dependencies) and a move at runtime since everything is looking at the same location in that case. But then J?r?me said that he would prefer to have the same mechanism (symlink) in both even though it is not necessary for the target. The reason was to have some consistency between staging and target. What are thoughts on that?
Regards,
Gary
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
In reply to Gary BissonGary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 40 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incSigned-off-by Gary Bisson <[email protected]>---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
Regards,
Gary--- package/libfslcodec/libfslcodec.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0
package/libfslcodec/libfslcodec.mk endef · line 24
Quoted 5 lines
package/libfslcodec/libfslcodec.mk +2
-0@@ -20,4 +20,19 @@ endef # FIXME The Makefile installs both the arm9 and arm11 versions of the # libraries, but we only need one of them. +# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx).
Hmmm.. I may have overlooked that part.
So, gst-fsl-plugins looks for the libraries in /usr/lib/imx-mm/ , while gst1-imx looks for them in /usr/lib , right?
Is it possible to make gst-fsl-plugins look in /usr/lib, too?
(or the other way around if the lookup is the other way around, of course...)
Regards,
Yann E. MORIN.
package/libfslcodec/libfslcodec.mk endef · line 31
Quoted 7 lines
package/libfslcodec/libfslcodec.mk +7
-0+define LIBFSLCODEC_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_STAGING_HOOKS += LIBFSLCODEC_FIXUP_STAGING_PATH + +# Use symlinks in install dir as well to match staging setup.
In complement to my previous reply, with insight from what you said
above: even if gst-fsl-plugins looks for in /usr/lib/imx-mm at build time, does it still look there at runtime? If not, then just do a move.
Regards,
Yann E. MORIN.
Quoted 14 lines
package/libfslcodec/libfslcodec.mk +6
-0+define LIBFSLCODEC_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(TARGET_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_TARGET_HOOKS += LIBFSLCODEC_FIXUP_TARGET_PATH + $(eval $(autotools-package))Signature · 6 lines
2.6.2 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
Yann, All,
Quoted 46 lines · Yann E. MORIN
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 43 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incSigned-off-by Gary Bisson <[email protected]>---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
Regards,
Gary--- package/libfslcodec/libfslcodec.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0@@ -20,4 +20,19 @@ endef # FIXME The Makefile installs both the arm9 and arm11 versions of the # libraries, but we only need one of them.
Quoted 7 lines
package/libfslcodec/libfslcodec.mk endef · line 24
Quoted 2 lines
package/libfslcodec/libfslcodec.mk +2
-0+# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx).Hmmm.. I may have overlooked that part.
So, gst-fsl-plugins looks for the libraries in
/usr/lib/imx-mm/, while gst1-imx looks for them in/usr/lib, right?
That is correct indeed.
Quoted 1 line
Is it possible to make gst-fsl-plugins look in
/usr/lib, too?
Never really looked into it but yep maybe it is just a matter of modifying a few lines of Makefile.am. It just sounds like more troubles doing so, maybe having to update the patch every release and so on.
Quoted 2 lines
(or the other way around if the lookup is the other way around, of course...)
Gstreamer1-imx is way cleaner that gst-fsl-plugins, I'd like to keep it that way. What about removing gst-fsl-plugins and gstreamer0.10? ;)
Quoted 11 lines
package/libfslcodec/libfslcodec.mk endef · line 31
Quoted 7 lines
package/libfslcodec/libfslcodec.mk +7
-0+define LIBFSLCODEC_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_STAGING_HOOKS += LIBFSLCODEC_FIXUP_STAGING_PATH + +# Use symlinks in install dir as well to match staging setup.In complement to my previous reply, with insight from what you said
above: even if gst-fsl-plugins looks for in/usr/lib/imx-mmat build time, does it still look there at runtime? If not, then just do a move.
No, that is what people have been complaining about for quite some time now:
http://patchwork.ozlabs.org/patch/409684/
Regards,
Gary
PATCH v2 1/4 libfslcodec: add install hooks to fix libraries path
Yann, All,
Quoted 83 lines · Gary Bisson
Yann, All,
Quoted 46 lines · Yann E. MORIN
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 43 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.The hooks are inspired from the mechanism used in the Yocto recipe:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incSigned-off-by Gary Bisson <[email protected]>---
Here are the dependencies the pipelines above are testing:
$ for i in `find target/usr/lib/gstreamer*/*`; do readelf -d $i | grep NEEDED | grep lib_ && echo "($i)"; done 0x00000001 (NEEDED) Shared library: [lib_nb_amr_dec_arm9_elinux.so.2] 0x00000001 (NEEDED) Shared library: [lib_wb_amr_dec_arm9_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_amrdec.so) 0x00000001 (NEEDED) Shared library: [lib_peq_arm11_elinux.so.1.fhw] (target/usr/lib/gstreamer-0.10/libmfw_gst_audio_pp.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-0.10/libmfw_gst_mp3enc.so) 0x00000001 (NEEDED) Shared library: [lib_mp3_enc_arm12_elinux.so.2] (target/usr/lib/gstreamer-1.0/libgstimxaudio.so)Note that I added a staging install hook as well because otherwise the gst1-imx plugin doesn't find lib_mp3_enc_arm12_elinux.so at build time.
Not to copy the same library twice I decided to go with a symlink. Let me know if that's acceptable.
Regards,
Gary--- package/libfslcodec/libfslcodec.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0@@ -20,4 +20,19 @@ endef # FIXME The Makefile installs both the arm9 and arm11 versions of the # libraries, but we only need one of them.Quoted 7 lines
package/libfslcodec/libfslcodec.mk endef · line 24
Quoted 2 lines
package/libfslcodec/libfslcodec.mk +2
-0+# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx).Hmmm.. I may have overlooked that part.
So, gst-fsl-plugins looks for the libraries in
/usr/lib/imx-mm/, while gst1-imx looks for them in/usr/lib, right?That is correct indeed.
Quoted 1 line
Is it possible to make gst-fsl-plugins look in
/usr/lib, too?Never really looked into it but yep maybe it is just a matter of modifying a few lines of Makefile.am. It just sounds like more troubles doing so, maybe having to update the patch every release and so on.
Quoted 2 lines
(or the other way around if the lookup is the other way around, of course...)
Gstreamer1-imx is way cleaner that gst-fsl-plugins, I'd like to keep it that way. What about removing gst-fsl-plugins and gstreamer0.10? ;)
Quoted 11 lines
package/libfslcodec/libfslcodec.mk endef · line 31
Quoted 7 lines
package/libfslcodec/libfslcodec.mk +7
-0+define LIBFSLCODEC_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLCODEC_POST_INSTALL_STAGING_HOOKS += LIBFSLCODEC_FIXUP_STAGING_PATH + +# Use symlinks in install dir as well to match staging setup.In complement to my previous reply, with insight from what you said
above: even if gst-fsl-plugins looks for in/usr/lib/imx-mmat build time, does it still look there at runtime? If not, then just do a move.
Quoted 3 lines
No, that is what people have been complaining about for quite some time now:
http://patchwork.ozlabs.org/patch/409684/
Any update on this series? Would using symlink be acceptable?
Regards,
Gary
PATCH v2 2/4 libfslcodec: add missing configure options
In reply to Gary BissonEnable VPU and hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
BR2_PACKAGE_IMX_VPU=y
See Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.inc
Tested with the Linaro ARM 2014.09 toolchain.
---
Thanks to those options, I could see that:
- lib_jpeg_dec_arm11_elinux_novpu.so isn't copied
- lib_peq_arm11_elinux.so.1.fhw is copied instead of the fsw version
Regards,
Gary
--- package/libfslcodec/libfslcodec.mk | 8 ++++++++ 1 file changed, 8 insertions(+)
package/libfslcodec/libfslcodec.mk +8 -0
@@ -13,6 +13,14 @@ LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c LIBFSLCODEC_LICENSE_FILES = EULA COPYING LIBFSLCODEC_REDISTRIBUTE = NO +ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLCODEC_CONF_OPTS += --enable-fhw +endif + +ifeq ($(BR2_PACKAGE_IMX_VPU),y) +LIBFSLCODEC_CONF_OPTS += --enable-vpu +endif + define LIBFSLCODEC_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLCODEC_SOURCE)) endef
Signature · 1 line
2.6.2
PATCH v2 2/4 libfslcodec: add missing configure options
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 29 lines
Enable VPU and hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
BR2_PACKAGE_IMX_VPU=ySee Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incTested with the Linaro ARM 2014.09 toolchain.
Signed-off-by Gary Bisson <[email protected]>---
Thanks to those options, I could see that:
- lib_jpeg_dec_arm11_elinux_novpu.so isn't copied
- lib_peq_arm11_elinux.so.1.fhw is copied instead of the fsw versionRegards,
Gary--- package/libfslcodec/libfslcodec.mk | 8 ++++++++ 1 file changed, 8 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 18
Quoted 6 lines
package/libfslcodec/libfslcodec.mk +3
-0@@ -13,6 +13,14 @@ LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c LIBFSLCODEC_LICENSE_FILES = EULA COPYING LIBFSLCODEC_REDISTRIBUTE = NO +ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLCODEC_CONF_OPTS += --enable-fhw +endif
What about adding --disable-fhw when not EABIhf?
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 22
Quoted 3 lines
package/libfslcodec/libfslcodec.mk +3
-0+ifeq ($(BR2_PACKAGE_IMX_VPU),y) +LIBFSLCODEC_CONF_OPTS += --enable-vpu +endif
Ditto when imx-vpu is not enabled?
Regards,
Yann E. MORIN.
Quoted 10 lines
package/libfslcodec/libfslcodec.mk +0
-0define LIBFSLCODEC_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLCODEC_SOURCE)) endefSignature · 6 lines
2.6.2 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 2/4 libfslcodec: add missing configure options
Yann, All,
Quoted 35 lines · Yann E. MORIN
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 32 lines
Enable VPU and hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
BR2_PACKAGE_IMX_VPU=ySee Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incTested with the Linaro ARM 2014.09 toolchain.
Signed-off-by Gary Bisson <[email protected]>---
Thanks to those options, I could see that:
- lib_jpeg_dec_arm11_elinux_novpu.so isn't copied
- lib_peq_arm11_elinux.so.1.fhw is copied instead of the fsw versionRegards,
Gary--- package/libfslcodec/libfslcodec.mk | 8 ++++++++ 1 file changed, 8 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0@@ -13,6 +13,14 @@ LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c LIBFSLCODEC_LICENSE_FILES = EULA COPYING LIBFSLCODEC_REDISTRIBUTE = NO
Quoted 5 lines
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 18
Quoted 3 lines
package/libfslcodec/libfslcodec.mk +3
-0+ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLCODEC_CONF_OPTS += --enable-fhw +endifWhat about adding --disable-fhw when not EABIhf?
The configure only looks for enable-fhw and therefore considers the features is disabled by default.
Quoted 5 lines
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 22
Quoted 3 lines
package/libfslcodec/libfslcodec.mk +3
-0+ifeq ($(BR2_PACKAGE_IMX_VPU),y) +LIBFSLCODEC_CONF_OPTS += --enable-vpu +endifDitto when imx-vpu is not enabled?
Same here for the vpu option, configure only looks for the enable option.
Regards,
Gary
PATCH v2 2/4 libfslcodec: add missing configure options
Yann, All,
Quoted 47 lines · Gary Bisson
Yann, All,
Quoted 35 lines · Yann E. MORIN
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 32 lines
Enable VPU and hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
BR2_PACKAGE_IMX_VPU=ySee Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslcodec/libfslcodec.incTested with the Linaro ARM 2014.09 toolchain.
Signed-off-by Gary Bisson <[email protected]>---
Thanks to those options, I could see that:
- lib_jpeg_dec_arm11_elinux_novpu.so isn't copied
- lib_peq_arm11_elinux.so.1.fhw is copied instead of the fsw versionRegards,
Gary--- package/libfslcodec/libfslcodec.mk | 8 ++++++++ 1 file changed, 8 insertions(+)package/libfslcodec/libfslcodec.mk +0
-0@@ -13,6 +13,14 @@ LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c LIBFSLCODEC_LICENSE_FILES = EULA COPYING LIBFSLCODEC_REDISTRIBUTE = NOQuoted 5 lines
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 18
Quoted 3 lines
package/libfslcodec/libfslcodec.mk +3
-0+ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLCODEC_CONF_OPTS += --enable-fhw +endifWhat about adding --disable-fhw when not EABIhf?
The configure only looks for enable-fhw and therefore considers the features is disabled by default.
Quoted 8 lines
Quoted 5 lines
package/libfslcodec/libfslcodec.mk LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c · line 22
Quoted 3 lines
package/libfslcodec/libfslcodec.mk +3
-0+ifeq ($(BR2_PACKAGE_IMX_VPU),y) +LIBFSLCODEC_CONF_OPTS += --enable-vpu +endifDitto when imx-vpu is not enabled?
Same here for the vpu option, configure only looks for the enable option.
Sorry for reviving this thread (again), but I was thinking that maybe we could merge the two "missing configure options" patches from the series since they do not depend on the libraries location fix.
Then I could offer another version of the series with only the path fix. I'm still unclear on which option would get those patches approved. I understand the symbolic links aren't great. I'm considering removing gst-fsl-plugins for GStreamer0.10 since Yocto did it:
https://github.com/Freescale/meta-fsl-arm/commit/83b240e7
Let me know your thoughts.
Thanks,
Gary
PATCH v2 3/4 libfslparser: add install hooks to fix libraries path
In reply to Gary BissonBy default, all the libraries are installed under /usr/lib/imx-mm which causes problems at runtime.
---
I'm actually not sure if libfslparser is needed at all. I couldn't find a library depending on any of the one from the package. But Yocto still has depency on the package for gst-fsl-plugins:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-multimedia/gstreamer/gst-fsl-plugin.inc#L9
Regards,
Gary
--- package/libfslparser/libfslparser.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)
package/libfslparser/libfslparser.mk +15 -0
@@ -20,4 +20,19 @@ endef # The Makefile installs several versions of the libraries, but we only # need one of them, depending on the platform. +# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx). +define LIBFSLPARSER_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLPARSER_POST_INSTALL_STAGING_HOOKS += LIBFSLPARSER_FIXUP_STAGING_PATH + +# Use symlinks for install dir as well to match staging setup. +define LIBFSLPARSER_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(TARGET_DIR)/usr/lib \; +endef +LIBFSLPARSER_POST_INSTALL_TARGET_HOOKS += LIBFSLPARSER_FIXUP_TARGET_PATH + $(eval $(autotools-package))
Signature · 1 line
2.6.2
PATCH v2 3/4 libfslparser: add install hooks to fix libraries path
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 23 lines
By default, all the libraries are installed under
/usr/lib/imx-mmwhich causes problems at runtime.Signed-off-by Gary Bisson <[email protected]>---
I'm actually not sure if libfslparser is needed at all. I couldn't find a library depending on any of the one from the package. But Yocto still has depency on the package for gst-fsl-plugins:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-multimedia/gstreamer/gst-fsl-plugin.inc#L9Regards,
Gary--- package/libfslparser/libfslparser.mk | 15 +++++++++++++++ 1 file changed, 15 insertions(+)package/libfslparser/libfslparser.mk +0
-0
package/libfslparser/libfslparser.mk endef · line 24
Quoted 5 lines
package/libfslparser/libfslparser.mk +2
-0@@ -20,4 +20,19 @@ endef # The Makefile installs several versions of the libraries, but we only # need one of them, depending on the platform. +# Use symlinks in staging dir so every application can link against the libs +# whether they look at imx-mm or not (gst-fsl-plugins vs. gst1-imx).
Same comments as my previous replies to the first patch in this series.
package/libfslparser/libfslparser.mk endef · line 31
Quoted 7 lines
package/libfslparser/libfslparser.mk +7
-0+define LIBFSLPARSER_FIXUP_STAGING_PATH + find $(STAGING_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(STAGING_DIR)/usr/lib \; +endef +LIBFSLPARSER_POST_INSTALL_STAGING_HOOKS += LIBFSLPARSER_FIXUP_STAGING_PATH + +# Use symlinks for install dir as well to match staging setup.
Ditto.
Regards,
Yann E. MORIN.
Quoted 14 lines
package/libfslparser/libfslparser.mk +6
-0+define LIBFSLPARSER_FIXUP_TARGET_PATH + find $(TARGET_DIR)/usr/lib/imx-mm -mindepth 2 -maxdepth 2 -not -type d \ + -exec ln -fs {} $(TARGET_DIR)/usr/lib \; +endef +LIBFSLPARSER_POST_INSTALL_TARGET_HOOKS += LIBFSLPARSER_FIXUP_TARGET_PATH + $(eval $(autotools-package))Signature · 6 lines
2.6.2 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH v2 4/4 libfslparser: add missing configure options
In reply to Gary BissonEnable hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
See Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslparser/libfslparser.inc
Tested with Linaro ARM 2014.09 toolchain.
---
Thanks to those options, I could see that libraries from copied from release/lib/yocto/hw instead of release/lib/yocto/sw.
Regards,
Gary
--- package/libfslparser/libfslparser.mk | 4 ++++ 1 file changed, 4 insertions(+)
package/libfslparser/libfslparser.mk +4 -0
@@ -13,6 +13,10 @@ LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement LIBFSLPARSER_LICENSE_FILES = EULA COPYING LIBFSLPARSER_REDISTRIBUTE = NO +ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLPARSER_CONF_OPTS += --enable-fhw +endif + define LIBFSLPARSER_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLPARSER_SOURCE)) endef
Signature · 1 line
2.6.2
PATCH v2 4/4 libfslparser: add missing configure options
Gary, All,
On 2015-12-10 14:52 +0100, Gary Bisson spake thusly:
Quoted 27 lines
Enable hard float support when the proper configuration is setup. BR2_ARM_EABIHF=y
See Yocto equivalent:
https://github.com/Freescale/meta-fsl-arm/blob/fido/recipes-
multimedia/libfslparser/libfslparser.incTested with Linaro ARM 2014.09 toolchain.
Signed-off-by Gary Bisson <[email protected]>---
Thanks to those options, I could see that libraries from copied from release/lib/yocto/hw instead of release/lib/yocto/sw.
Regards,
Gary--- package/libfslparser/libfslparser.mk | 4 ++++ 1 file changed, 4 insertions(+)package/libfslparser/libfslparser.mk +0
-0
package/libfslparser/libfslparser.mk LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement · line 18
Quoted 6 lines
package/libfslparser/libfslparser.mk +3
-0@@ -13,6 +13,10 @@ LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement LIBFSLPARSER_LICENSE_FILES = EULA COPYING LIBFSLPARSER_REDISTRIBUTE = NO +ifeq ($(BR2_ARM_EABIHF),y) +LIBFSLPARSER_CONF_OPTS += --enable-fhw +endif
What about adding --disable-fhw when not EABIhf?
Regards,
Yann E. MORIN.
Quoted 10 lines
package/libfslparser/libfslparser.mk +0
-0define LIBFSLPARSER_EXTRACT_CMDS $(call FREESCALE_IMX_EXTRACT_HELPER,$(DL_DIR)/$(LIBFSLPARSER_SOURCE)) endefSignature · 6 lines
2.6.2 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'