You are not logged in.

#76 2009-06-13 19:54:16

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

I would say no chances wink If we cannot build it default, chance to build experimental qt gui are minimal... hmm


Proud ex-maintainer of firefox-pgo

Offline

#77 2009-06-14 00:09:14

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: Official firefox-pgo thread

I was able to build the new 3.5rc1 pgo package with the "$OBJDIR/_profileprofile" shell script but it would not start properly..... I got the "$prog" ${1+"$@"} error when trying to start it in the terminal.


So I just built it normally and ran a profile shell script to create /_profileprofile in my ~/.mozilla/firefox directory, then I ran the browser as it was running that shell script through the mozilla dromaeo performance tests for 33 minutes and closed it afterwards..... Then I created a new profile and used the ~/.mozilla/firefox/_profileprofile directory for my new profile.

this is the shell script I have been running after the build:

#!/bin/sh
export NO_EM_RESTART=1
mkdir $OBJDIR/home/seventy3/.mozilla/firefox/_profileprofile
$OBJDIR/usr/bin/firefox -no-remote -profile $OBJDIR/home/seventy3/.mozilla/firefox/_profileprofile

I'm not sure if this really helps or not.

As the browser is running this script I run these dromaeo tests.... I use the 'Run All Tests' selection: http://dromaeo.com/

The tests take about 33 minutes for me, then I close the browser. I have tried running both the sunspider tests first, and then the dromaeo tests and I have had my browser freeze. When forcing it to close my terminal also had this same "$prog" ${1+"$@"} error. When only running the dromaeo tests I didn't get that error.

Just to say this one more time, I don't think any of this actually improved anything..... my benchmark tests are still the exact same for before and after.

Last edited by methuselah (2009-06-14 19:12:10)

Offline

#78 2009-06-14 03:20:52

pyther
Member
Registered: 2008-01-21
Posts: 1,395
Website

Re: Official firefox-pgo thread

With seenxu's post I was able to get firefox 3.5rc1 compiled.
This is NOT a pgo build

I used firefox-pgo as the base for this pkgbuild.

PKGBUILD:

pkgname=firefox-beta
pkgver=3.5rc1
pkgrel=1
pkgdesc="Mozilla Firefox. XULRunner independent."
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2>=2.16.0' 'gcc-libs>=4.3.3' 'libidl2>=0.8.13' 'mozilla-common' 'nss>=3.12.2' 'libxt' 'lcms' 'startup-notification>=0.9' 'desktop-file-utils' 'shared-mime-info' 'libxt' 'zlib' 'libjpeg' 'nspr' 'libpng' 'cairo')
makedepends=('zip' 'pkgconfig' 'diffutils' 'python' 'xorg-server' 'imagemagick' 'alsa-lib' 'file')
provides=('firefox'="$pkgver")
conflicts=('firefox')
install=firefox.install
url="http://www.mozilla.org/projects/firefox"
source=(http://stage.mozilla.org/pub/mozilla.org/firefox/nightly/3.5rc1-candidates/build1/source/firefox-3.5rc1-source.tar.bz2
    mozconfig
    firefox.desktop
    firefox-safe.desktop
)

md5sums=('f237f4c8a08e46b5cf0786e20ccce69f'
         '8fe6f005bb6ff0aba4b141c3c71b252f'
         '4b766d6d21e1168dd365f467e4275e13'
         '1034e29d85c2d22faeb5899732321559')

build() {
  cd ${srcdir}/mozilla-1.9.1

  cp ${srcdir}/mozconfig .mozconfig

  make DESTDIR=${pkgdir} -f client.mk install || return 1

  install -m755 -d ${pkgdir}/usr/share/applications
  install -m755 -d ${pkgdir}/usr/share/pixmaps
  convert "$srcdir"/mozilla-1.9.1/other-licenses/branding/firefox/mozicon50.xpm ${pkgdir}/usr/share/pixmaps/firefox.png || return 1
  install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/ || return 1
  install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/ || return 1

  #Remove devel stuff
  rm -rf "$pkgdir"/usr/include/
  rm -rf "$pkgdir"/usr/lib/firefox-devel-${pkgver}/
  rm -rf "$pkgdir"/usr/share/idl/
  return 0
}

mozconfig

# load defaults from src tarball
. $topsrcdir/browser/config/mozconfig

# add our own options
ac_add_options --prefix=/usr --libdir=/usr/lib
ac_add_options --with-system-nspr --with-system-nss --with-system-jpeg --with-system-zlib --with-system-png --with-system-lcms --enable-system-cairo --enable-system-sqlite
ac_add_options --with-pthreads
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=cairo-gtk2 --disable-freetype2 --enable-xft
ac_add_options --disable-tests --disable-installer --disable-updater --disable-debug --disable-profilesharing --enable-single-profile --disable-mochitest
ac_add_options --enable-official-branding
ac_add_options --enable-jemalloc 
ac_add_options --enable-libxul
ac_add_options --disable-xprint
ac_add_options --disable-crashreporter --disable-parental-controls
#ac_add_options --enable-xinerama
ac_add_options --enable-safe-browsing --enable-webservices
ac_add_options --enable-strip

mk_add_options MOZ_MAKE_FLAGS=-j3
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-obj

Last edited by pyther (2009-06-14 03:21:56)


Website - Blog - arch-home
Arch User since March 2005

Offline

#79 2009-06-14 09:44:54

onearm
Member
From: Anywhere but here
Registered: 2006-07-06
Posts: 359
Website

Re: Official firefox-pgo thread

After weeks of trying, I got it working thanks to bond's configuration (with --enable-profile-guided-optimization in mozconfig). x86_64 both 3.5b4, 3.5b99 and rc1 can be compiled now. Only thing missing is ogg support, enabling it always ends in error at nsOggDecoder.


To get something done, a committee should consist of no more than three persons, two of them absent.
--
Twitter Github

Offline

#80 2009-06-14 12:28:09

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

http://rapidshare.com/files/244414970/f … eta.tar.gz

Pkgbuild for 3.5rc1 testing build one - --enable-profile-guided-optimization added, but it's still not compiling for me.


Proud ex-maintainer of firefox-pgo

Offline

#81 2009-06-14 14:20:24

rumil
Member
From: Krakow, Poland
Registered: 2007-11-16
Posts: 39

Re: Official firefox-pgo thread

blasse wrote:

http://rapidshare.com/files/244414970/f … eta.tar.gz

Pkgbuild for 3.5rc1 testing build one - --enable-profile-guided-optimization added, but it's still not compiling for me.

This PKGBUILD worked for me (well.. almost) - even though I'm running i686 I could not make PGO compile before.
Firefox itself compiled just fine, the PKGBUILD failed for me on:

sed: nie mozna odczytac /home/rumil/src/pkgs/firefox-pgo-beta/pkg/usr/lib/pkgconfig/*.pc: Nie ma takiego pliku ani katalogu

(for non Pol's : no such file exist).
Actually no *.pc files exist in ${pkgdir}.
The browser runs _almost_ fine ;-). I did't get any segfaults, however: I usally use futuremark.com/peacekeeper to benchark browsers, but this build just hangs for me on testing string operations. Maybe I'll try again with JIT disabled.

Offline

#82 2009-06-14 14:30:12

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

The names are not correct, I cannot corect them myself before because it won't build for me wink
Glad it works for someone, sad not for me wink


Proud ex-maintainer of firefox-pgo

Offline

#83 2009-06-14 18:12:56

moz
Member
Registered: 2009-01-20
Posts: 17

Re: Official firefox-pgo thread

My build stops here:

OBJDIR=/home/moz/Desktop/firefox/src/mozilla-1.9.1/ff-pgo python /home/moz/Desktop/firefox/src/mozilla-1.9.1/ff-pgo/_profile/pgo/profileserver.py
INFO | (automation.py) | Application pid: 6004
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded: ignored.
Xlib:  extension "RANDR" missing on display ":1.0".
Xlib:  extension "Generic Event Extension" missing on display ":1.0".
Xlib:  extension "Generic Event Extension" missing on display ":1.0".
Xlib:  extension "Generic Event Extension" missing on display ":1.0".
Xlib:  extension "Generic Event Extension" missing on display ":1.0".
Xlib:  extension "Generic Event Extension" missing on display ":1.0".
localhost.localdomain - - [14/Jun/2009 18:54:39] "GET /index.html HTTP/1.1" 200 -
localhost.localdomain - - [14/Jun/2009 18:54:39] "GET /quit.js HTTP/1.1" 200 -
localhost.localdomain - - [14/Jun/2009 18:54:40] code 404, message File not found
localhost.localdomain - - [14/Jun/2009 18:54:40] "GET /favicon.ico HTTP/1.1" 404 -
localhost.localdomain - - [14/Jun/2009 18:54:43] code 404, message File not found
localhost.localdomain - - [14/Jun/2009 18:54:43] "GET /favicon.ico HTTP/1.1" 404 -
FreeFontPath: FPE "/usr/share/fonts/misc" refcount is 2, should be 1; fixing.

I say 'stops' because it doesnt really fail, it just sits there without doing anything. Supposedly thats where firefox would load and the profiling would take place..but i see no firefox window.
Where does your build fail blasse?

PS.:those xlib  errors are unrelated to this.

Edit: i was talking about rc1

Last edited by moz (2009-06-14 18:17:30)

Offline

#84 2009-06-14 18:32:04

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

Maybe try with --disable-freetypetest in mozconfig? Didn't encounter such error before... My build fail excatly where before - with error 11...
Comment out lines

 LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX :1 &
  XPID=$!
  export DISPLAY=:1
.
.
  kill $XPID

Profiling will start in normal X, so if something goes wrong, you can manually exit profiling window smile


Proud ex-maintainer of firefox-pgo

Offline

#85 2009-06-15 09:20:49

bond
Member
From: Melbourne, Australia
Registered: 2009-05-05
Posts: 62

Re: Official firefox-pgo thread

200906151854501680x1050.th.jpg

moved to mozilla-central tree with minefield, pgo built fine,

something do with the flags (-ftest-coverage -fprofile-arcs) in the export CFLAGS/CXXFLAGS lines still causes the segmentation fault for me

pkgbuild:

pkgname=firefox
pkgver=central
pkgrel=15062009
pkgdesc="Mozilla Firefox, tracemonkey-enabled, XULRunner independent, and optimized"
arch=(i686 x86_64)
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2>=2.12.0' 'pango>=1.24.0' 'gcc-libs' 'libxt' 'libidl2' 'mozilla-common' 'nss>=3.11.7' 'desktop-file-utils' 'cairo>=1.8.0' 'libpng>=1.2.24-3')
makedepends=('zip' 'imagemagick' 'pkgconfig' 'gcc' 'diffutils' 'autoconf-compat' 'python')
replaces=('firefox')
conflicts=('firefox')
provides=('firefox'="$pkgver")
install=firefox.install
url="http://www.mozilla.org/projects/firefox"
source=(mozconfig
        firefox.desktop
    firefox-safe.desktop
    profileserver.sh)

build() {
  cd ${srcdir}/
  
  export LDFLAGS="-Wl,-rpath,/usr/lib/firefox-${pkgver}"
  make -j1 -f client.mk profiledbuild MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1

  make -j1 DESTDIR=${pkgdir} -C ./ff-bin install || return 1

  install -m755 -d ${pkgdir}/usr/share/applications
  install -m755 -d ${pkgdir}/usr/share/pixmaps
  install -m644 ${srcdir}/browser/branding/unofficial/default48.png ${pkgdir}/usr/share/pixmaps/firefox.png || return 1
  install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/ || return 1
  install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/ || return 1
}

mozconfig

. $topsrcdir/browser/config/mozconfig

MAKEFLAGS="-j3"

ac_add_options --enable-application=browser
mk_add_options MOZ_CO_PROJECT=browser

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-bin
mk_add_options PROFILE_GEN_SCRIPT=@TOPSRCDIR@/profileserver.sh
ac_add_options --enable-optimize
ac_add_options --enable-profile-guided-optimization
ac_add_options --disable-debug
ac_add_options --disable-tests

ac_add_options --prefix=/usr
ac_add_options --libdir=/usr/lib
ac_add_options --with-pthreads
#ac_add_options --with-user-appdir=.mozilla

ac_add_options --disable-installer
ac_add_options --disable-updater
ac_add_options --enable-strip
#ac_add_options --enable-install-strip
#ac_add_options --enable-official-branding 
#ac_add_options --enable-extensions=default

ac_add_options --disable-safe-browsing
ac_add_options --disable-crashreporter
#ac_add_options --disable-parental-controls
#ac_add_options --disable-accessibility

ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --enable-xft
ac_add_options --enable-xinerama
#ac_add_options --disable-freetype2

ac_add_options --enable-pango
ac_add_options --enable-system-cairo
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --enable-jemalloc
#ac_add_options --enable-system-sqlite
#ac_add_options --enable-webservices 
#ac_add_options --enable-xpctools 

ac_add_options --disable-xprint
#ac_add_options --disable-jsd
#ac_add_options --disable-javaxpcom
#ac_add_options --disable-ogg
#ac_add_options --disable-printing
#ac_add_options --disable-xpcom-obsolete

ac_add_options --disable-mochitest
ac_add_options --disable-pedantic
#ac_add_options --enable-native-uconv 
#ac_add_options --disable-oji

ac_add_options --with-system-zlib
ac_add_options --with-system-png
#ac_add_options --with-system-nspr
#ac_add_options --with-system-nss 
#ac_add_options --with-system-jpeg 
#ac_add_options --with-system-lcms

makepkg.conf

CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"
CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe"

Offline

#86 2009-06-15 12:25:25

oddsocks
Member
Registered: 2008-12-08
Posts: 47

Re: Official firefox-pgo thread

bond wrote:

moved to mozilla-central tree with minefield, pgo built fine,

something do with the flags (-ftest-coverage -fprofile-arcs) in the export CFLAGS/CXXFLAGS lines still causes the segmentation fault for me

Hey bond, trying to do this myself, but having a hard time finding the minefield source code, and found that it is not provided. So how did you manage to compile from minefield?

EDIT: Used mercurial to use the central trunk, and did build a pgo firefox. Typing on it right now!! Thanks bond.

Last edited by oddsocks (2009-06-16 09:03:01)

Offline

#87 2009-06-15 12:42:29

bangkok_manouel
Member
From: indicates a starting point
Registered: 2005-02-07
Posts: 1,556

Re: Official firefox-pgo thread

oddsocks wrote:
bond wrote:

moved to mozilla-central tree with minefield, pgo built fine,

something do with the flags (-ftest-coverage -fprofile-arcs) in the export CFLAGS/CXXFLAGS lines still causes the segmentation fault for me

Hey bond, trying to do this myself, but having a hard time finding the minefield source code, and found that it is not provided. So how did you manage to compile from minefield?

Getting Mozilla Source Code Using Mercurial

Last edited by bangkok_manouel (2009-06-15 12:43:40)

Offline

#88 2009-06-15 12:59:47

oddsocks
Member
Registered: 2008-12-08
Posts: 47

Re: Official firefox-pgo thread

Thanks bangkok_manouel, I'll look into it. Google must have failed me big_smile

Offline

#89 2009-06-15 16:40:06

FallenWizard
Member
From: Vienna/ Austria
Registered: 2007-12-10
Posts: 99

Re: Official firefox-pgo thread

firefox-pgo compiled for me fine, but I got this error when I opened Firefox:
http://omploader.org/vMXU2ZA/firefox.jpg

( I am on x86_64 )

Last edited by FallenWizard (2009-06-15 17:03:31)

Offline

#90 2009-06-15 16:59:05

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

So we have new error in our collection wink Have no idea what this one means...:/


Proud ex-maintainer of firefox-pgo

Offline

#91 2009-06-15 17:07:28

FallenWizard
Member
From: Vienna/ Austria
Registered: 2007-12-10
Posts: 99

Re: Official firefox-pgo thread

Ok, works fine now, I just had an old instance of Firefox 3.0.11 loaded.

http://omploader.org/vMXU3MA/firefox.jpg

EDIT: I removed the CFLAGS/CXXFLAGS and replaced the LDFLAGS line with
export LDFLAGS="-Wl,-rpath,/usr/lib/firefox-${pkgver}"

Can be that's not a PGO build anymore, but Firefox runs quite fast.

Last edited by FallenWizard (2009-06-15 17:19:10)

Offline

#92 2009-06-15 17:29:31

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

It's PGO, you just removed some optimizations smile It will work just fine that way.

btw.
http://rapidshare.com/files/244880456/f … pgo.tar.gz (also in first topic).
New 3.0.11 with patches from xulrunner - please test and report back if it compiles and works fine smile


Proud ex-maintainer of firefox-pgo

Offline

#93 2009-06-15 18:32:54

FallenWizard
Member
From: Vienna/ Austria
Registered: 2007-12-10
Posts: 99

Re: Official firefox-pgo thread

blasse wrote:

It's PGO, you just removed some optimizations smile It will work just fine that way.

btw.
http://rapidshare.com/files/244880456/f … pgo.tar.gz (also in first topic).
New 3.0.11 with patches from xulrunner - please test and report back if it compiles and works fine smile

Please don't use rapidshare, use omploader.

Offline

#94 2009-06-15 21:21:39

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

FallenWizard wrote:
blasse wrote:

It's PGO, you just removed some optimizations smile It will work just fine that way.

btw.
http://rapidshare.com/files/244880456/f … pgo.tar.gz (also in first topic).
New 3.0.11 with patches from xulrunner - please test and report back if it compiles and works fine smile

Please don't use rapidshare, use omploader.

http://omploader.org/vMXU4cg/firefox-pgo.tar.gz - done


Proud ex-maintainer of firefox-pgo

Offline

#95 2009-06-16 19:45:31

moz
Member
Registered: 2009-01-20
Posts: 17

Re: Official firefox-pgo thread

blasse wrote:

Maybe try with --disable-freetypetest in mozconfig? Didn't encounter such error before... My build fail excatly where before - with error 11...
Comment out lines

 LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX :1 &
  XPID=$!
  export DISPLAY=:1
.
.
  kill $XPID

Profiling will start in normal X, so if something goes wrong, you can manually exit profiling window smile

Removing the gtk-qt-engine fixed it... For some reason ff3.5 doesnt exit properly when the engine is in use, i can see one ff process still alive after quitting and when i SIGTERM'd that process the build would fail.
I actually managed to build rc1 but it failed when it was creating the pkg exactly at this line in the pkgbuild

sed -i -e "s/xulrunner-${pkgver}/xulrunner-1.9.1/g" -e "s/xulrunner-devel-${pkgver}/xulrunner-devel-1.9.1/g" ${pkgdir}/usr/lib/pkgconfig/*.pc || return 1

asking about some missing .pc files..

Offline

#96 2009-06-16 19:49:57

blasse
Member
From: Poland
Registered: 2008-04-24
Posts: 303

Re: Official firefox-pgo thread

Try changing this line to:
  sed -i -e "s/${pkgname}-${pkgver}/mozilla-1.9.1/g" -e "s/mozilla-devel-${pkgver}/mozilla-devel-1.9.1/g" ${pkgdir}/usr/lib
I know it's wrong, but i cannot correct it myself hmm


Proud ex-maintainer of firefox-pgo

Offline

#97 2009-06-16 20:55:53

Pank
Member
From: IT
Registered: 2009-06-13
Posts: 371

Re: Official firefox-pgo thread

This is not very productive but the 3.5b99 on AUR worked like a charm for me. No problems what so ever (despite the long compilation). I did dare going to compile RC1 due to all this thread and due to the long compilation time.

3.5-pgo is fast though.


Arch x64 on Thinkpad X200s/W530

Offline

#98 2009-06-16 21:35:25

kazuo
Member
From: São Paulo/Brazil
Registered: 2008-03-18
Posts: 413
Website

Re: Official firefox-pgo thread

pyther wrote:

With seenxu's post I was able to get firefox 3.5rc1 compiled.
This is NOT a pgo build

I used firefox-pgo as the base for this pkgbuild.

PKGBUILD:

I'm getting a error

Creating package directory...
mkdir: cannot create directory `../../dist/firefox': No such file or directory
make[2]: *** [stage-package] Error 1
make[2]: Leaving directory `/var/abs/local/firefox-beta/src/mozilla-1.9.1/ff-opt-obj/browser/installer'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/var/abs/local/firefox-beta/src/mozilla-1.9.1/ff-opt-obj'
make: *** [install] Error 2

Offline

#99 2009-06-16 22:51:29

kazuo
Member
From: São Paulo/Brazil
Registered: 2008-03-18
Posts: 413
Website

Re: Official firefox-pgo thread

Someone have any 3.1/3.5 version compiled for 64 bits that work? I cannot make eithe pgo or no-pgo to run (tested with 3.1b3 3.5b4 3.5b99 3.5rc1) I get segfaults on startup.

Offline

#100 2009-06-16 23:19:19

methuselah
Member
Registered: 2007-10-02
Posts: 570

Re: Official firefox-pgo thread

None of this may be correct or necessary, but this is what I did since I can't build pgo at all since 3.1b3

kazuo wrote:

Someone have any 3.1/3.5 version compiled for 64 bits that work? I cannot make eithe pgo or no-pgo to run (tested with 3.1b3 3.5b4 3.5b99 3.5rc1) I get segfaults on startup.

I just ditched the pgo, and built a normal optimized build with CFLAGS/LDFLAGS that compiles correctly using blasses firefox-pgo-beta tarball.

Before building the package I modified my /etc/makepkg.conf file's CFLAGS to not use the "-O2" or "-pipe" optimizations since the mozilla optimizer does this already in the mozconfig file. (I did this because someone had said that exporting CFLAGS had caused a problem..... I'm not sure if this is true but why chance it) 

Then I added this patch from the bug page: https://bug418866.bugzilla.mozilla.org/ … ?id=372234

.... and I modified the patch from this comment 47: https://bugzilla.mozilla.org/show_bug.cgi?id=418866#c47


Then I modified the PKGBUILD to not use the profile shell script, or client.mk profiledbuild, and to add the new patch and md5sums:

# Contributor: blasse <koralik(at)gmail(dot)com>
pkgname=firefox-pgo-beta
pkgver=3.5rc1
pkgrel=1
pkgdesc="Mozilla Firefox, this one is tracemonkey-enabled. XULRunner independent. And optimized for faster use :)"
arch=('i686' 'x86_64')
license=('MPL' 'GPL' 'LGPL')
depends=('gtk2>=2.16.0' 'gcc-libs>=4.3.3' 'libidl2>=0.8.13' 'mozilla-common' 'nss>=3.12.2' 'libxt' 'lcms' 'startup-notification>=0.9' 'desktop-file-utils' 'shared-mime-info' 'libxt' 'zlib' 'libjpeg' 'nspr' 'libpng' 'cairo')
makedepends=('zip' 'pkgconfig' 'diffutils' 'python' 'xorg-server' 'imagemagick' 'alsa-lib' 'file')
provides=('firefox'="$pkgver")
conflicts=('firefox')
install=firefox.install
url="http://www.mozilla.org/projects/firefox"
source=(
    #ftp://ftp.mozilla.org/pub/firefox/nightly/"$pkgver"-candidates/build2/source/firefox-"$pkgver"-source.tar.bz2
    http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/3.5rc1-candidates/build1/source/firefox-3.5rc1-source.tar.bz2
    mozconfig
    firefox.desktop
    firefox-safe.desktop
    mozilla-firefox-1.0-lang.patch
    fix-mozilla-launcher.patch
    ldflags.patch
    ldflags2.patch)
options=('!makeflags')
md5sums=('f237f4c8a08e46b5cf0786e20ccce69f'
         '206cb66d926202f01e74d332ee35820a'
         '4b766d6d21e1168dd365f467e4275e13'
         '1034e29d85c2d22faeb5899732321559'
         'e5aff38bf1dc7e885694d967e3806e07'
         '63eee2d1da3b43c9d604f2253f242f40'
         '9e461e5fc73b241d68d08be908405a5e'
     '195b68dfe55210379a601bf71d5577ca')
build() {
  cd ${srcdir}/mozilla-1.9.1

  patch -Np1 -i ${srcdir}/mozilla-firefox-1.0-lang.patch || return 1
  #Fix stub launcher - archlinux
  patch -Np0 -i ${srcdir}/fix-mozilla-launcher.patch || return 1
  #Add -lxrender -lx11 LDFLAGS.
  patch -Np1 -i ${srcdir}/ldflags2.patch || return 1
  patch -Np1 -i ${srcdir}/ldflags.patch || return 1

  cp ${srcdir}/mozconfig .mozconfig
#simple shll scrip for gathering data seems to work better - you have 15s to run some site for profiling.
#  cp ${srcdir}/profileserver.sh profileserver.sh

  LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX :1 &
  XPID=$!
  export DISPLAY=:1

#if building for redistribution use "-march=i686" or "-march=x86_64" instead of native.
#note: redistributing self-builded firefox with official branding violates mozilla EULA license. Be warned ;)

# -O flag can be used safely - mozillas code overwrites -O flag with own one if defined.. If not compiling try using -O0 (diasble optimize) - probably will fail too ;).
#  export CFLAGS="-march=athlon64-sse3 -floop-interchange -floop-strip-mine -floop-block"
#  export CXXFLAGS="-march=athlon64-sse3 -floop-interchange -floop-strip-mine -floop-block"
  export LDFLAGS="-Wl,-O1 -Wl,--rpath,/usr/lib/firefox-${pkgver},--hash-style=gnu"
#  unset CFLAGS
#  unset CXXFLAGS
#  sed -e 's/#CFLAGS#/'"$CFLAGS"'/g' <"$srcdir"/mozconfig >.mozconfig

  LD_PRELOAD=""
#for PGO build
#  make clean -j1 -f client.mk profiledbuild MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1
#for non-PGO build
  make -j1 -f client.mk MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1
  kill $XPID

  make -j1 DESTDIR=${pkgdir} -C ff-pgo install || return 1

  install -m755 -d ${pkgdir}/usr/share/applications
  install -m755 -d ${pkgdir}/usr/share/pixmaps
  convert "$srcdir"/mozilla-1.9.1/other-licenses/branding/firefox/mozicon50.xpm ${pkgdir}/usr/share/pixmaps/firefox.png || return 1
  install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/ || return 1
  install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/ || return 1
#Remove devel stuff
  rm -rf "$pkgdir"/usr/include/
  rm -rf "$pkgdir"/usr/lib/firefox-devel-${pkgver}/
  rm -rf "$pkgdir"/usr/share/idl/
  return 0
}

The ldflags2 patch:

diff -r b8f1ba61d9bc configure.in
--- a/configure.in    Fri Apr 10 16:42:29 2009 -0400
+++ b/configure.in    Sat Apr 11 21:02:10 2009 +0200
@@ -7099,28 +7099,28 @@ MOZ_ARG_DISABLE_BOOL(profile-guided-opti
 [  --disable-profile-guided-optimization
                            Don't build with PGO even if called via make profiledbuild],
 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=1,
 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=)
 
 AC_SUBST(MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE)
 
 _SAVE_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS -fprofile-generate"
+CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction -fprofile-arcs -ftest-coverage"
 
 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
 AC_TRY_COMPILE([], [return 0;],
-               [ PROFILE_GEN_CFLAGS="-fprofile-generate"
+               [ PROFILE_GEN_CFLAGS="-fprofile-generate -fprofile-correction -fprofile-arcs -ftest-coverage"
                  result="yes" ], result="no")
 AC_MSG_RESULT([$result])
 
 if test $result = "yes"; then
   PROFILE_GEN_LDFLAGS="-fprofile-generate"
-  PROFILE_USE_CFLAGS="-fprofile-use"
-  PROFILE_USE_LDFLAGS="-fprofile-use"
+  PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -fprofile-arcs -ftest-coverage"
+  PROFILE_USE_LDFLAGS="-fprofile-use -fprofile-correction -fprofile-arcs"
 else
   CFLAGS="$_SAVE_CFLAGS -fprofile-arcs"
   AC_MSG_CHECKING([whether C compiler supports -fprofile-arcs])
   AC_TRY_COMPILE([], [return 0;],
                  [ PROFILE_GEN_CFLAGS="-fprofile-arcs"
                    result="yes" ], result="no")
   AC_MSG_RESULT([$result])
   if test $result = "yes"; then
diff -r b8f1ba61d9bc memory/jemalloc/Makefile.in
--- a/memory/jemalloc/Makefile.in    Fri Apr 10 16:42:29 2009 -0400
+++ b/memory/jemalloc/Makefile.in    Sat Apr 11 21:02:10 2009 +0200
@@ -112,18 +112,15 @@ DIST_INSTALL = 1
 DIST_INSTALL = 1
 FORCE_STATIC_LIB= 1
 endif
 
 CSRCS        = \
         jemalloc.c \
         $(NULL)
 
-#XXX: PGO on Linux causes problems here
-# See bug 419470
-NO_PROFILE_GUIDED_OPTIMIZE = 1
 endif
 
 include $(topsrcdir)/config/rules.mk
 
 ifeq (Darwin,$(OS_TARGET))
 LDFLAGS += -init _jemalloc_darwin_init
 endif

This part might not be necessary at all.

Then after building it I run this script using "-no-remote -profile". (I'm not sure if this actually does anything)

#!/bin/sh
export NO_EM_RESTART=1
mkdir $OBJDIR/home/"your_name"/.mozilla/firefox/_profileprofile
$OBJDIR/usr/bin/firefox -no-remote -profile $OBJDIR/home/"your_name"/.mozilla/firefox/_profileprofile

Then as it is running as 'firefox -no-remote -profile' I do the dromaeo "All Tests" from here: http://dromaeo.com/?all

After that I close the browser, then I ran:

firefox -ProfileManage

and I create a new profile and use the newly created "/home/"your_name"/.mozilla/firefox/_profileprofile" directory for it. My benchmarks are still the same, but it still feels fast and quick when opening..... I'm sure a real pgo build would be much better. (I also compared all files in /_profileprofile and they are the exact same..... so this package is probably just an optimized firefox-3.5rc1 with no real pgo)

Last edited by methuselah (2009-06-16 23:31:00)

Offline

Board footer

Powered by FluxBB