Mamoru Tasaka
mtasa****@ioa*****
2008年 2月 27日 (水) 01:11:46 JST
田坂です 先ず始めに: 現在のFedoraのrawhideの環境は gcc 4.3.0 20080222 (Red Hat 4.3.0-0.11) xulrunner 1.9 nightly 20080223 nspr 4.7.0.99.1 hunspell 1.2.1 になっています。 Hiroyuki Ikezoe wrote, at 02/25/2008 01:04 PM +9:00: > g新部ひろゆきです。 > > 2008-02-23 (土) の 16:27 +0900 に Mamoru Tasaka さんは書きました: >> Mamoru Tasaka wrote, at 02/22/2008 03:49 PM +9:00: >>> Hiroyuki Ikezoe wrote, at 02/22/2008 02:23 PM +9:00: >>>> ごめんなさい。間違いました。 >>>> nsEmbedString.hが問題なのは64ビットの方でした。 >>>> MOZILLA_INTERNAL_APIをdefineしてるのは >>>> nsICanvasRenderingContextInternal.hのとこだけで、そこは失敗しても問題な >>>> いです。 >>> こっちは(xulrunner 20080217 版ですが) >>> /usr/include/xulrunner-sdk-1.9pre/unstable/nsStringAPI.h : >>> ---------------------------------------------------------------------------------- >>> 1186 inline const nsDependentSubstring >>> 1187 Substring( const PRUnichar* start, const PRUnichar* end ) >>> 1188 { >>> 1189 return nsDependentSubstring(start, end - start); >>> 1190 } >>> 1191 >>> 1192 inline const nsDependentSubstring >>> 1193 Substring( const PRUnichar* start, PRUint32 length ) >>> 1194 { >>> 1195 return nsDependentSubstring(start, length); >>> 1196 } >>> ---------------------------------------------------------------------------------- >>> となってるようです。 >>> >> うーん、-Wsign-compare -Wsign-conversion -Wconversion -Werrorと書いているのが >> 影響して、 PRUint32 <-> int とか PRInt32 <-> floatとかの変換でerrorが大量に >> 発生するなあ... > > エラーを貼ってもらえますか? > PRUint32 <-> int はともかく、PRInt32 <-> float は明らかにおかしいです。 まず、普通にコンパイルした結果ですが、64bitの結果を貼ると http://koji.fedoraproject.org/koji/getfile?taskID=470975&name=build.log です。 config.logを見ると、gecko.m4に関するcheckの所で、 -Wconversion -Wsign-conversion -Wsign-compareで更に-Werrorとなっている為 ----------------------------------------------------------------- /usr/include/xulrunner-sdk-1.9pre/unstable/nsPIDOMWindow.h: In member function 'void nsPIDOMWindow::SetModalContentWindow(PRBool)': /usr/include/xulrunner-sdk-1.9pre/unstable/nsPIDOMWindow.h:372: error: conversion to 'PRPackedBool' from 'PRBool' may alter its value /usr/include/xulrunner-sdk-1.9pre/unstable/nsCoord.h: In function 'nscoord NSCoordMultiply(nscoord, float)': /usr/include/xulrunner-sdk-1.9pre/unstable/nsCoord.h:96: error: conversion to 'float' from 'nscoord' may alter its value ----------------------------------------------------------------- みたいなerrorが発生していて、で結局引数の判別に失敗しているようです。 で、色々小細工をして *取り敢えず-Werrorを外して ----------------------------------------------------------------- sed -i.bool -e \ 's|#define \(MOZ_NSIHELPERAPPLAUNCHERDIALOG_NSPRBOOL_\) 1|#undef \1|' \ config.h ----------------------------------------------------------------- として取り敢えずごまかす *libxul-embedding-unstable.pcに"Requires: nspr"がないので CFLAGS, LDFLAGSに適当にnsprに関するものを加える *libxul-embedding-unstable.pcに-lxul -lxpcomがないのでそれも加える としてコンパイルを取り敢えず通したのが http://koji.fedoraproject.org/koji/getfile?taskID=471019&name=build.log ですが、これでも ----------------------------------------------------------------- [tasaka1 @ localhost .libs]$ ldd -r gecko.so >/dev/null undefined symbol: _Z19NS_NewStorageStreamjjPP16nsIStorageStream (./gecko.so) undefined symbol: _ZNK19nsACString_internal12BeginReadingEv (./gecko.so) ----------------------------------------------------------------- となります。これに関しては http://developer.mozilla.org/en/docs/Migrating_from_Internal_Linkage_to_Frozen_Linkage が関係していると思います。