阿部です。

firefox-21.0 がリリースされたので、ports からインストールを試しました。
結論は、起動後すぐに SIGSEGV で落ちます。
以前のような -ProfileManager 付きでも起動しませんでした。

On Mon, May 06, 2013 at 12:10:42PM +0900, dai wrote
> 
> コンパイル時の最適化、-O0と-O1では安定しており、-O2でコンパイルすると
> firefoxの起動後ほとんど直ちに落ちるので、最適化後に存在しないメモリを
> 参照するclangのバグが顕在化したのではないかと考えています。

以下の環境で試しました。

% uname -a
FreeBSD freebsd.magickworx.com 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Mon 
Apr 29 18:11:52 UTC 2013     
r...@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  i386


[1] FreeBSD 9.1-RELEASE 標準の clang を使って firefox-21.0 をコンパイル

% /usr/bin/clang -v
FreeBSD clang version 3.1 (branches/release_31 156863) 20120523
Target: i386-unknown-freebsd9.0
Thread model: posix

コンパイル自体は正常に完了するが、起動後すぐに SIGSEGV で落ちる。
そもそも起動しない。


[2] ports/lang/gcc46 を使って firefox-21.0 をコンパイル

% /usr/local/bin/gcc46 -v
Using built-in specs.
COLLECT_GCC=gcc46
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc46/gcc/i386-portbld-freebsd9.1/4.6.3/lto-wrapper
Target: i386-portbld-freebsd9.1
Configured with: ./../gcc-4.6.3/configure --disable-bootstrap --disable-nls 
--libdir=/usr/local/lib/gcc46 --libexecdir=/usr/local/libexec/gcc46 
--program-suffix=46 --with-as=/usr/local/bin/as --with-gmp=/usr/local 
--with-gxx-include-dir=/usr/local/lib/gcc46/include/c++/ 
--with-ld=/usr/local/bin/ld --with-libiconv-prefix=/usr/local 
--with-pkgversion='FreeBSD Ports Collection' --with-system-zlib 
--disable-libgcj --enable-languages=c,c++,objc,fortran --prefix=/usr/local 
--mandir=/usr/local/man --infodir=/usr/local/info/gcc46 
--build=i386-portbld-freebsd9.1
Thread model: posix
gcc version 4.6.3 (FreeBSD Ports Collection) 

ports/www/firefox で make USE_GCC=yes でコンパイル。
コンパイル自体は正常に完了するが、こちらも起動後すぐに SIGSEGV で落ちる。
同じく、起動すらしない。


[3] ports/lang/clang を使って firefox-21.0 をコンパイル

% /usr/local/bin/clang -v
clang version 3.2 (tags/RELEASE_32/final)
Target: i386-portbld-freebsd9.1
Thread model: posix

% cat /etc/make.conf
CC=/usr/local/bin/clang
CXX=/usr/local/bin/clang++
CPP=/usr/local/bin/clang-cpp

コンパイル自体は正常に完了するが、こちらも起動後すぐに SIGSEGV で落ちる。


firefox のコンパイルオプションです。

% cat /var/db/ports/firefox/options
# This file is auto-generated by 'make config'.
# Options for firefox-21.0_1,1
_OPTIONS_READ=firefox-21.0_1,1
_FILE_COMPLETE_OPTIONS_LIST=DBUS DEBUG GCONF GIO GNOMEUI GNOMEVFS2 GSTREAMER LIB
PROXY LOGGING OPTIMIZED_CFLAGS PGO WEBRTC ALSA OSS PULSEAUDIO
OPTIONS_FILE_SET+=DBUS
OPTIONS_FILE_UNSET+=DEBUG
OPTIONS_FILE_UNSET+=GCONF
OPTIONS_FILE_SET+=GIO
OPTIONS_FILE_UNSET+=GNOMEUI
OPTIONS_FILE_UNSET+=GNOMEVFS2
OPTIONS_FILE_UNSET+=GSTREAMER
OPTIONS_FILE_UNSET+=LIBPROXY
OPTIONS_FILE_UNSET+=LOGGING
OPTIONS_FILE_UNSET+=OPTIMIZED_CFLAGS
OPTIONS_FILE_UNSET+=PGO
OPTIONS_FILE_UNSET+=WEBRTC
OPTIONS_FILE_SET+=ALSA
OPTIONS_FILE_UNSET+=OSS
OPTIONS_FILE_UNSET+=PULSEAUDIO

firefox-19.0 では gcc46 でコンパイルした場合は起動できたのですが、
firefox-21.0 では gcc46 でも動作しなくなったのは悲しいです。
もう、コンパイラの違いで解決できるレベルの問題じゃないのかな。
-- 
阿部康一/Kouichi ABE (WALL)
koui...@mysticwall.com
http://www.iPhone.MysticWALL.COM/ (Personal)
http://www.iPhone.MagickWorX.COM/ (Business)

メールによる返信