From: rlboyd <rl...@gm...> - 2007-11-19 02:57:06
|
I finally have been successful in getting player plugins working on the Gumstix after a day of beating my head against my LCD. I traced the issue to the fact that build root is copying the outputs from libtool-1.5.20 to the appropriate places in root but the player build script is looking for them in the staging_dir. Below you will find the steps I follow to prove it was broken and then what I did to work around it. This assumes that you have already followed all the steps outlined here http://playerstage.sourceforge.net/wiki/Cross-compiling to fix RPC in buildroot. I pulled a fresh snapshot of player from cvs and executed the following commands; $ cvs -z3 -d:pserver:ano...@pl...:/cvsroot/playerstage co -P code $ cd code/player $ autoreconf -fi $ ./configure --build=x86-linux --host=arm-linux --disable-alldrivers --prefix=<path-to-buildroot>gumstix-buildroot/build_arm_nofpu/staging_dir/usr --exec-prefix=<path-to-buildroot>gumstix-buildroot/build_arm_nofpu/staging_dir Note: The above command is all on one line. As expected the configure script reported the line below related to libltdl. "checking for lt_dlopenext in -lltdl... no" Regardless I run the following just to prove it is still broken. $ make install I copied player and its associated shard libs from the staging_dir onto the Gumstix. I then tried to execute player using the exampledriver plugin. # player example.cfg error : Sorry, no support for shared libraries, so can't load plugins. error : You should install libltdl, which is part of GNU libtool, then re-compile player. error : failed to load plugin: libexampledriver As expected player throws an error indicating that there is no support for plugins. Now to get around this I manually moved the files from the libtool-1.5.20 to the staging_dir. 1) Copied all the files from "gumstix-buildroot/build_arm_nofpu/libtool-1.5.20/libltdl/.libs" to "gumstix-buildroot/build_arm_nofpu/staging_dir/lib" 2) Copied the ltdl.h file from "gumstix-buildroot/build_arm_nofpu/libtool-1.5.20/libltdl" to "gumstix-buildroot/build_arm_nofpu/staging_dir/include" I am not sure where in the buildroot process its not doing this I am not sure how to go about fixing it properly. Any have any ideas where to start looking? Then I one again ran players configure script as before. $ ./configure --build=x86-linux --host=arm-linux --disable-alldrivers --prefix=<path-to-buildroot>gumstix-buildroot/build_arm_nofpu/staging_dir/usr --exec-prefix=<path-to-buildroot>gumstix-buildroot/build_arm_nofpu/staging_dir Note: The above command is all on one line. This time however the configure script reports all is good with libltdl. "checking for lt_dlopenext in -lltdl... yes" I think SUCCESS and continue to the process holding my breath. :) $ make install I copied player and its associated shard libs from the staging_dir onto the Gumstix. I then execute player using the exampledriver plugin. # player example.cfg trying to load /bin/./libexampledriver... success invoking player_driver_init()... Example driver initializing Example driver done success listening on 6665 Listening on ports: 6665 This time player sucessfully loads the plugin. I also had this work when using the "--disable-shared" option with player. This has the advantage of making deployment to the device much easier. Hope this helps someone else. Richard -- View this message in context: http://www.nabble.com/Gunstix-%2B-Player-v.2.1.0-%2B-Shared-Libs-%2B-Plugins-%3D-SUCCESS-tf4832995.html#a13827053 Sent from the Gumstix mailing list archive at Nabble.com. |