Mozilla †
- 結論
いいところまでは行くんだけど、動きませんでした。
しかし、mozilla依存でビルドできなったパッケージがビルド可能になったのが吉。
「apt-get install mozilla」で動かない画面が拝めます。汗
情報求む。
- 詳細
- インタフェース周りは動作する。
- URL入力は可能だが、mozillaエンジンにそれらが伝わって無いみたい。
- gccのバージョン(3.4.4 or 4.0.2)、最適化オプション(-O or -O2)で挙動が変化する。
- gcc-3.4(3.4.4) -O 以外の組み合わせはsegmentation faultします。
- ソースおよびpatch
http://eggplant.ddo.jp/www/download/debian26/source/ に置いています。
diff -urpN mozilla.orig/nsprpub/pr/include/md/_linux.cfg mozilla/nsprpub/pr/include/md/_linux.cfg
--- mozilla.orig/nsprpub/pr/include/md/_linux.cfg 2005-11-22 19:20:39.000000000 +0900
+++ mozilla/nsprpub/pr/include/md/_linux.cfg 2005-11-22 19:24:11.570000000 +0900
@@ -415,6 +415,51 @@
#define PR_BYTES_PER_WORD_LOG2 2
#define PR_BYTES_PER_DWORD_LOG2 3
+#elif defined(__sh__)
+
+#define IS_LITTLE_ENDIAN 1
+#undef IS_BIG_ENDIAN
+
+#define PR_BYTES_PER_BYTE 1
+#define PR_BYTES_PER_SHORT 2
+#define PR_BYTES_PER_INT 4
+#define PR_BYTES_PER_INT64 8
+#define PR_BYTES_PER_LONG 4
+#define PR_BYTES_PER_FLOAT 4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD 4
+#define PR_BYTES_PER_DWORD 8
+
+#define PR_BITS_PER_BYTE 8
+#define PR_BITS_PER_SHORT 16
+#define PR_BITS_PER_INT 32
+#define PR_BITS_PER_INT64 64
+#define PR_BITS_PER_LONG 32
+#define PR_BITS_PER_FLOAT 32
+#define PR_BITS_PER_DOUBLE 64
+#define PR_BITS_PER_WORD 32
+
+#define PR_BITS_PER_BYTE_LOG2 3
+#define PR_BITS_PER_SHORT_LOG2 4
+#define PR_BITS_PER_INT_LOG2 5
+#define PR_BITS_PER_INT64_LOG2 6
+#define PR_BITS_PER_LONG_LOG2 5
+#define PR_BITS_PER_FLOAT_LOG2 5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2 5
+
+#define PR_ALIGN_OF_SHORT 2
+#define PR_ALIGN_OF_INT 4
+#define PR_ALIGN_OF_LONG 4
+#define PR_ALIGN_OF_INT64 8
+#define PR_ALIGN_OF_FLOAT 4
+#define PR_ALIGN_OF_DOUBLE 8
+#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD 4
+
+#define PR_BYTES_PER_WORD_LOG2 2
+#define PR_BYTES_PER_DWORD_LOG2 3
+
#elif defined(__arm__)
#define IS_LITTLE_ENDIAN 1
diff -urpN mozilla.orig/nsprpub/pr/include/md/_linux.h mozilla/nsprpub/pr/include/md/_linux.h
--- mozilla.orig/nsprpub/pr/include/md/_linux.h 2005-05-05 03:05:19.000000000 +0900
+++ mozilla/nsprpub/pr/include/md/_linux.h 2005-11-22 19:26:26.500000000 +0900
@@ -59,6 +59,8 @@
#define _PR_SI_ARCHITECTURE "x86"
#elif defined(__mips__)
#define _PR_SI_ARCHITECTURE "mips"
+#elif defined(__sh__)
+#define _PR_SI_ARCHITECTURE "sh"
#elif defined(__arm__)
#define _PR_SI_ARCHITECTURE "arm"
#elif defined(__hppa__)
@@ -285,6 +287,18 @@ extern void _MD_CleanupBeforeExit(void);
#error "Linux/MIPS pre-glibc2 not supported yet"
#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+#elif defined(__sh__)
+/* Linux/SH */
+#if defined(__GLIBC__) && __GLIBC__ >= 2
+#define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[0].__regs[7]
+#define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[0].__regs[6] = (val))
+#define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t))
+#define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[0].__regs[6])
+#define _MD_SP_TYPE int
+#else
+#error "Linux/SH pre-glibc2 not supported yet"
+#endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */
+
#elif defined(__arm__)
/* ARM/Linux */
#if defined(__GLIBC__) && __GLIBC__ >= 2
diff -urpN mozilla.orig/security/coreconf/Linux.mk mozilla/security/coreconf/Linux.mk
--- mozilla.orig/security/coreconf/Linux.mk 2005-11-22 19:20:39.000000000 +0900
+++ mozilla/security/coreconf/Linux.mk 2005-11-22 19:27:52.360000000 +0900
@@ -106,6 +106,10 @@ ifeq ($(OS_TEST),parisc)
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
CPU_ARCH = hppa
else
+ifeq ($(OS_TEST),sh4)
+ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+ CPU_ARCH = sh
+else
OS_REL_CFLAGS = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
CPU_ARCH = x86
endif
@@ -122,6 +126,7 @@ endif
endif
endif
endif
+endif
LIBC_TAG = _glibc
- ビルド
- debian/rules
gcc-3.4を指定し、かつ単なる-Oオプションでビルドするように修正
(gcc-4.0ではビルド可能だが、ここまで動作しなかった。)
# any arch
OPTFLAGS=-O -DDEBIAN
CC=gcc-3.4
CXX=g++-3.4
EXTRA_OPTIONS=
- freetype-2.1.10以降を使うこと。
依存関係で意図せずとも、本来そうなるべきであるが…
landisk:~# dpkg -l | grep freetype
ii libfreetype6 2.1.10-1 FreeType 2 font engine, shared library files
ii libfreetype6-dev 2.1.10-1 FreeType 2 font engine, development files
Firefox †
- 結論
ビルドは可能だが、segmentation faultします。
mozillaと全く同じパッチが適用可能。
情報求む †