Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Wrong rpath after linking with libmysqlclient
@ 2015-12-13 20:07 Arnout Vandecappelle
  2015-12-13 20:13 ` Yann E. MORIN
  0 siblings, 1 reply; 3+ messages in thread
From: Arnout Vandecappelle @ 2015-12-13 20:07 UTC (permalink / raw)
  To: buildroot

 Hi all,

 First of all, the symptomps: build the defconfig in attachment, run with

qemu-system-arm -M nuri -kernel output/images/zImage -append \
 "console=ttySAC1,115200" -smp 2 -serial null -serial stdio

and you'll see:

Starting php-fpm /usr/sbin/php-fpm: error while loading shared libraries:
libmysqlclient.so.16: cannot open shared object file: No such file or directory


 readelf reveals:

Library rpath: [.../host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/mysql]

 i.e. rpath points to staging instead of the on-target directory.

 Indeed, in libmysqlclient.la we find:

libdir='.../host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/mysql'


 This happens because our 'Fixing libtool files' step makes sure that all
absolute paths have STAGING_DIR prepended to them.


 This problem will occur for any library that doesn't install in /lib or
/usr/lib and that uses libtool.


 My first idea was to install libmysqlclient.so in /usr/lib instead, but that's
probably a great idea. So the next idea is to skip the libdir= line when fixing
up the libtool files. However, I'm not sure if that won't have some other
effects (i.e. missing required link flags). But worse, it doesn't even work:
php's libtool still converts it into
-Wl,--rpath -Wl,.../host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/mysql
(and gives warnings that the libraries have moved.

 Any idea?

 A final option is to fix up the rpaths of all ELF files in the target after
build. I believe Yann has a series that does exactl that, no?

 Regards,
 Arnout
-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
--
BR2_arm=y
BR2_cortex_a9=y
BR2_ARM_ENABLE_NEON=y
BR2_ARM_FPU_VFPV3D16=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TARGET_GENERIC_GETTY_PORT="ttySAC1"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.10.92"
BR2_LINUX_KERNEL_DEFCONFIG="exynos4"
BR2_LINUX_KERNEL_ZIMAGE=y
BR2_PACKAGE_PHP=y
# BR2_PACKAGE_PHP_EXT_SESSION is not set
# BR2_PACKAGE_PHP_EXT_ZLIB is not set
BR2_PACKAGE_PHP_EXT_MYSQLI=y
BR2_PACKAGE_PHP_SAPI_CLI_FPM=y
BR2_TARGET_ROOTFS_INITRAMFS=y
# BR2_TARGET_ROOTFS_TAR is not set

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-13 21:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-13 20:07 [Buildroot] Wrong rpath after linking with libmysqlclient Arnout Vandecappelle
2015-12-13 20:13 ` Yann E. MORIN
2015-12-13 21:22   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox