From nhart at real.com Thu Oct 7 10:45:24 2004
From: nhart at real.com (Nicholas Hart)
Date: Thu Oct 7 10:45:28 2004
Subject: [Porting-amd64] Wrote:
/usr/src/RPM/RPMS/amd64/HelixPlayer-1.0.gold-3.amd64.rpm
In-Reply-To: <200409241615.39913.jareguero@telefonica.net>
References:
<200409241615.39913.jareguero@telefonica.net>
Message-ID: <1097171123.14273.48.camel@linicks.dev.prognet.com>
Sorry, I meant to respond to this sooner but have been bogged down.
We should be getting a linux/AMD64 machine soon and will be able to
provide distlibs for this platform. I'm still waiting for some info on
when it will be ready, but I believe it will be no more than a week or
so.
On Fri, 2004-09-24 at 07:15, Jose Alberto Reguero wrote:
> With the atached patch the player start but i don't now if it works, because i
> don't now which formats they can play.
> How I can get the distribution libs for amd64?
> Thanks
> Jose Alberto
>
> > Hi,
> >
> > After some tweaking and brute-force hacking i managed to build
> > a 64bit clean x86_64/amd64 RPM for Mandrake 10.0 amd64.
> > Here's how i did it, which code changes i needed and which already
> > installed library RPMS needed to be rebuild. Who said again that a
> > clean build doesn't mean anything? Well thats right, because the
> > x86_64 source/binaries contain some errors.
> >
> > HOWTO BUILD a X86_64/AMD64/Opteron HelixPlayer amd64.rpm :
> > ==========================================================
> >
> > 1. I downloaded the following SRPM from the Fedora DEV page :
> >
> > http://redhat.secsup.org/fedora/core/development/x86_64/SRPMS/HelixPlayer-1
> >.0.gold-3.src.rpm
> >
> > 2. Just install/unpack it on disk :
> >
> > # rpm -i HelixPlayer-1.0.gold-3.src.rpm
> >
> > 3. Adjust the HelixPlayer .spec file :
> >
> > # vi /usr/src/RPM/SPECS/HelixPlayer.spec
> >
> > and make the following adjustments :
> >
> > #ExcludeArch: ppc64 x86_64 ppc s390 s390x ia64 <=== allow x86_64/amd64 to
> > build ExcludeArch: ppc64 i586 ppc s390 s390x ia64 <=== exclude i586 to
> > build
> >
> >
> > #%patch3 -p1 -b filechooser <=== Comment out if you don't have Gtk2.2
> >
> > add :
> >
> > Patch5: helix-amd64-platform.patch.bz2 <== add this as extra patch.
> >
> > %patch5 -p1 -b amd64 <== execute Patch5 during a RPM build
> >
> > 4. Build the binary amd64 RPM :
> >
> > # cd /usr/src/RPM/SPECS
> > # rpm -v -ba HelixPlayer.spec
> >
> > ....
> > Wrote: /usr/src/RPM/SRPMS/HelixPlayer-1.0.gold-3.src.rpm
> > Wrote: /usr/src/RPM/RPMS/amd64/HelixPlayer-1.0.gold-3.amd64.rpm
> > Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.53193
> >
> >
> > However when trying to execute/run it i get this :
> >
> > $ hxplay
> > HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp, Line 309
> > Aborted
> > $
> > $ export HX_DEBUGLEVEL=2
> > $ hxplay
> > HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp, Line 309
> > HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp, Line 309
> >
> > GLib-ERROR **: gmem.c:140: failed to allocate 17149707381026848842 bytes
> > aborting...
> > Aborted
> > $
> >
> > NOTES on HOWTO BUILD a AMD64 RPM :
> > ==================================
> >
> > A. Sometimes the following error is occuring during compiling :
> >
> > UNIXCompile(datatype/text/realtext/renderer): making copy
> > leaving directory
> > /usr/src/RPM/BUILD/hxplay-1.0.0.298/./datatype/text/realtext/renderer from
> > directory /usr/src/RPM/BUILD/hxplay-1.0.0.298
> > entering directory datatype/ogg/fileformat
> > UNIXCompile(datatype/ogg/fileformat): generating makefiles
> > UMAKE: Umakefil -> Makefile in datatype/ogg/fileformat
> > UMAKE: Applying profile
> > /usr/src/RPM/BUILD/hxplay-1.0.0.298/build/umakepf/helix-client-all-defines-
> >free.pf UNIXCompile(datatype/ogg/fileformat): making depend
> > UNIXCompile(datatype/ogg/fileformat): making all
> > ERROR: UNIXCompile(datatype/ogg/fileformat) ERROR: Make failed.
> >
> > --- Build System Error ------------------------------------
> > Make failed.
> > -----------------------------------------------------------
> >
> > From /usr/src/RPM/BUILD/hxplay-1.0.0.298/build.out we see this make
> > error :
> >
> > g++ -shared oggfformat.exp -o dbg/oggfformat.so -u RMACreateInstance
> > dbg/obj/oggfformat.o dbg/obj/ogg_page_reader.o dbg/obj/page2packet.o
> > dbg/obj/vorbis_page2pkt.o dbg/obj/theora_page2pkt.o dbg/obj/base_page2pkt.o
> > dbg/obj/strm_group.o dbg/obj/oggutil.o dbg/oggfformat_libs.a -L/usr/lib64
> > -L/usr/X11R6/lib64 -lstdc++ /usr/bin/ld:
> > dbg/oggfformat_libs.a(libogg.framing.o): relocation R_X86_64_32S can not be
> > used when making a shared object; recompile with -fPIC
> > dbg/oggfformat_libs.a: could not read symbols: Bad value
> > collect2: ld returned 1 exit status
> > make: *** [dbg/oggfformat.so] Error 1
> > Time used: 1.18 seconds
> > ERROR: UNIXCompile(datatype/ogg/fileformat) ERROR: Make failed.
> >
> > --- Build System Error ------------------------------------
> > Make failed.
> > -----------------------------------------------------------
> >
> > It seems that /usr/lib64/libogg.a (framing.o) is somehow being detected
> > as a 32bit object file. But thats of course not the case. Just make
> > sure, as is correctly suggested above, that everyting is compiled with
> > -fPIC. To do that inside a RPM .SPEC file one can add this line inside
> > libogg.spec :
> >
> > %define optflags -O2 -pipe %{debugcflags} -fPIC -DPIC
> >
> > This was for me also needed for libvorbis.spec. It turns out that X86_64
> > wants for all its dynamic libraries a global ofset, needed when linking
> > 64bit binaries :
> >
> > # nm /usr/lib64/libvorbis.a | more
> >
> > mdct.o:
> > U free
> > U _GLOBAL_OFFSET_TABLE_ <== needed for linking on
> > amd64 0000000000000000 r .LC1
> > 0000000000000018 r .LC10
> > 0000000000000020 r .LC11
> > 0000000000000010 r .LC12
> > 0000000000000014 r .LC13
> > 0000000000000018 r .LC14
> >
> > The vanilla installed ogg and vorbis libs on mandrake am64 didn't have a
> > _GLOBAL_OFFSET_TABLE_ inside. Recompiling your SRPM with -fPIC -DPIC
> > thus indeed gets rid of the "relocation R_X86_64_32S can not be used"
> > error.
> >
> > B. Some remarks are to be made about the helix-amd64-platform.patch.bz2
> > which was created through trial and error.
> > the common/import/gecko-sdk/nspr/include/prcpucfg.h diff was retrieved
> > from CVS somehow. Google found that one for me. And of course
> > common/include/atomicbase.h needs still to be checked so i read on the
> > Helix website. The %rax pointer seems to be not quite ok. AMD64 assembly
> > seems straight forward, but i have my doubts .
> >
> > C. The adjustments ( helix-amd64-platform.patch.bz2 ) as well as the binary
> > and source RPM's can be be found on :
> >
> > http://crashrecovery.org/helixp/
> >
> > Thanks
> > best regards,
> >
> > Robert
>
> ______________________________________________________________________
> _______________________________________________
> Porting-amd64 mailing list
> Porting-amd64@lists.helixcommunity.org
> http://lists.helixcommunity.org/mailman/listinfo/porting-amd64
--
Nicholas Hart
nhart@real.com
Technical Lead, Helix Player
https://player.helixcommunity.org
http://www.real.com
From jareguero at telefonica.net Fri Oct 22 02:35:34 2004
From: jareguero at telefonica.net (Jose Alberto Reguero)
Date: Fri Oct 22 02:35:13 2004
Subject: [Porting-amd64] Wrote:
/usr/src/RPM/RPMS/amd64/HelixPlayer-1.0.gold-3.amd64.rpm
In-Reply-To: <1097171123.14273.48.camel@linicks.dev.prognet.com>
References:
<200409241615.39913.jareguero@telefonica.net>
<1097171123.14273.48.camel@linicks.dev.prognet.com>
Message-ID: <200410221135.34558.jareguero@telefonica.net>
Any news about distlibs for amd64?
Thanks.
Jose Alberto
El Jueves, 7 de Octubre de 2004 19:45, escribi?:
> Sorry, I meant to respond to this sooner but have been bogged down.
>
> We should be getting a linux/AMD64 machine soon and will be able to
> provide distlibs for this platform. I'm still waiting for some info on
> when it will be ready, but I believe it will be no more than a week or
> so.
>
> On Fri, 2004-09-24 at 07:15, Jose Alberto Reguero wrote:
> > With the atached patch the player start but i don't now if it works,
> > because i don't now which formats they can play.
> > How I can get the distribution libs for amd64?
> > Thanks
> > Jose Alberto
> >
> > > Hi,
> > >
> > > After some tweaking and brute-force hacking i managed to build
> > > a 64bit clean x86_64/amd64 RPM for Mandrake 10.0 amd64.
> > > Here's how i did it, which code changes i needed and which already
> > > installed library RPMS needed to be rebuild. Who said again that a
> > > clean build doesn't mean anything? Well thats right, because the
> > > x86_64 source/binaries contain some errors.
> > >
> > > HOWTO BUILD a X86_64/AMD64/Opteron HelixPlayer amd64.rpm :
> > > ==========================================================
> > >
> > > 1. I downloaded the following SRPM from the Fedora DEV page :
> > >
> > > http://redhat.secsup.org/fedora/core/development/x86_64/SRPMS/HelixPlay
> > >er-1 .0.gold-3.src.rpm
> > >
> > > 2. Just install/unpack it on disk :
> > >
> > > # rpm -i HelixPlayer-1.0.gold-3.src.rpm
> > >
> > > 3. Adjust the HelixPlayer .spec file :
> > >
> > > # vi /usr/src/RPM/SPECS/HelixPlayer.spec
> > >
> > > and make the following adjustments :
> > >
> > > #ExcludeArch: ppc64 x86_64 ppc s390 s390x ia64 <=== allow x86_64/amd64
> > > to build ExcludeArch: ppc64 i586 ppc s390 s390x ia64 <=== exclude i586
> > > to build
> > >
> > >
> > > #%patch3 -p1 -b filechooser <=== Comment out if you don't have Gtk2.2
> > >
> > > add :
> > >
> > > Patch5: helix-amd64-platform.patch.bz2 <== add this as extra patch.
> > >
> > > %patch5 -p1 -b amd64 <== execute Patch5 during a RPM build
> > >
> > > 4. Build the binary amd64 RPM :
> > >
> > > # cd /usr/src/RPM/SPECS
> > > # rpm -v -ba HelixPlayer.spec
> > >
> > > ....
> > > Wrote: /usr/src/RPM/SRPMS/HelixPlayer-1.0.gold-3.src.rpm
> > > Wrote: /usr/src/RPM/RPMS/amd64/HelixPlayer-1.0.gold-3.amd64.rpm
> > > Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.53193
> > >
> > >
> > > However when trying to execute/run it i get this :
> > >
> > > $ hxplay
> > > HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp, Line
> > > 309 Aborted
> > > $
> > > $ export HX_DEBUGLEVEL=2
> > > $ hxplay
> > > HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp, Line
> > > 309 HX_ASSERT failed: (GetSize() == ulLength)... File hxbuffer.cpp,
> > > Line 309
> > >
> > > GLib-ERROR **: gmem.c:140: failed to allocate 17149707381026848842
> > > bytes aborting...
> > > Aborted
> > > $
> > >
> > > NOTES on HOWTO BUILD a AMD64 RPM :
> > > ==================================
> > >
> > > A. Sometimes the following error is occuring during compiling :
> > >
> > > UNIXCompile(datatype/text/realtext/renderer): making copy
> > > leaving directory
> > > /usr/src/RPM/BUILD/hxplay-1.0.0.298/./datatype/text/realtext/renderer
> > > from directory /usr/src/RPM/BUILD/hxplay-1.0.0.298
> > > entering directory datatype/ogg/fileformat
> > > UNIXCompile(datatype/ogg/fileformat): generating makefiles
> > > UMAKE: Umakefil -> Makefile in datatype/ogg/fileformat
> > > UMAKE: Applying profile
> > > /usr/src/RPM/BUILD/hxplay-1.0.0.298/build/umakepf/helix-client-all-defi
> > >nes- free.pf UNIXCompile(datatype/ogg/fileformat): making depend
> > > UNIXCompile(datatype/ogg/fileformat): making all
> > > ERROR: UNIXCompile(datatype/ogg/fileformat) ERROR: Make failed.
> > >
> > > --- Build System Error ------------------------------------
> > > Make failed.
> > > -----------------------------------------------------------
> > >
> > > From /usr/src/RPM/BUILD/hxplay-1.0.0.298/build.out we see this make
> > > error :
> > >
> > > g++ -shared oggfformat.exp -o dbg/oggfformat.so -u RMACreateInstance
> > > dbg/obj/oggfformat.o dbg/obj/ogg_page_reader.o dbg/obj/page2packet.o
> > > dbg/obj/vorbis_page2pkt.o dbg/obj/theora_page2pkt.o
> > > dbg/obj/base_page2pkt.o dbg/obj/strm_group.o dbg/obj/oggutil.o
> > > dbg/oggfformat_libs.a -L/usr/lib64 -L/usr/X11R6/lib64 -lstdc++
> > > /usr/bin/ld:
> > > dbg/oggfformat_libs.a(libogg.framing.o): relocation R_X86_64_32S can
> > > not be used when making a shared object; recompile with -fPIC
> > > dbg/oggfformat_libs.a: could not read symbols: Bad value
> > > collect2: ld returned 1 exit status
> > > make: *** [dbg/oggfformat.so] Error 1
> > > Time used: 1.18 seconds
> > > ERROR: UNIXCompile(datatype/ogg/fileformat) ERROR: Make failed.
> > >
> > > --- Build System Error ------------------------------------
> > > Make failed.
> > > -----------------------------------------------------------
> > >
> > > It seems that /usr/lib64/libogg.a (framing.o) is somehow being
> > > detected as a 32bit object file. But thats of course not the case. Just
> > > make sure, as is correctly suggested above, that everyting is compiled
> > > with -fPIC. To do that inside a RPM .SPEC file one can add this line
> > > inside libogg.spec :
> > >
> > > %define optflags -O2 -pipe %{debugcflags} -fPIC -DPIC
> > >
> > > This was for me also needed for libvorbis.spec. It turns out that
> > > X86_64 wants for all its dynamic libraries a global ofset, needed when
> > > linking 64bit binaries :
> > >
> > > # nm /usr/lib64/libvorbis.a | more
> > >
> > > mdct.o:
> > > U free
> > > U _GLOBAL_OFFSET_TABLE_ <== needed for linking on
> > > amd64 0000000000000000 r .LC1
> > > 0000000000000018 r .LC10
> > > 0000000000000020 r .LC11
> > > 0000000000000010 r .LC12
> > > 0000000000000014 r .LC13
> > > 0000000000000018 r .LC14
> > >
> > > The vanilla installed ogg and vorbis libs on mandrake am64 didn't
> > > have a _GLOBAL_OFFSET_TABLE_ inside. Recompiling your SRPM with -fPIC
> > > -DPIC thus indeed gets rid of the "relocation R_X86_64_32S can not be
> > > used" error.
> > >
> > > B. Some remarks are to be made about the helix-amd64-platform.patch.bz2
> > > which was created through trial and error.
> > > the common/import/gecko-sdk/nspr/include/prcpucfg.h diff was
> > > retrieved from CVS somehow. Google found that one for me. And of course
> > > common/include/atomicbase.h needs still to be checked so i read on the
> > > Helix website. The %rax pointer seems to be not quite ok. AMD64
> > > assembly seems straight forward, but i have my doubts .
> > >
> > > C. The adjustments ( helix-amd64-platform.patch.bz2 ) as well as the
> > > binary and source RPM's can be be found on :
> > >
> > > http://crashrecovery.org/helixp/
> > >
> > > Thanks
> > > best regards,
> > >
> > > Robert
> >
> > ______________________________________________________________________
> > _______________________________________________
> > Porting-amd64 mailing list
> > Porting-amd64@lists.helixcommunity.org
> > http://lists.helixcommunity.org/mailman/listinfo/porting-amd64
Copyright © 1995-2007 RealNetworks, Inc. All rights reserved.
RealNetworks and Helix are trademarks of RealNetworks.
All other trademarks or registered trademarks are the property of their respective holders.