Bug 186541 - installing www/libxul fails
Summary: installing www/libxul fails
Status: Closed Unable to Reproduce
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-gecko (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-07 17:20 UTC by TsurutaniNaoki
Modified: 2014-06-16 08:30 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description TsurutaniNaoki 2014-02-07 17:20:01 UTC
	installing www/libxul fails on amd64.

Fix: 

I have no idea.
How-To-Repeat: 	% cd /usr/ports/www/libxul
	% make
	 ...
	% make install
	--->  Installing the new version via the port
	===>  Installing for libxul-24.2.0
	===>   libxul-24.2.0 depends on executable: zip - found
	===>   libxul-24.2.0 depends on file: /usr/local/lib/alsa-lib/libasound_module_pcm_oss.so - found
	===>   libxul-24.2.0 depends on executable: gcc46 - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/sm.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/xt.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/xi.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/xext.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/x11.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/xinerama.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/ice.pc - found
	===>   libxul-24.2.0 depends on file: /usr/local/libdata/pkgconfig/xproto.pc - found
	===>   libxul-24.2.0 depends on executable: update-desktop-database - found
	===>   libxul-24.2.0 depends on shared library: libv4l2.so - found
	===>   libxul-24.2.0 depends on shared library: libcairo.so - found
	===>   libxul-24.2.0 depends on shared library: libiconv.so.3 - found
	===>   libxul-24.2.0 depends on shared library: libGL.so - found
	===>   libxul-24.2.0 depends on shared library: libatk-1.0.so - found
	===>   libxul-24.2.0 depends on shared library: libglib-2.0.so - found
	===>   libxul-24.2.0 depends on shared library: libpcre.so - found
	===>   libxul-24.2.0 depends on shared library: libgtk-x11-2.0.so - found
	===>   libxul-24.2.0 depends on shared library: libIDL-2.so - found
	===>   libxul-24.2.0 depends on shared library: libpango-1.0.so - found
	===>   libxul-24.2.0 depends on shared library: event-2.0 - found
	===>   libxul-24.2.0 depends on shared library: ffi - found
	===>   libxul-24.2.0 depends on shared library: hunspell-1.3 - found
	===>   libxul-24.2.0 depends on shared library: icui18n - found
	===>   libxul-24.2.0 depends on shared library: jpeg - found
	===>   libxul-24.2.0 depends on shared library: nspr4 - found
	===>   libxul-24.2.0 depends on shared library: nss3 - found
	===>   libxul-24.2.0 depends on shared library: png15 - found
	===>   libxul-24.2.0 depends on shared library: sqlite3 - found
	===>   libxul-24.2.0 depends on shared library: vpx - found
	===>   libxul-24.2.0 depends on shared library: dbus-glib-1.2 - found
	===>   libxul-24.2.0 depends on shared library: notify.4 - found
	===>   libxul-24.2.0 depends on shared library: startup-notification-1.0 - found
	===>   libxul-24.2.0 depends on shared library: asound.2 - found
	hg: not found
	gmake[1]: Entering directory `/usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/xulrunner/installer'
	Makefile:74: FULL_NSPR_CFLAGS=
	hg: not found
	OMNIJAR_NAME=omni.ja \
	/usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/_virtualenv/bin/python ../../../toolkit/mozapps/installer/packager.py -DMOZ_GLUE_IN_PROGRAM -DNO_NSPR_10_SUPPORT -DDLL_PREFIX=lib -DDLL_SUFFIX=.so -DBIN_SUFFIX= -DGRE_MILESTONE=24.2.0 -DGRE_BUILDID=20131227134543 -DMOZ_DEB_TIMESTAMP="Fri, 27  Dec 2013 14:24:30 +0900" -DMOZ_APP_NAME=xulrunner -Dinstalldir=/usr/ports/www/libxul/work/fake/lib/libxul  \
	        --format omni \
	         \
	        --ignore-errors \
	         \
	         \
	        --optimizejars \
	         \
	         ../../dist ../../dist/xulrunner \
	
	Warning: Skipping nsinstall
	Warning: Skipping run-mozilla.sh
	Warning: Skipping js
	Warning: Skipping xpcshell
	Executing /usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/dist/bin/xpcshell -g /usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/dist/bin/ -a /usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/dist/bin/ -f ../../../toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache("resource://gre/");
	Traceback (most recent call last):
	  File "../../../toolkit/mozapps/installer/packager.py", line 375, in <module>
	    main()
	  File "../../../toolkit/mozapps/installer/packager.py", line 367, in main
	    args.source, gre_path, base)
	  File "../../../toolkit/mozapps/installer/packager.py", line 148, in precompile_cache
	    errors.fatal('Error while running startup cache precompilation')
	  File "/usr/ports/www/libxul/work/mozilla-esr24/python/mozbuild/mozpack/errors.py", line 101, in fatal
	    self._handle(self.FATAL, msg)
	  File "/usr/ports/www/libxul/work/mozilla-esr24/python/mozbuild/mozpack/errors.py", line 96, in _handle
	    raise ErrorMessage(msg)
	mozpack.errors.ErrorMessage: Error: Error while running startup cache precompilation
	gmake[1]: *** [stage-package] Error 1
	gmake[1]: Leaving directory `/usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/xulrunner/installer'
	gmake: *** [install] Error 2
	*** Error code 2
	
	Stop in /usr/ports/www/libxul.
	*** Error code 1
	
	Stop in /usr/ports/www/libxul.
	*** Error code 1
	
	Stop in /usr/ports/www/libxul.

	%

	firefox, thunderbird, and gecko-mediaplayer causes the similar error
	only on amd64, since about 4 or 5 months ago.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-02-07 17:20:09 UTC
Responsible Changed
From-To: freebsd-ports-bugs->gecko

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Don Lewis freebsd_committer freebsd_triage 2014-02-25 07:06:17 UTC
I see the same on 11.0-CURRENT i386.
Comment 3 Don Lewis freebsd_committer freebsd_triage 2014-02-26 10:46:09 UTC
Here's what I found:

Executing /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/xpcshell -g /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -a /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -f ../../../toolkit/mozapps/installer/precompile_cache.js -e precompile_startupcache("resource://gre/");
Traceback (most recent call last):
  File "../../../toolkit/mozapps/installer/packager.py", line 375, in <module>
    main()
  File "../../../toolkit/mozapps/installer/packager.py", line 367, in main
    args.source, gre_path, base)
  File "../../../toolkit/mozapps/installer/packager.py", line 148, in precompile_cache
    errors.fatal('Error while running startup cache precompilation')
  File "/usr/ports/www/firefox/work/mozilla-release/python/mozbuild/mozpack/errors.py", line 101, in fatal
    self._handle(self.FATAL, msg)
  File "/usr/ports/www/firefox/work/mozilla-release/python/mozbuild/mozpack/errors.py", line 96, in _handle
    raise ErrorMessage(msg)
mozpack.errors.ErrorMessage: Error: Error while running startup cache precompilation
gmake[4]: *** [stage-package] Error 1


I dug through the python code, and it looks like the problem is that the
command that it says that it is "Executing" is failing.  If I try
running this command manually, this is what I see:

# /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/xpcshell -g /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -a /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -f ../../../toolkit/mozapps/installer/precompile_cache.js -e 'precompile_startupcache("resource://gre/");'
Shared object "libicui18n.so.50" not found, required by "libxul.so"

The problem is that xpcshell is loading a stale copy of libxul.so in
/usr/local/lib/libxul that is looking for an old copy of libicui18n.so,
which has undergone a library version bump since libxul was installed.

... or maybe not.  Looking back at the python script:

        if launcher.launch(['xpcshell', '-g', gre_path, '-a', app_path,
                            '-f', os.path.join(os.path.dirname(__file__),
                            'precompile_cache.js'),
                            '-e', 'precompile_startupcache("resource://%s/");'
                                  % resource],
                           extra_linker_path=gre_path,
                           extra_env={'MOZ_STARTUP_CACHE': cache}):
            errors.fatal('Error while running startup cache precompilation')
            return

it looks like $LD_LIBRARY_PATH is getting set to
/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/
and $MOZ_STARTUP_CACHE is getting set to a temporary zip file under
/tmp.  If I try to duplicate that:

env MOZ_STARTUP_CACHE=/tmp/cache.zip LD_LIBRARY_PATH=/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/xpcshell -g /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -a /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin/ -f ../../../toolkit/mozapps/installer/precompile_cache.js -e 'precompile_startupcache("resource://gre/");'
Illegal instruction (core dumped)

Running gdb on the core file gets me this backtrace:

(gdb) bt
#0  0x8833308d in XRE_GetBinaryPath ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
#1  0x88332fe5 in XRE_GetBinaryPath ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
#2  0x88e20515 in XRE_XPCShellMain ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
#3  0x0804a5ba in _start ()
#4  0x00000009 in ?? ()
#5  0xbfbfd9bc in ?? ()
#6  0xbfbfd9e4 in ?? ()
#7  0xbfbfd9e4 in ?? ()
#8  0xbfbfd9b8 in ?? ()
#9  0x00000000 in ?? ()
Comment 4 Don Lewis freebsd_committer freebsd_triage 2014-02-26 20:34:40 UTC
I did a bunch of single stepping in gdb and found this:

0x8965ade0 in mozilla::services::_external_GetHistoryService ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
(gdb) 
0x8965ade1 in mozilla::services::_external_GetHistoryService ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
(gdb) 
0x8965ade2 in mozilla::services::_external_GetHistoryService ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
(gdb) 
0x8833308d in XRE_GetBinaryPath ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
(gdb) 

Program received signal SIGILL, Illegal instruction.
0x8833308d in XRE_GetBinaryPath ()
   from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/dist/bin//libxul.so
(gdb) 


If I disassemble the offending bit of code, I see this:

0x88333083 <XRE_GetBinaryPath+195>:	mov    %ecx,(%eax)
0x88333085 <XRE_GetBinaryPath+197>:	mov    (%ecx),%eax
0x88333087 <XRE_GetBinaryPath+199>:	mov    %ecx,(%esp)
0x8833308a <XRE_GetBinaryPath+202>:	call   *0x4(%eax)
0x8833308d <XRE_GetBinaryPath+205>:	ud2a   
0x8833308f <XRE_GetBinaryPath+207>:	nop    
0x88333090 <XRE_GetBinaryPath+208>:	push   %ebp
0x88333091 <XRE_GetBinaryPath+209>:	mov    %esp,%ebp
0x88333093 <XRE_GetBinaryPath+211>:	push   %ebx

A bit of searching with google, turned up this page:
<http://peeterjoot.wordpress.com/2010/05/26/a-fun-and-curious-dig-gcc-generation-of-a-ud2a-instruction-sigill/>

The ud2a instruction is guaranteed invalid, hence the SIGILL. Apparently
gcc will sometimes insert these on purpose if it sees some code that it
doesn't like, but I'm compiling with clang.

I do see a lot of complaints from clang when compiling the offending
file:

# /usr/bin/clang++ -o nsAppRunner.o -c -fvisibility=hidden -DUSE_GLX_TEST -DMOZ_APP_NAME='"firefox"' -DMOZ_APP_VERSION='"27.0.1"' -DOS_POSIX=1 -DOS_FREEBSD=1 -DOS_BSD=1 -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -DSTATIC_EXPORTABLE_JS_API -DNO_NSPR_10_SUPPORT -DOS_TARGET=\"FreeBSD\" -DMOZ_WIDGET_TOOLKIT=\"gtk2\" -DTARGET_XPCOM_ABI=\"x86-gcc3\" -DTARGET_OS_ABI=\"FreeBSD_x86-gcc3\" -DTOOLKIT_EM_VERSION=\"27.0.1\" -DGRE_MILESTONE=27.0.1 -DGRE_BUILDID=20140225233802 -DAPP_VERSION=27.0.1 -DAPP_I D="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" -I../../../widget/xremoteclient -I../../../ipc/chromium/src -I../../../ipc/glue -I/usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders -I../../../testing/gtest/mozilla -I../../../toolkit/xre/../profile -I../../../dom/ipc -I../../../toolkit/crashreporter -I../../../dom/base -I../../../xpcom/build -I../../../config -I../../../toolkit/xre -I. -I../../dist/include -I/usr/local/include/nspr -I/u!
 sr/local/include/nss -I/usr/local/include/nss/nss -I/usr/local/include -I/usr/local/include -fPIC -Qunused-arguments -isystem/usr/local/include -DLIBICONV_PLUG -I/usr/local/include -DMOZILLA_CLIENT -include ../../mozilla-config.h -MD -MP -MF .deps/nsAppRunner.o.pp -Qunused-arguments -isystem/usr/local/include -DLIBICONV_PLUG -I/usr/local/include -Qunused-arguments -Wall -Wpointer-arith -Woverloaded-virtual -Werror=return-type -Wtype-limits -Wempty-body -Wsign-compare -Wno-invalid-offsetof -Wno-c++0x-exten sions -Wno-extended-offsetof -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-mismatched-tags -O2 -pipe -march=athlon64 -DLIBICONV_PLUG -fno-strict-aliasing -DLIBICONV_PLUG -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -std=gnu++0x -pipe -DNDEBUG -DTRIMMED -fno-omit-frame-pointer -I../../../widget/gtk/compat -I/usr/local/include/gtk-unix-print-2.0 -I/usr/local/include/atk-1.0 -I/usr/local/includ!
 e/harfbuzz -I/usr/local/include/gtk-2.0 -I/usr/local/include/pango-1.0
 -I/usr/local/include/gio-unix-2.0/ -I/usr/local/include/gdk-pixbuf-2.0 -pthread -I/usr/local/include/cairo -I/usr/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/libpng15 -D_THREAD_SAFE -I/usr/local/include -I/usr/local/include/dbus-1.0 -I/usr/local/include/dbus-1.0/include -I/usr/local/include/dbus-1.0 -I/usr/local/include/dbus-1.0/include -I/usr/local/include/glib-2.0 -I/usr/local/include -I/usr/local/include/harfbuzz -I/usr/local/include/pango-1. 0 -pthread -I/usr/local/include/cairo -I/usr/local/include/glib-2.0 -I/usr/local/include/pixman-1 -I/usr/local/include/freetype2 -I/usr/local/include/libpng15 -D_THREAD_SAFE -I/usr/local/include -I/usr/local/include -I/usr/local/include/freetype2 /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp 
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:198:21: warning: replacement function
      'operator new' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:204:21: warning: replacement function
      'operator new' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:210:21: warning: replacement function
      'operator new[]' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:216:21: warning: replacement function
      'operator new[]' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:222:21: warning: replacement function
      'operator delete' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:228:21: warning: replacement function
      'operator delete' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:234:21: warning: replacement function
      'operator delete[]' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:21:
In file included from ../../dist/include/mozilla/dom/ContentParent.h:10:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContentParent.h:9:
In file included from /usr/ports/www/firefox/work/mozilla-release/obj-i386-portbld-freebsd11.0/ipc/ipdl/_ipdlheaders/mozilla/dom/PContent.h:12:
In file included from ../../dist/include/ipc/IPCMessageUtils.h:10:
In file included from ../../../ipc/chromium/src/base/process_util.h:11:
In file included from ../../../ipc/chromium/src/base/basictypes.h:252:
In file included from ../../dist/include/nscore.h:19:
../../dist/include/mozilla/mozalloc.h:240:21: warning: replacement function
      'operator delete[]' cannot be declared 'inline' [-Winline-new-delete]
MOZALLOC_EXPORT_NEW MOZALLOC_INLINE
                    ^
../../dist/include/mozilla/mozalloc.h:44:27: note: expanded from macro
      'MOZALLOC_INLINE'
#  define MOZALLOC_INLINE MOZ_ALWAYS_INLINE_EVEN_DEBUG
                          ^
../../dist/include/mozilla/Attributes.h:27:75: note: expanded from macro
      'MOZ_ALWAYS_INLINE_EVEN_DEBUG'
#  define MOZ_ALWAYS_INLINE_EVEN_DEBUG     __attribute__((always_inline)) inline
                                                                          ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:233:
In file included from /usr/local/include/gtk-2.0/gtk/gtk.h:33:
In file included from /usr/local/include/gtk-2.0/gtk/gtkaboutdialog.h:32:
In file included from ../../../widget/gtk/compat/gtk/gtkdialog.h:4:
In file included from /usr/local/include/gtk-2.0/gtk/gtkdialog.h:35:
In file included from ../../../widget/gtk/compat/gtk/gtkwindow.h:9:
In file included from /usr/local/include/gtk-2.0/gtk/gtkwindow.h:36:
In file included from /usr/local/include/gtk-2.0/gtk/gtkbin.h:35:
In file included from /usr/local/include/gtk-2.0/gtk/gtkcontainer.h:35:
In file included from ../../../widget/gtk/compat/gtk/gtkwidget.h:12:
In file included from /usr/local/include/gtk-2.0/gtk/gtkwidget.h:40:
In file included from /usr/local/include/atk-1.0/atk/atk.h:53:
/usr/local/include/atk-1.0/atk/atkversion.h:39:9: warning: 'ATK_MAJOR_VERSION'
      macro redefined
#define ATK_MAJOR_VERSION (2)
        ^
../../mozilla-config.h:10:9: note: previous definition is here
#define ATK_MAJOR_VERSION 2
        ^
In file included from /usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:233:
In file included from /usr/local/include/gtk-2.0/gtk/gtk.h:33:
In file included from /usr/local/include/gtk-2.0/gtk/gtkaboutdialog.h:32:
In file included from ../../../widget/gtk/compat/gtk/gtkdialog.h:4:
In file included from /usr/local/include/gtk-2.0/gtk/gtkdialog.h:35:
In file included from ../../../widget/gtk/compat/gtk/gtkwindow.h:9:
In file included from /usr/local/include/gtk-2.0/gtk/gtkwindow.h:36:
In file included from /usr/local/include/gtk-2.0/gtk/gtkbin.h:35:
In file included from /usr/local/include/gtk-2.0/gtk/gtkcontainer.h:35:
In file included from ../../../widget/gtk/compat/gtk/gtkwidget.h:12:
In file included from /usr/local/include/gtk-2.0/gtk/gtkwidget.h:40:
In file included from /usr/local/include/atk-1.0/atk/atk.h:53:
/usr/local/include/atk-1.0/atk/atkversion.h:50:9: warning: 'ATK_MINOR_VERSION'
      macro redefined
#define ATK_MINOR_VERSION (8)
        ^
../../mozilla-config.h:11:9: note: previous definition is here
#define ATK_MINOR_VERSION 8
        ^
/usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:4017:3: warning: 
      'g_slice_set_config' is deprecated [-Wdeprecated-declarations]
  g_slice_set_config(G_SLICE_CONFIG_ALWAYS_MALLOC, 1);
  ^
/usr/local/include/glib-2.0/glib/gslice.h:87:10: note: 'g_slice_set_config'
      declared here
void     g_slice_set_config        (GSliceConfig ckey, gint64 value);
         ^
/usr/ports/www/firefox/work/mozilla-release/toolkit/xre/nsAppRunner.cpp:4019:3: warning: 
      'g_thread_init' is deprecated [-Wdeprecated-declarations]
  g_thread_init(nullptr);
  ^
/usr/local/include/glib-2.0/glib/deprecated/gthread.h:261:10: note: 
      'g_thread_init' declared here
void     g_thread_init                   (gpointer vtable);
         ^
12 warnings generated.


If I compile the file to assembler, this is what I see for
XRE_GetBinaryPath():

	.section	.text.XRE_GetBinaryPath,"ax",@progbits
	.globl	XRE_GetBinaryPath
	.align	16, 0x90
	.type	XRE_GetBinaryPath,@function
XRE_GetBinaryPath:                      # @XRE_GetBinaryPath
# BB#0:                                 # %entry
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	subl	$8, %esp
	calll	.L50$pb
.L50$pb:
	popl	%ebx
.Ltmp92:
	addl	$_GLOBAL_OFFSET_TABLE_+(.Ltmp92-.L50$pb), %ebx
	movl	8(%ebp), %eax
	movl	12(%ebp), %ecx
	movl	%ecx, 4(%esp)
	movl	%eax, (%esp)
	calll	_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile
.Ltmp93:
	.size	XRE_GetBinaryPath, .Ltmp93-XRE_GetBinaryPath

	.section	.text._ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile,"axG",@progbits,_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile,comdat
	.hidden	_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile
	.weak	_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile
	.align	16, 0x90
	.type	_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile,@function
_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile: # @_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile
# BB#0:                                 # %entry
	pushl	%ebp
	movl	%esp, %ebp
	pushl	%ebx
	pushl	%edi
	pushl	%esi
	andl	$-8, %esp
	subl	$1064, %esp             # imm = 0x428
	calll	.L51$pb
.L51$pb:
	popl	%ebx
.Ltmp94:
	addl	$_GLOBAL_OFFSET_TABLE_+(.Ltmp94-.L51$pb), %ebx
	movl	8(%ebp), %eax
	movl	$0, 1056(%esp)
	leal	32(%esp), %esi
	movl	%esi, 4(%esp)
	movl	%eax, (%esp)
	calll	_ZN7mozilla10BinaryPath3GetEPKcPc
	testl	%eax, %eax
	js	.LBB51_3
# BB#1:                                 # %if.end
	movl	%esi, (%esp)
	calll	strlen@PLT
	movl	%esi, 16(%esp)
	movl	%eax, 20(%esp)
	movl	$1, 24(%esp)
	leal	1056(%esp), %eax
	calll	_ZN13nsCOMPtr_base16begin_assignmentEv@PLT
	movl	%eax, 8(%esp)
	leal	16(%esp), %esi
	movl	%esi, (%esp)
	movl	$1, 4(%esp)
	calll	NS_NewNativeLocalFile@PLT
	movl	%eax, %edi
	movl	%esi, %eax
	calll	_ZN19nsACString_internal8FinalizeEv@PLT
	testl	%edi, %edi
	js	.LBB51_3
# BB#2:                                 # %if.end16
	movl	12(%ebp), %eax
	movl	1056(%esp), %ecx
	movl	%ecx, (%eax)
	movl	(%ecx), %eax
	movl	%ecx, (%esp)
	calll	*4(%eax)
.LBB51_3:                               # %cleanup
	ud2
.Ltmp95:
	.size	_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile, .Ltmp95-_ZN7mozilla10BinaryPath7GetFileEPKcPP7nsIFile


And sure enough, the function ends with a ud2 instruction!  It's not the
only one in this file, either.  So if this a compiler bug, why isn't
everyone seeing it?

I don't see the ud2 instructions when I compile with gcc, so my problem
looks like it is different that the original one in this PR, so I'm
going to open a PR to report my problem as a clang bug.
Comment 5 Jan Beich freebsd_committer freebsd_triage 2014-06-07 02:19:13 UTC
(In reply to turutani from comment #0)
Can you get a backtrace of the crashing xpcshell? Many different crashes manifest at stage-package. For example, bug 187103 (or comment 3) and bug 188026 don't affect amd64.

To get a backtrace try selecting DEBUG port option or build with

 # add to make.conf or Makefile.local
 OPTIONS_UNSET+=OPTIMIZED_CFLAGS
 CFLAGS+= -O0 -g
 STRIP=	# empty

and use in gdb(1)

 $ gdb /usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/dist/bin/xpcshell /usr/ports/www/libxul/work/mozilla-esr24/obj-x86_64-unknown-freebsd8.4/xulrunner/installer/xpcshell.core
 (gdb) bt
Comment 6 TsurutaniNaoki 2014-06-16 00:58:10 UTC
I cannot reproduce this any more since r348650.