Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 101821

Summary: firefox support on ppc64 platform
Product: Gentoo Linux Reporter: Jory A. Pratt <geekypenguin>
Component: Current packagesAssignee: Mozilla Gentoo Team <mozilla>
Status: RESOLVED FIXED    
Severity: normal CC: cshields, drraph, dwmw2, ppc64, Protocol.X, yangdh
Priority: High    
Version: unspecified   
Hardware: PPC64   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: ppc64 mozilla-firefox-1.0.6
ppc64 mozilla-firefox-1.0.6
mozilla-firefox-1.5.0.2-ppc64.patch
backtrace
mozilla-firefox-2.0_beta1-ppc64.patch
xpcom patch for firefox 1.5 and 2.0
Equivalent patch for firefox trunk.
301_firefox-2.0_ppc64.patch
Error messages when executing firefox-bin
Updated patch for 1.5/2.0

Description Jory A. Pratt 2005-08-08 20:09:50 UTC
Tracker bug for firefox on ppc64. Initial problem is linker having problems with
ssl. Log is attached and will be updated as issues are resolved. Please do not
close bug until firefox is completely up and running properly on ppc64.
Comment 1 Jory A. Pratt 2005-08-08 20:12:26 UTC
ranlib Linux2.6_x86_glibc_PTH_64_OPT.OBJ/libsectool.a
../../../coreconf/nsinstall/Linux2.6_x86_glibc_PTH_64_OPT.OBJ/nsinstall -R -m
664 Linux2.6_x86_glibc_PTH_64_OPT.OBJ/libsectool.a
/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/lib
gmake[3]: Leaving directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/nss/cmd/lib'
/usr/bin/gmake -C ../../security/nss/cmd/shlibsign MAKE="/usr/bin/gmake -j1" -j1
MOZILLA_INCLUDES="-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/nspr
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/dbm"
SOURCE_MD_DIR=/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist
DIST=/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist
MOZILLA_CLIENT=1 NO_MDUPDATE=1 BUILD_OPT=1 NS_USE_GCC=1 NS_USE_NATIVE= USE_64=1
gmake[3]: Entering directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/nss/cmd/shlibsign'
gmake[3]: warning: -jN forced in submake: disabling jobserver mode.
cd mangle; /usr/bin/gmake -j1 export
gmake[4]: Entering directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/nss/cmd/shlibsign/mangle'
gmake[4]: Nothing to be done for `export'.
gmake[4]: Leaving directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/nss/cmd/shlibsign/mangle'
Mon Aug  8 21:49:07 CDT 2005
gcc -o Linux2.6_x86_glibc_PTH_64_OPT.OBJ/shlibsign.o -c -O2 -fPIC -DLINUX1_2
-Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall -pipe -DLINUX -Dlinux
-D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR -DXP_UNIX -DSHLIB_SUFFIX=\"so\"
-DSHLIB_PREFIX=\"lib\" -UDEBUG -DNDEBUG -D_REENTRANT
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include 
-I../../../../dist/public/nss -I../../../../dist/private/nss
-I../../../../dist/include
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/nspr
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/dbm
-I../../../../dist/public/dbm -I../../../../dist/public/seccmd  shlibsign.c
gcc -o Linux2.6_x86_glibc_PTH_64_OPT.OBJ/shlibsign -O2 -fPIC -DLINUX1_2 -Di386
-D_XOPEN_SOURCE -DLINUX2_1 -ansi -Wall -pipe -DLINUX -Dlinux -D_POSIX_SOURCE
-D_BSD_SOURCE -DHAVE_STRERROR -DXP_UNIX -DSHLIB_SUFFIX=\"so\"
-DSHLIB_PREFIX=\"lib\" -UDEBUG -DNDEBUG -D_REENTRANT
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include 
-I../../../../dist/public/nss -I../../../../dist/private/nss
-I../../../../dist/include
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/nspr
-I/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/include/dbm
-I../../../../dist/public/dbm -I../../../../dist/public/seccmd 
Linux2.6_x86_glibc_PTH_64_OPT.OBJ/shlibsign.o 
/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/lib/libsectool.a 
-Wl,-rpath-link,/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/lib
-L/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/dist/lib -lssl3
-lsmime3 -lnss3 -lplc4 -lplds4 -lnspr4  -L/lib -lpthread  -ldl -lc
/usr/lib/gcc/powerpc64-unknown-linux-gnu/3.4.4/../../../../powerpc64-unknown-linux-gnu/bin/ld:
cannot find -lssl3
collect2: ld returned 1 exit status
gmake[3]: *** [Linux2.6_x86_glibc_PTH_64_OPT.OBJ/shlibsign] Error 1
gmake[3]: Leaving directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/nss/cmd/shlibsign'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory
`/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla/security/manager'
gmake[1]: *** [tier_40] Error 2
gmake[1]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.0.6-r4/work/mozilla'
make: *** [default] Error 2

Error provided by rangerpb via my request.
Comment 2 Jory A. Pratt 2005-08-08 21:18:54 UTC
Created attachment 65501 [details, diff]
ppc64 mozilla-firefox-1.0.6

add to very end of ebuild for now if you would like to test. this is rediffed
against all other patches to prevent any breakage. If you have any questions
feel free to ask I will do my best to answer and/or get you an answer.
Comment 3 Markus Rothe (RETIRED) gentoo-dev 2005-08-09 00:50:15 UTC
Created attachment 65505 [details, diff]
ppc64 mozilla-firefox-1.0.6

with this patch firefox compiles for me, but the xptcall function written by
tgall needs some tweaking, as it seg faults.
Comment 4 Markus Rothe (RETIRED) gentoo-dev 2006-04-27 11:28:42 UTC
all but the xpcom patches have been applied upstream, but are not yet included in the firefox releases. (hopefully being included in version 2.0)

As far as I can trust my knowledge about such things, the xpcom code seems to have an off by one error:

$ firefox
No running windows found
Type Manifest File: /home/markus/.mozilla/firefox/t4i3bmfz.default/xpti.dat
*** Registering Apprunner components (all right -- a generic module!)
nsNativeComponentLoader: autoregistering begins.
nsNativeComponentLoader: autoregistering succeeded
nsNativeComponentLoader: registering deferred (0)
WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv)) failed, file nsChromeRegistry.cpp, line 1245
GFX: dpi=96 t2p=0.0666667 p2t=15 depth=24
++WEBSHELL == 1
WARNING: NS_ENSURE_TRUE(NS_SUCCEEDED(rv)) failed, file nsPermissionManager.cpp, line 632
++DOMWINDOW == 1
WARNING: NS_ENSURE_TRUE(em) failed, file nsAppRunner.cpp, line 2247
###!!! ASSERTION: Failed to create nsICloseAllWindows impl.: 'closer', file nsAppStartup.cpp, line 508
Break: at file nsAppStartup.cpp, line 508
###!!! ASSERTION: Can't veto change!: 'Error', file nsXREDirProvider.cpp, line 614
Break: at file nsXREDirProvider.cpp, line 614
--WEBSHELL == 0
###!!! ASSERTION: Main thread being held past XPCOM shutdown.: 'cnt == 0', file nsThread.cpp, line 478
Break: at file nsThread.cpp, line 478
nsStringStats
 => mAllocCount:           2027
 => mReallocCount:          869
 => mFreeCount:            2026  --  LEAKED 1 !!!
 => mShareCount:           1697
 => mAdoptCount:            885
 => mAdoptFreeCount:        884  --  LEAKED 1 !!!
firefox-bin exited with non-zero status (1)
$
Comment 5 Markus Rothe (RETIRED) gentoo-dev 2006-05-03 03:49:05 UTC
ok.. I forgot a patch to actualy use the ppc64 files for xptcall, so it defaulted to the generic (not working) xptcall function. So I included it and now I'm getting this while compiling:

powerpc64-unknown-linux-gnu-g++ -o
xptcinvoke_ppc64_linux.o -c -fvisibility=hidden -fvisibility-inlines-hidden 
-DOSTYPE=\"Linux2.6\" -DOSARCH=\"Linux\" -DBUILD_ID=2006050310 
-DEXPORT_XPTC_API   -I../../../../../../dist/include/xpcom 
-I../../../../../../dist/include -I/usr/include/nspr    
-I../../../../../../dist/sdk/include -I./../..    -fPIC  
-DGENTOO_NSPLUGINS_DIR=\"/usr/lib64/nsplugins\" 
-DGENTOO_NSBROWSER_PLUGINS_DIR=\"/usr/lib64/nsbrowser/plugins\"  
-fno-rtti -fno-handle-exceptions  -Wconversion -Wpointer-arith -Wcast-align 
-Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor 
-Wno-long-long -pipe -mtune=970 -mcpu=970 -mabi=altivec -g -fPIC 
-mminimal-toc -Wno-return-type -w -freorder-blocks -fno-reorder-functions 
-fshort-wchar -pthread -pipe  -DDEBUG -D_DEBUG -DDEBUG_root -DTRACING -g 
-fno-inline -O1  -DGENTOO_NSPLUGINS_DIR=\"/usr/lib64/nsplugins\" 
-DGENTOO_NSBROWSER_PLUGINS_DIR=\"/usr/lib64/nsbrowser/plugins\"  
-DMOZILLA_CLIENT -include ../../../../../../mozilla-config.h 
-Wp,-MD,.deps/xptcinvoke_ppc64_linux.pp xptcinvoke_ppc64_linux.cpp
xptcinvoke_ppc64_linux.cpp: In function &#8216;void invoke_copy_to_stack(PRUint32*, PRUint32, nsXPTCVariant*, PRUint64*, double*)&#8217;:
xptcinvoke_ppc64_linux.cpp:81: error: cast from &#8216;void*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:97: error: cast from &#8216;void*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:105: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:122: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
gmake[7]: *** [xptcinvoke_ppc64_linux.o] Error 1
gmake[7]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom/reflect/xptcall/src/md/unix'
gmake[6]: *** [libs] Error 2
gmake[6]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom/reflect/xptcall/src/md'
gmake[5]: *** [libs] Error 2
gmake[5]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom/reflect/xptcall/src'
gmake[4]: *** [libs] Error 2
gmake[4]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom/reflect/xptcall'
gmake[3]: *** [libs] Error 2
gmake[3]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom/reflect'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla/xpcom'
gmake[1]: *** [tier_2] Error 2
gmake[1]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.5.0.3/work/mozilla'
make: *** [default] Error 2
Comment 6 Markus Rothe (RETIRED) gentoo-dev 2006-05-03 03:50:05 UTC
Created attachment 86059 [details, diff]
mozilla-firefox-1.5.0.2-ppc64.patch

patch for firefox 1.5.0.2 (or 1.5.0.3 if you want)
Comment 7 Markus Rothe (RETIRED) gentoo-dev 2006-05-08 01:11:01 UTC
Created attachment 86413 [details]
backtrace

this is the backtrace I could get from the error:

[...]
*** Registering nsBrowserCompsModule components (all right -- a generic module!)
nsNativeComponentLoader: autoregistering succeeded
###!!! ASSERTION: Failed to write xpti manifest!: 'Error', file xptiInterfaceInfoManager.cpp, line 1937
Break: at file xptiInterfaceInfoManager.cpp, line 1937
/usr/libexec/mozilla-launcher: line 117: 13603 Segmentation fault      (core dumped) "$mozbin" "$@"
firefox-bin exited with non-zero status (139)
Comment 8 Markus Rothe (RETIRED) gentoo-dev 2006-08-15 02:48:49 UTC
Created attachment 94300 [details, diff]
mozilla-firefox-2.0_beta1-ppc64.patch

I've checked which parts have gotten upstream in version 2.0_beta1 (ppc64 is now a known arch in makefiles, patches for nss/nspr are included etc.) and made a new patch for mozilla-firefox-2.0_beta1 (removing those parts which are no longer required). Unfortunatly this won't compile using gcc-4.1.1/4.2_alpha and this brings us a step further: as you can see in the error message we are doing some bad type casts:

[...]
xptcinvoke_ppc64_linux.cpp: In function &#8216;void invoke_copy_to_stack(PRUint32*, PRUint32, nsXPTCVariant*, PRUint64*, double*)&#8217;:
xptcinvoke_ppc64_linux.cpp:81: error: cast from &#8216;void*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:97: error: cast from &#8216;void*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:105: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcinvoke_ppc64_linux.cpp:122: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
gmake[7]: *** [xptcinvoke_ppc64_linux.o] Error 1
gmake[7]: *** Waiting for unfinished jobs....
xptcstubs_ppc64_linux.cpp: In function &#8216;nsresult PrepareAndDispatch(nsXPTCStubBase*, PRUint32, PRUint32*, PRUint64*, double*)&#8217;:
xptcstubs_ppc64_linux.cpp:120: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
xptcstubs_ppc64_linux.cpp:139: error: cast from &#8216;PRUint32*&#8217; to &#8216;PRUint32&#8217; loses precision
gmake[7]: *** [xptcstubs_ppc64_linux.o] Error 1
Comment 9 David Woodhouse 2006-11-24 01:40:52 UTC
Created attachment 102624 [details, diff]
xpcom patch for firefox 1.5 and 2.0

With this, 64-bit firefox builds and runs for me (on Fedora)
Comment 10 David Woodhouse 2006-11-24 01:42:42 UTC
Created attachment 102626 [details, diff]
Equivalent patch for firefox trunk.

cf. https://bugzilla.mozilla.org/show_bug.cgi?id=361415
Comment 11 Markus Rothe (RETIRED) gentoo-dev 2006-11-24 05:12:02 UTC
oh my god! this is fscking awsome! I've been waiting for this so long. I will compile now and add the patch to portage ASAP.

thanks a lot! :-)
Comment 12 Markus Rothe (RETIRED) gentoo-dev 2006-11-25 05:47:42 UTC
yes, this patch builds and runs firefox: http://www.unixforces.net/~markus/screenshots/screenshot-2009-11-24.png

mozilla: please include this patch in firefox, seamonkey and xulrunner. Or do you want me to do so?
Comment 13 Markus Rothe (RETIRED) gentoo-dev 2006-11-30 12:56:53 UTC
mozilla team: ping, I would realy like to get this fixed.
Comment 14 Stefan Schweizer (RETIRED) gentoo-dev 2006-11-30 13:54:41 UTC
corsair: feel free to fix this yourself.
Comment 15 Jory A. Pratt 2006-11-30 17:50:34 UTC
(In reply to comment #13)
> mozilla team: ping, I would realy like to get this fixed.
> 

Upstream is getting ready to reject the patch. It breaks others archs. I made all this well aware on #gentoo-moz while kloeri was around. So If you choose to add this you will break archs that are already keyworded.
Comment 16 Markus Rothe (RETIRED) gentoo-dev 2006-11-30 23:20:47 UTC
I would add the patch to distfiles or something like that, but it would be best to get this patch into gentoo's mozilla-firefox patchset, would it?
Comment 17 Markus Rothe (RETIRED) gentoo-dev 2006-11-30 23:22:56 UTC
woops.. didn't read comment #15 before replying. will check what would break other arches.. I mean, this only adds a few files for ppc64 and those are only compiled on ppc64.
Comment 18 Yang Dehua 2006-12-04 00:22:11 UTC
I emerged firefox-2.0-r2 on my ppc64 with 64-bit userland successfully, but when I ran "firefox" in a terminal, it crashed with:
dehua@localhost ~ $ firefox
No running windows found
Assertion failure: 0 == rv, at ../../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:207
/usr/libexec/mozilla-launcher: line 117:  8449 Aborted                 "$mozbin" "$@"
firefox-bin exited with non-zero status (134)

What is the problem? Has firefox-2.0-r2 version the ppc64 patches applied?
 
Comment 19 Markus Rothe (RETIRED) gentoo-dev 2006-12-04 10:36:57 UTC
-r2 has had the patch for trunk applied, but that wouldn't build. there was just a new patchset added to -r2 without the patch again...

yang: download the patch for 2.0 manualy and place it in files/ (or even in a local portage overlay if you like to) and edit the ebuild manualy. you also have to delete the line which let's the ebuild die on ppc64 (comes from 32bit only times)
Comment 20 Markus Rothe (RETIRED) gentoo-dev 2006-12-04 10:48:24 UTC
I am wrong version 0.4 of the mozilla-firefox 2.0 patchset includes the correct patch. yang could you please try to sync and check again?

also providing emerge --info might be useful.
Comment 21 Markus Rothe (RETIRED) gentoo-dev 2006-12-04 11:11:42 UTC
Created attachment 103344 [details, diff]
301_firefox-2.0_ppc64.patch

this patch might work on ppc64 with 32bit userland, too. have only done compile testing.
Comment 22 Yang Dehua 2006-12-04 15:33:12 UTC
Thank you, Markus. What I tried is just that with 0.4 version of patchset. The same build I emerged successfully in a 32-bit chroot, and it works fine. But I'd like to use the 64-bit userland applications. Here is my emerge info:
Emerge info:

Portage 2.1.1-r2 (default-linux/ppc/ppc64/2006.1/multilib, gcc-4.1.1,
glibc-2.5-r0, 2.6.18-gentoo-r3 ppc64)
=================================================================
System uname: 2.6.18-gentoo-r3 ppc64 PPC970, altivec supported
Gentoo Base System version 1.12.6
Last Sync: Sat, 02 Dec 2006 02:30:01 +0000
ccache version 2.3 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.7, 2.0.30
dev-lang/python:     2.3.5-r2, 2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     [Not Present]
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.16.1-r3
sys-devel/gcc-config: 1.3.13-r4
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r1
ACCEPT_KEYWORDS="ppc64"
AUTOCLEAN="yes"
CBUILD="powerpc64-unknown-linux-gnu"
CFLAGS="-O2 -mcpu=970 -mtune=970 -maltivec -mabi=altivec -mpowerpc64
-fno-strict-aliasing -fomit-frame-pointer -pipe"
CHOST="powerpc64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config
/usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf
/etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -mcpu=970 -mtune=970 -maltivec -mabi=altivec -mpowerpc64
-fno-strict-aliasing -fomit-frame-pointer -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://ftp.gentoo.or.kr http://distfiles.gentoo.org
http://ftp.tsinghua.edu.cn/mirror/gentoo http://mirror.usu.edu/mirrors/gentoo"
LANG="en_US.UTF-8"
LINGUAS="zh_CN en"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --delete-after --stats --timeout=180
--exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/MyPortage /usr/local/MyPortage/gentoo-xeffects"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="ppc64 X a52 aac aalib accessibility aiglx alsa altivec apache2 asf aspell
berkdb bitmap-fonts browserplugin bzip2 cairo cdr chardet cjk cli cracklib
crypt cups curl dba dbus dlloader dri dts dvd dvdnav dvdr eds elibc_glibc
emboss encode esd exif faac faad2 fb ffmpeg flac foomaticdb fortran gd
gd-external gdbm gif gimpprint glitz gmp gnome gpm gstreamer gtk gtk2 gtkhtml
hal ibm iconv imagemagick imlib input_devices_keyboard input_devices_mouse ipv6
isdnlog java jpeg jpeg2k kde kernel_linux lcms ldap libg++ libwww linguas_en
linguas_zh_CN mad mbox mikmod mng motif mp3 mpeg mpg mysql nas ncurses nls nptl
nptlonly ogg opengl oss pam pcre pdf perl png postgres ppds pppd python qt qt3
qt4 quicktime readline reflection samba sasl sdl session slang spell spl sqlite
ssl svg tcpd theora tiff truetype truetype-fonts type1-fonts udev unicode
userland_GNU v4l v4l2 vcd video_cards_ati video_cards_fbdev video_cards_radeon
vidix vorbis wma x264 xanim xcomposite xine xml xml2 xorg xv xvid xvmc zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS,
PORTAGE_RSYNC_EXTRA_OPTS

 
Comment 23 David Woodhouse 2006-12-04 15:56:19 UTC
(In reply to comment #15)
> Upstream is getting ready to reject the patch. It breaks others archs. I made
> all this well aware on #gentoo-moz while kloeri was around. So If you choose to
> add this you will break archs that are already keyworded.

Can you explain why you think this breaks other architectures? This patch should _only_ affect behaviour when 'uname -m' is 'ppc64', and in that case firefox always used to appear to build correctly, but spit out a binary which was non-functional: https://bugzilla.mozilla.org/show_bug.cgi?id=361413

I've tested builds for 32-bit and 64-bit PowerPC on ppc64 hardware; building for 32-bit PowerPC on ppc32 hardware shouldn't be affected. And I certainly can't see how it would affect any _other_ architecture.
Comment 24 Yang Dehua 2006-12-05 01:51:20 UTC
I synchronized and emerged again the firefox-2.0-r2, but again no avail, the same problems as before. It's frustrating to know that it' working for others while for me firefox is the most important and wanted application. Markus, could you post your emerge info? thank you.

Dehua 
Comment 25 Yang Dehua 2006-12-05 01:59:08 UTC
Id there someting to do with my ppc64 multilib profile?
Comment 26 Yang Dehua 2006-12-05 04:07:55 UTC
Now I have different errors:

No running windows found
/usr/libexec/mozilla-launcher: line 117: 16340 Segmentation fault      $(type -P aoss) "$mozbin" "$@"
firefox-bin exited with non-zero status (139)

after I updated packages of nspr, nss and mozilla-launcher to the latest test builds.
Comment 27 Jory A. Pratt 2006-12-05 06:20:37 UTC
(In reply to comment #26)
> Now I have different errors:
> 
> No running windows found
> /usr/libexec/mozilla-launcher: line 117: 16340 Segmentation fault      $(type
> -P aoss) "$mozbin" "$@"
> firefox-bin exited with non-zero status (139)
> 
> after I updated packages of nspr, nss and mozilla-launcher to the latest test
> builds.
> 

Give us the output from /usr/lib/mozilla-firefox/firefox-bin showing a seg in bash is not helpful one bit.
Comment 28 Markus Rothe (RETIRED) gentoo-dev 2006-12-05 13:31:59 UTC
(In reply to comment #24)
> Markus, could you post your emerge info? thank you.

nothing special here (using 64bit only profile):

$ emerge --info
Portage 2.1.1-r2 (default-linux/ppc/ppc64/2006.1/64bit-userland-gcc4/970/pmac, gcc-4.1.1, glibc-2.4-r4, 2.6.19 ppc64)
=================================================================
System uname: 2.6.19 ppc64 PPC970FX, altivec supported
Gentoo Base System version 1.12.6
Last Sync: Tue, 05 Dec 2006 21:00:01 +0000
ccache version 2.3 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: [Not Present]
dev-lang/python:     2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.60
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.13-r4
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="ppc64"
AUTOCLEAN="yes"
CBUILD="powerpc64-unknown-linux-gnu"
CFLAGS="-O2 -pipe -mtune=970 -mcpu=970 -mabi=altivec -g"
CHOST="powerpc64-unknown-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -mtune=970 -mcpu=970 -mabi=altivec -g"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs autoconfig cvs distlocks installsources metadata-transfer sandbox sfperms splitdebug strict"
GENTOO_MIRRORS="ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"
LANG="en_US.UTF8"
LC_ALL="en_US.UTF8"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="ppc64 X a52 aac aiglx alsa altivec amr apache2 apm asf bash-completion berkdb bitmap-fonts bzip2 cairo ccache cdinstall cdparanoia cdr cli cracklib crypt cups curl cvs dbus dlloader dri dts dv dvd dvdr dvdread elibc_glibc emboss enca encode exscalibar ffmpeg flac foomaticdb fortran fping gd gdbm ggi gif gimpprint glib glitz gmp gnokii gnutls gphoto2 gpm graphviz gs gstreamer gtk hal hfs highlight iconv ieee1394 imagemagick imlib input_devices_keyboard input_devices_mouse ipv6 isdnlog jpeg kde kdeenablefinal kernel_linux latex ldap libg++ libwww mad matroska mdnsresponder-compat mikmod mjpeg motif mozbranding mp3 mp4 mpeg mplayer multiuser musicbrainz mysql ncurses network nls no-old-linux nptl nptlonly nsplugin objc objc++ offensive ogg openal opengl pam pcre pdf perl php plotutils png ppds pppd python qt3 qt4 quicktime rdesktop readline reflection ruby samba scanner screen sdl session skins slp smp spell spl ssl stream subtitles subversion svg tcltk tcpd teamarena tetex theora threads tiff truetype truetype-fonts type1-fonts udev unicode upnp usb userland_GNU utempter vcd video_cards_radeon videos vim-pager vorbis wxwindows x264 xcomposite xine xml xorg xpm xscreensaver xv xvid xvmc zeroconf zlib"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 29 Yang Dehua 2006-12-05 23:18:20 UTC
Well, firefox-bin:

dehua@localhost ~ $  /usr/lib/mozilla-firefox/firefox-bin 
Segmentation fault
Comment 30 Markus Rothe (RETIRED) gentoo-dev 2006-12-06 08:25:10 UTC
yang: follow this steps to get a useful backtrace:

dehua@localhost ~ $ ulimit -c 1000000
dehua@localhost ~ $ /usr/lib/mozilla-firefox/firefox-bin 
Segmentation fault (core dumped)
dehua@localhost ~ $ gdb /usr/lib/mozilla-firefox/firefox-bin --core core --batch --quiet -ex "thread apply all bt full" -ex "quit"

please post the output. (note that the core might be named core.pid, for example core.13455 and you would have to use --core core.13455 instead of --core core. I don't know what triggers the name...)

if this does not get a useful output you have to compile firefox again with "-g" added to your CFLAGS and FEATURES="nostrip", but hold on recompiling until someone says the backtrace is not good enough.
Comment 31 Markus Rothe (RETIRED) gentoo-dev 2006-12-06 08:26:06 UTC
oh. my guess is by the way that 32bit ppc64 profile is fscked up... ;-)
Comment 32 Yang Dehua 2006-12-06 17:00:58 UTC
Thank you, Markus.
I compiled firefox with debug USE flag, and got more error messages when I executed firefox-bin(see next). The repeated errors mainly concern two files:

###!!! ASSERTION: no method info: 'info', file xptcstubs_ppc64_linux.cpp, line 89
Break: at file xptcstubs_ppc64_linux.cpp, line 89
###!!! ASSERTION: bad param: 'Error', file xptiInterfaceInfo.cpp, line 326
Break: at file xptiInterfaceInfo.cpp, line 326

Dehua
Comment 33 Yang Dehua 2006-12-06 17:02:37 UTC
Created attachment 103502 [details]
Error messages when executing firefox-bin
Comment 34 Yang Dehua 2006-12-06 17:08:19 UTC
Output of debug info from firefox-bin:

dehua@localhost ~ $ gdb  /usr/lib/mozilla-firefox/firefox-bin --core core.9554 --batch --quiet -ex "thread apply all bt full" -ex "quit"
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
Failed to read a valid object file image from memory.
Core was generated by `/usr/lib/mozilla-firefox/firefox-bin '.
Program terminated with signal 11, Segmentation fault.

warning: Can't read pathname for load map: Input/output error.
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
#0  0x0000000000000000 in ?? ()

Thread 2 (process 9558):
#0  0x00000400012373d8 in .__clone () from /lib/libc.so.6
No symbol table info available.
#1  0x000004000043016c in .do_clone () from /lib/libpthread.so.0
No symbol table info available.
Previous frame inner to this frame (corrupt stack?)

Thread 1 (process 9554):
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x0000040001d35f5c in ?? ()
   from /usr/lib64/mozilla-firefox/components/libxpconnect.so
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#2  0x000004000032cfd8 in vtable for nsHashKey ()
   from /usr/lib64/mozilla-firefox/libxpcom_core.so
No symbol table info available.
#3  0x000004000036a188 in .PL_InitArenaPool ()
   from /usr/lib64/nspr/libplds4.so.6
No symbol table info available.
#4  0x0000040001da27f0 in ._ZN5nsCRT4freeEPt ()
   from /usr/lib64/mozilla-firefox/components/libxpconnect.so
No symbol table info available.
#5  0x0000040001da2ba4 in ._ZN5nsCRT4freeEPt ()
   from /usr/lib64/mozilla-firefox/components/libxpconnect.so
No symbol table info available.
#6  0x0000040001d9e5a4 in ._ZN5nsCRT4freeEPt ()
   from /usr/lib64/mozilla-firefox/components/libxpconnect.so
No symbol table info available.
#7  0x0000040001d9e67c in ._ZN5nsCRT4freeEPt ()
   from /usr/lib64/mozilla-firefox/components/libxpconnect.so
No symbol table info available.
#8  0x00000400002a9ca8 in .NS_GetComponentManager_P ()
   from /usr/lib64/mozilla-firefox/libxpcom_core.so
No symbol table info available.
#9  0x00000400002abd60 in .NS_GetComponentManager_P ()
   from /usr/lib64/mozilla-firefox/libxpcom_core.so
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#10 0x00000400002abe00 in .NS_GetComponentManager_P ()
   from /usr/lib64/mozilla-firefox/libxpcom_core.so
No symbol table info available.
#11 0x00000400002326a0 in .NS_InitXPCOM3_P ()
   from /usr/lib64/mozilla-firefox/libxpcom_core.so
No symbol table info available.
#12 0x0000000010007be0 in ?? ()
No symbol table info available.
#13 0x0000000010070240 in ?? ()
No symbol table info available.
#14 0x4800048288000484 in ?? ()
No symbol table info available.
#15 0x5800048200000000 in ?? ()
No symbol table info available.
#16 0x0000000000000029 in ?? ()
No symbol table info available.
#17 0x00000fffffd34af0 in ?? ()
No symbol table info available.
#18 0x000004000003e010 in ?? () from /usr/lib64/mozilla-firefox/libmozjs.so
No symbol table info available.
#19 0x0000000000000000 in ?? ()
No symbol table info available.
Comment 35 Yang Dehua 2006-12-06 20:07:13 UTC
OK, Solved!
I noticed that in Markus's machine binutils-2.17 was used, so I thought that may be the reason why it didn't work on my machine.  I emerged binutils-2.17 and firefox-2.0-r2 again, and it worked! It works like a charm!
I think in firefox ebuild file >=binutils-2.17 dep may be needed for using this version of firefox.
Thank you very much for all you guys having helped me!

Dehua
Comment 36 Jory A. Pratt 2006-12-06 20:32:06 UTC
(In reply to comment #35)
> I think in firefox ebuild file >=binutils-2.17 dep may be needed for using this
> version of firefox.
> Thank you very much for all you guys having helped me!
> 
> Dehua
> 
Never gonna happen, only ppc64 is having such problems. Maybe your default profile should force a sane binutils instead of a busted one?
Comment 37 Yang Dehua 2006-12-06 20:42:43 UTC
(In reply to comment #36)
> (In reply to comment #35)
> > I think in firefox ebuild file >=binutils-2.17 dep may be needed for using this
> > version of firefox.
> > Thank you very much for all you guys having helped me!
> > 
> > Dehua
> > 
> Never gonna happen, only ppc64 is having such problems. Maybe your default
> profile should force a sane binutils instead of a busted one?
> 

Yes, you are right. 
Comment 38 Markus Rothe (RETIRED) gentoo-dev 2006-12-07 00:53:26 UTC
(In reply to comment #32)
> ###!!! ASSERTION: no method info: 'info', file xptcstubs_ppc64_linux.cpp, line
> 89
> Break: at file xptcstubs_ppc64_linux.cpp, line 89

hrm.. shouldn't xptcstubs_ppc_linux.cpp be used in 32bit userland?

(In reply to comment #36)
> Never gonna happen, only ppc64 is having such problems. Maybe your default
> profile should force a sane binutils instead of a busted one?

yes, default profile should force a sane binutils, but the problem is that there is no such version.. binutils-2.17 fails to link emacs (bug #152006), but fixed issues with ffmpeg (bug #147565) and now also firefox... this hurts.. :-/
Comment 39 David Woodhouse 2006-12-07 15:50:46 UTC
Created attachment 103585 [details, diff]
Updated patch for 1.5/2.0

This patch fixes an ABI violation in my original -- I should have had a 'nop' after each branch which the linker could play silly buggers with.

This is the replacement version for firefox 1.5 and 2.0 -- for the replacement version against firefox trunk, see the bug in mozilla bugzilla (which I referenced above).
Comment 40 Christian Marie (RETIRED) gentoo-dev 2006-12-18 19:59:06 UTC
*** Bug 136551 has been marked as a duplicate of this bug. ***
Comment 41 Markus Rothe (RETIRED) gentoo-dev 2006-12-21 07:40:12 UTC
mozilla team: once last update for the patch in patch-tarball please.. thanks!
Comment 42 Jory A. Pratt 2006-12-21 07:48:49 UTC
(In reply to comment #41)
> mozilla team: once last update for the patch in patch-tarball please.. thanks!
> 

I will get to this a bit later today along with the 32bit ul patch, sorry for the delay.
Comment 43 Markus Rothe (RETIRED) gentoo-dev 2006-12-21 09:29:03 UTC
patch tarball is updated now and we have the ~ppc64 in mozilla-firefox-2.0.0.1. firefox *should* build and run on ppc64! (whee!!!) And it *might* work on 32bit userland, too. (else I need to figure out why we don't use the setarch tool on 32bit userland. we don't, do we?)

marking as FIXED. I'll reopen if we still have problems.


many thanks to David Woodhouse for his awesome work on the patch!