[Helix-client-dev] several splay_mp3 profile/branch buildcombinations (why do some work, and some don't?)
Greg Wright gwright at real.comJust a couple notes:
o The helix-player branch should only be used to build the
GTK based player, not any of the other client targets.
o DLLs, even though they get built, can fail to load, resulting
in your 0x80040011(missing componets) error, because of undefined
symbols in them. This can happen if you choose a bad branch/profile
combination. You can test this with a simple app under linux:
#include "dlfcn.h"
#include "stdio.h"
int main(int argc, char *argv[])
{
int i;
for (i = 1 ; i < argc ; ++i)
{
fprintf(stderr, "Loading %s..... ", argv[i]);
if (!dlopen(argv[i], RTLD_LAZY) )
fprintf(stderr, "Failed! %s\n", dlerror());
else
fprintf(stderr, "Groovy baby!\n");
}
}
Just compile that in your helix dir and test your dlls:
cd helix-source-dir
gcc dlltest.c
a.out debug/*.so
o If you are working under linux the branches I would play with are
helix (HEAD == always changing)
hxclient_1_3_0_neptunex (pretty stable)
hxclient_1_4_1_neptunex (frozen branch)
o The splay_mp3 target is really only tested with the *-local_mp3
profile. If you want to build with the all-defines profiles
you should switch to the 'splay' target (for a full featured player).
o If you find any dist-libs that give you problems it means that they
might be out of date and we can update them for you. Especially on
those *_neptunex branches.
--greg.
----- Original Message -----
From: "Wouter van Heyst" <wouter at vidicode.nl>
To: <helix-client-dev at lists.helixcommunity.org>
Sent: Wednesday, May 12, 2004 8:22 AM
Subject: [Helix-client-dev] several splay_mp3 profile/branch buildcombinations (why do some work, and some don't?)
> Hello,
>
> I've tried building the splay_mp3 target in various configurations, some
> work better than others. I've tried the two branches helix and
> helix-player, and profiles helix-client-all-defines,
> helix-client-all-defines-nodist, helix-client-all-defines-free,
> helix-client-local-mp3
>
> All of this with a system id of linux-2.2-libc6-gcc32-powerpc.
> The helix branch defaults to a debug build, and the helix-player branch
> to a release build. I've built with -c (so profiles shouldn't mix), and
> used different fresh code checkouts for the two branches.
>
> With both branches the helix-client-local-mp3 profile results in a splay
> + libs that can play a mp3 file (albeit with stuttering, but that's a
> different problem).
>
> Of the other combinations,
> helix-player, helix-client-all-defines-nodist
> helix-player, helix-client-all-defines-free
> helix, helix-client-all-defines-free
> helix, helix-client-all-defines
> all result in:
> opening file:///home/larstiq/muziek/001_eject.mp3 on player 0
> Report(3, -2147221487, "file:///home/larstiq/muziek/001_eject.mp3", 0, "(NULL)", "Can't convert error code 0x80040011 - please
find corresponding HXR code in common/include/hxresult.h")
>
> Which might make sense for the -free builds, but not for the others.
> I don't know why I get this error, looking at (helix-player,
> helix-client-all-defines-nodist) for example,
> mp3codecfltpt.a
> mp3fformat.so
> mp3lib.a
> mp3payld.a
> mp3render.so
>
> Are all present in release/. I've tried tracing code, but it's easy to
> get lost. (Ryan's pointers helped a lot tho, thanks!)
> Help with this issue is very very welcome.
>
>
> The helix-player, helix-client-all-defines combo has a different
> problem, something distlibby, perhaps a side effect of less than up to
> date distlibs for powerpc, I hope that gets resolved by Fredrik looking
> at powerpc and distlib in general.
>
> At first, the splay build fails because it can't find rdtclntlib.a (on
> the helix branch, this is not a problem)
>
> make[1]: *** No rule to make target `/home/larstiq/tmp/helix/neptune/protocol_dist/rtsp/rel/rdtclntlib.a', needed by
`rel/clntcore.so'. Stop.
>
> After checking out distribution/linux-2.2-libc6-powerpc by hand
> (linux-2.2-libc6-gcc32-powerpc is empty, considering gcc abi
> incompatibilities, trying to link with them might not be the smartest
> idea, but hey, I'm desperate enough :)) and copying the libraries to
> where ribosome expects them, rebuilding, I get this error when running:
>
> Simpleplayer is looking for the client core at ./clntcore.so
> splayer: ./clntcore.so: undefined symbol: _ZN16RTSPBaseProtocol11handleDebugEPKci
>
> that symbol corresponds to RTSPBaseProtocol::handleDebug(char const*, int)
> The only reference to that according to nm release/* is clntcore.so
> itself. Going through the build directory by hand again, I find the
> symbol in the intermediate library clntcore_libs.a
>
> rel/clntcore_libs.a:rdtclntlib.rnrtspclnt.o: U RTSPBaseProtocol::handleDebug(IHXBuffer*, int)
> rel/clntcore_libs.a:rdtclntlib.rnrtspclnt.o: U RTSPBaseProtocol::handleDebug(char const*, int)
>
> I'll just stick to the helix branch for now.
>
> Wouter van Heyst
> Vidicode Datacommunicatie BV
>
>
> _______________________________________________
> Helix-client-dev mailing list
> Helix-client-dev at lists.helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev