Firefox 4 with PGO compile error

Neko Chang epopen at gmail.com
Thu May 26 16:42:04 UTC 2011


2011/5/26 Daniel Nebdal <dnebdal at gmail.com>:
> On Thu, May 26, 2011 at 4:31 AM, Neko Chang <epopen at gmail.com> wrote:
>> 2011/5/25 Daniel Nebdal <dnebdal at gmail.com>:
>>> On Wed, May 25, 2011 at 5:22 AM, Neko Chang <epopen at gmail.com> wrote:
>>>> Hi FreeBSD team :D
>>>>
>>>> I tried build firefox 4 with PGO support via ports under GNOME
>>>> 2.32.1(ordinary user, but build firefox by root), but build fail.
>>>> Later I posted the problem to FreeBSD support
>>>> forums,(http://forums.freebsd.org/showthread.php?t=23827)
>>>> But can't solve it.
>>>>
>>>> So I write the mail :D
>>>> Please help me....
>>>>
>>>> * Output from 'uname -a'.
>>>> FreeBSD epopen.com 8.2-STABLE FreeBSD 8.2-STABLE #0: Sat Apr 23
>>>> 16:23:23 CST 2011     localhost:/usr/obj/usr/src/sys/Kernel  amd64
>>>>
>>>> * Output from 'ident /usr/ports/www/firefox/Makefile'
>>>> /usr/ports/www/firefox/Makefile:
>>>>     $FreeBSD: ports/www/firefox/Makefile,v 1.240 2011/04/29 06:31:39 flo Exp $
>>>>
>>>> * Where/when did the problem occur: configuring, building, or   running firefox
>>>>  Build.
>>>>
>>>> * How can you reproduce the problem?
>>>>  If turn-on PGO in "make config"
>>>>
>>>> Under is error message....
>>>>
>>>> if test -d ../../../../dist/bin ; then touch
>>>> ../../../../dist/bin/.purgecaches ; fi
>>>> gmake[5]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/other-licenses/branding/firefox/locales'
>>>> hg: not found
>>>> Making langpack
>>>> /usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/locales/../../dist/install/firefox-4.0.1.en-US.langpack.xpi
>>>> /usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/config/nsinstall
>>>> -D ../../dist/install/
>>>> /usr/local/bin/perl5.12.3
>>>> /usr/ports/www/firefox/work/mozilla-2.0/config/preprocessor.pl
>>>> -DOSTYPE=\"FreeBSD8\" -DOSARCH=FreeBSD -DAB_CD=en-US
>>>> -DMOZ_LANGPACK_EID=langpack-en-US at firefox.mozilla.org
>>>> -DMOZ_APP_VERSION=4.0.1
>>>> -DLOCALE_SRCDIR=/usr/ports/www/firefox/work/mozilla-2.0/browser/locales/en-US
>>>> -DPKG_BASENAME="firefox-4.0.1.en-US.freebsd8.2-amd64"
>>>> -DPKG_INST_BASENAME="firefox-4.0.1.en-US.freebsd8.2-amd64.installer"
>>>> -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -DHAVE_64BIT_OS=1
>>>> -DMOZILLA_VERSION=\"2.0.1\" -DMOZILLA_VERSION_U=2.0.1 -DD_INO=d_ino
>>>> -DSTDC_HEADERS=1 -DHAVE_SSIZE_T=1 -DHAVE_ST_BLKSIZE=1
>>>> -DHAVE_SIGINFO_T=1 -DHAVE_INT16_T=1 -DHAVE_INT32_T=1 -DHAVE_INT64_T=1
>>>> -DHAVE_UINT=1 -DHAVE_UINT16_T=1 -DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1
>>>> -DHAVE_VISIBILITY_ATTRIBUTE=1 -DHAVE_DIRENT_H=1 -DHAVE_GETOPT_H=1
>>>> -DHAVE_MEMORY_H=1 -DHAVE_UNISTD_H=1 -DHAVE_NL_TYPES_H=1
>>>> -DHAVE_X11_XKBLIB_H=1 -DHAVE_SYS_STATVFS_H=1 -DHAVE_MMINTRIN_H=1
>>>> -DHAVE_SYS_CDEFS_H=1 -DHAVE_DLOPEN=1 -DHAVE_DLADDR=1 -DFUNCPROTO=15
>>>> -DHAVE_XSHM=1 -DHAVE_LIBXSS=1 -DHAVE_FT_BITMAP_SIZE_Y_PPEM=1
>>>> -DHAVE_FT_GLYPHSLOT_EMBOLDEN=1 -DHAVE_FT_LOAD_SFNT_TABLE=1
>>>> -DHAVE_FT_SELECT_SIZE=1 -D_REENTRANT=1 -D_THREAD_SAFE=1
>>>> -DHAVE_RANDOM=1 -DHAVE_STRERROR=1 -DHAVE_LCHOWN=1 -DHAVE_FCHMOD=1
>>>> -DHAVE_SNPRINTF=1 -DHAVE_MEMMOVE=1 -DHAVE_SETBUF=1 -DHAVE_ISATTY=1
>>>> -DHAVE_FLOCKFILE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_STRTOK_R=1
>>>> -DHAVE_CLOCK_MONOTONIC=1 -DHAVE_LANGINFO_CODESET=1 -DVA_COPY=va_copy
>>>> -DHAVE_VA_COPY=1 -DHAVE_VA_LIST_AS_ARRAY=1 -DHAVE_THREAD_TLS_KEYWORD=1
>>>> -DMALLOC_H=\<sys/malloc.h\> -DHAVE_STRNDUP=1 -DHAVE_POSIX_MEMALIGN=1
>>>> -DHAVE_VALLOC=1 -DHAVE_I18N_LC_MESSAGES=1 -DHAVE_LOCALECONV=1
>>>> -DNS_ALWAYS_INLINE=__attribute__\(\(always_inline\)\)
>>>> -DNS_ATTR_MALLOC=__attribute__\(\(malloc\)\)
>>>> -DNS_WARN_UNUSED_RESULT=__attribute__\(\(warn_unused_result\)\)
>>>> -DNS_NORETURN=__attribute__\(\(noreturn\)\) -DMOZ_PHOENIX=1
>>>> -DMOZ_BUILD_APP=browser -DMOZ_X11=1 -DMOZ_WIDGET_GTK2=1
>>>> -DMOZ_PDF_PRINTING=1 -DMOZ_ENABLE_XREMOTE=1 -DMOZ_OFFICIAL_BRANDING=1
>>>> -DMOZ_DISTRIBUTION_ID=\"org.mozilla\" -DMOZ_PANGO=1
>>>> -DMOZ_ENABLE_GNOMEVFS=1 -DMOZ_ENABLE_GCONF=1 -DMOZ_ENABLE_LIBNOTIFY=1
>>>> -DMOZ_ENABLE_GNOMEUI=1 -DMOZ_ENABLE_DBUS=1 -DIBMBIDI=1
>>>> -DMOZ_VIEW_SOURCE=1 -DACCESSIBILITY=1 -DMOZ_JSLOADER=1 -DNS_PRINTING=1
>>>> -DNS_PRINT_PREVIEW=1 -DMOZ_OGG=1 -DATTRIBUTE_ALIGNED_MAX=64
>>>> -DMOZ_WEBM=1 -DVPX_X86_ASM=1 -DMOZ_WAVE=1 -DMOZ_SYDNEYAUDIO=1
>>>> -DMOZ_MEDIA=1 -DMOZ_VORBIS=1 -DMOZ_XTF=1
>>>> -DMOZ_CRASHREPORTER_ENABLE_PERCENT=100 -DMOZ_MATHML=1 -DMOZ_SVG=1
>>>> -DMOZ_SMIL=1 -DMOZ_UPDATE_CHANNEL=default -DMOZ_FEEDS=1
>>>> -DMOZ_STORAGE=1 -DMOZ_SAFE_BROWSING=1 -DMOZ_URL_CLASSIFIER=1
>>>> -DNS_DISABLE_LOGGING=1 -DHAVE___CXA_DEMANGLE=1
>>>> -DMOZ_CHROME_FILE_FORMAT_JAR=1
>>>> -DMOZ_DEFAULT_MOZILLA_FIVE_HOME=\"/usr/local/lib/firefox\"
>>>> -DMOZ_USER_DIR=\".mozilla\" -DMOZ_STATIC_JS=1 -DMOZ_ENABLE_LIBXUL=1
>>>> -DHAVE_STDINT_H=1 -DHAVE_INTTYPES_H=1 -DMOZ_XUL=1
>>>> -DMOZ_PROFILELOCKING=1 -DMOZ_RDF=1 -DBUILD_CTYPES=1 -DMOZ_MORKREADER=1
>>>> -DMOZ_PLACES=1 -DMOZ_SERVICES_SYNC=1 -DMOZ_APP_UA_NAME=\"\"
>>>> -DMOZ_APP_UA_VERSION=\"4.0.1\" -DMOZ_UA_FIREFOX_VERSION=\"4.0.1\"
>>>> -DMOZ_UA_BUILDID=\"20100101\" -DMOZ_DLL_SUFFIX=\".so\"
>>>> -DHAVE_FONTCONFIG_FCFREETYPE_H=1 -DXP_UNIX=1 -DUNIX_ASYNC_DNS=1
>>>> -DMOZ_ACCESSIBILITY_ATK=1 -DATK_MAJOR_VERSION=1 -DATK_MINOR_VERSION=32
>>>> -DATK_REV_VERSION=0
>>>> -I/usr/ports/www/firefox/work/mozilla-2.0/toolkit/locales/en-US/defines.inc
>>>> -I/usr/ports/www/firefox/work/mozilla-2.0/browser/locales/en-US/defines.inc
>>>> /usr/ports/www/firefox/work/mozilla-2.0/browser/locales/generic/install.rdf
>>>>> ../../dist/xpi-stage/locale-en-US/install.rdf
>>>> cd ../../dist/xpi-stage/locale-en-US && \
>>>>  /usr/local/bin/zip -r9D
>>>> /usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/locales/../../dist/install/firefox-4.0.1.en-US.langpack.xpi
>>>> install.rdf chrome chrome.manifest -x chrome/en-US.manifest
>>>>  adding: install.rdf (deflated 50%)
>>>>  adding: chrome/en-US.jar (deflated 75%)
>>>>  adding: chrome.manifest (deflated 78%)
>>>> gmake[4]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/locales'
>>>> gmake[3]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>>>> gmake tools
>>>> gmake[3]: Entering directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>>>> gmake[3]: Nothing to be done for `tools'.
>>>> gmake[3]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>>>> if test -d ../../dist/bin ; then touch ../../dist/bin/.purgecaches ; fi
>>>> hg: not found
>>>> gmake[2]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>>>> gmake[1]: Leaving directory
>>>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2'
>>>> OBJDIR=obj-amd64-unknown-freebsd8.2 /usr/local/bin/python2.7
>>>> obj-amd64-unknown-freebsd8.2/_profile/pgo/profileserver.py
>>>> args: ['/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/dist/firefox/firefox-bin',
>>>> '-no-remote', '-profile',
>>>> '/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/_profile/pgo/pgoprofile/',
>>>> 'http://127.0.0.1:8888/index.html']
>>>> INFO | automation.py | Application pid: 95151
>>>>
>>>> (firefox-bin:95151): GnomeUI-WARNING **: While connecting to session manager:
>>>> None of the authentication protocols specified are supported.
>>>> **
>>>> GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion failed:
>>>> (connection->initialization_error == NULL)
>>>> TEST-UNEXPECTED-FAIL | automation.py | Exited with code -6 during test run
>>>> INFO | automation.py | Application ran for: 0:00:03.279356
>>>> INFO | automation.py | Reading PID log: /tmp/tmpJZSM19pidlog
>>>> gmake: *** [profiledbuild] Error 250
>>>> *** Error code 1
>>>>
>>>> Stop in /usr/ports/www/firefox.
>>>> *** Error code 1
>>>>
>>>> Stop in /usr/ports/www/firefox.
>>>> [/usr/ports/www/firefox]#
>>>> ====
>>>>
>>>> Make start, System print-out under message
>>>> To build Firefox with PGO support you need a running X server and
>>>>   build this port with an user who could access the X server!
>>>>
>>>> During the build a Firefox instance will start and run some test.
>>>>      Do not interrupt or close Firefox during this tests!
>>>>
>>>> The message and error log, I think firefox need connect a daemon
>>>> (localhost:8888) if PGO support ON when build.
>>>> But I don't know what daemon  need, even Google.....
>>>>
>>>> If I help to debug, Please tell me.
>>>> Thanks your hard work, Let us good firefox :D
>>>>
>>>
>> Thanks  Daniel Nebdal
>>>
>>> I *think* that error is because it expects a gnome session (or at
>>> least a dbus server) to be available. If you used plain "su" to become
>>> root, it won't have the right environment. Could you try either sudo
>>> or su -m ?
>>>
>>
>> I tried your suggest "su -m" for compile firefox and got under error log...
>> cd ../../dist/xpi-stage/locale-en-US && \
>>  /usr/local/bin/zip -r9D
>> /usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/locales/../../dist/install/firefox-4.0.1.en-US.langpack.xpi
>> install.rdf chrome chrome.manifest -x chrome/en-US.manifest
>>  adding: install.rdf (deflated 50%)
>>  adding: chrome/en-US.jar (deflated 75%)
>>  adding: chrome.manifest (deflated 78%)
>> gmake[4]: Leaving directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/locales'
>> gmake[3]: Leaving directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>> gmake tools
>> gmake[3]: Entering directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>> gmake[3]: Nothing to be done for `tools'.
>> gmake[3]: Leaving directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>> if test -d ../../dist/bin ; then touch ../../dist/bin/.purgecaches ; fi
>> hg: not found
>> gmake[2]: Leaving directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/browser/installer'
>> gmake[1]: Leaving directory
>> `/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2'
>> OBJDIR=obj-amd64-unknown-freebsd8.2 /usr/local/bin/python2.7
>> obj-amd64-unknown-freebsd8.2/_profile/pgo/profileserver.py
>> args: ['/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/dist/firefox/firefox-bin',
>> '-no-remote', '-profile',
>> '/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/_profile/pgo/pgoprofile/',
>> 'http://127.0.0.1:8888/index.html']
>> INFO | automation.py | Application pid: 34583
>> **
>> GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion failed:
>> (connection->initialization_error == NULL)
>> TEST-UNEXPECTED-FAIL | automation.py | Exited with code -6 during test run
>> INFO | automation.py | Application ran for: 0:00:03.013733
>> INFO | automation.py | Reading PID log: /tmp/tmpKm9_Mgpidlog
>> gmake: *** [profiledbuild] Error 250
>> *** Error code 1
>>
>> Stop in /usr/ports/www/firefox.
>> *** Error code 1
>>
>> Stop in /usr/ports/www/firefox.
>> ** Command failed [exit code 1]: /usr/bin/script -qa
>> /tmp/portupgrade20110526-91985-h6sf0l-0 env UPGRADE_TOOL=portupgrade
>> UPGRADE_PORT=firefox-4.0.1,1 UPGRADE_PORT_VER=4.0.1,1 make
>> ** Fix the problem and try again.
>> ** Listing the failed packages (-:ignored / *:skipped / !:failed)
>>        ! www/firefox (firefox-4.0.1,1) (missing header)
>> =====================
>>
>> Error message different !
>> But tried compile firefox before, I had been upgrade perl-threaded
>> from 5.12 to 5.14.
>> I can't know why log different, "su -m" or perl....
>> So I will try to compile by plain "su" again for confirm.
I had been recompile, su & su -m cause different error message....

>
> Before you try compiling - could you try launching a gtk/dbus app from
> the su shell? (gedit or whatever). If I just su and try, gedit fails
> with "GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion
> failed: (connection->initialization_error == NULL)" , which seems to
> be the same error you got there. On the other hand, "sudo gedit" works
> for me ... so I suggest trying sudo.
Yes, You are right.  I tried your suggest and got result.
"su & gedit"  -> (gedit:26641): EggSMClient-WARNING **: Failed to
connect to the session manager: None of the authentication protocols
specified are supported

GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion failed:
(connection->initialization_error == NULL)
"su -m & gedit" ->
GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion failed:
(connection->initialization_error == NULL)
"sudo & gedit" -> Work fine !!!

>
> As for "su -m" , it lets me run simple X apps, but not e.g. gedit: It
> looks like it inherits enough to connect to X, but for whatever reason
> not enough to connect to the dbus daemon. Weird.
>
Because sudo & gedit work fine.  So I run "sudo portupgrade -f firefox"
And got under build log

gmake[1]: Leaving directory
`/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2'
OBJDIR=obj-amd64-unknown-freebsd8.2 /usr/local/bin/python2.7
obj-amd64-unknown-freebsd8.2/_profile/pgo/profileserver.py
args: ['/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/dist/firefox/firefox-bin',
'-no-remote', '-profile',
'/usr/ports/www/firefox/work/mozilla-2.0/obj-amd64-unknown-freebsd8.2/_profile/pgo/pgoprofile/',
'http://127.0.0.1:8888/index.html']
INFO | automation.py | Application pid: 45955
Launching a SCIM daemon with Socket FrontEnd...
Loading simple Config module ...
Creating backend ...
Loading socket FrontEnd module ...
Starting SCIM as daemon ...
GTK Panel of SCIM 1.4.7

Launching a SCIM daemon with Socket FrontEnd...
Loading simple Config module ...
Creating backend ...
Loading socket FrontEnd module ...
Starting SCIM as daemon ...
GTK Panel of SCIM 1.4.7

localhost.my.domain - - [26/May/2011 23:33:12] "GET /index.html HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:12] "GET /favicon.ico HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:14] code 404, message File not found
localhost.my.domain - - [26/May/2011 23:33:14] "GET
/safebrowsing-dummy/newkey HTTP/1.1" 404 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/sample.html HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/screen.css HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/print.css HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/fancytype-screen.css HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/test.jpg HTTP/1.1" 200 -
localhost.my.domain - - [26/May/2011 23:33:15] "GET
/blueprint/valid.png HTTP/1.1" 200 -
.............

I first time look Firefox generated a new window and do some test.
http:/127.0.0.1:8888 connect successful.

AND install successful !!!
Is it hard issue :P

Now, need a best solution. (exclude sudo.)
Thanks you very much.
>
>>> As for the :8888 , I think that's just a build-internal thing: To
>>> profile, it starts firefox and displays a bunch of web pages, and I
>>> think it runs a small python web-server on localhost:8888 to serve
>>> them.
>>
>> Is your means about:startpage? I think...
>> If true, It needn't any server support I tihk. :P
>> Because I couldn't saw any daemon listen port 8888 by "netstat" in
>> firefox running Ubuntu 11.04 ...
>>
>> Thanks you a lot.
>> Neko
>>
>
> As I remember it, the profiling run goes through a selection of
> different pages, so they can exercise a bit more of their rendering
> and javascript engine - and fetching over TCP instead of from a file
> means they also get to use those parts of the code. So it's just to
> capture some more representative usage data.
>
>
> --
> Daniel Nebdal
>


More information about the freebsd-gecko mailing list