忍者ブログ

なんだか

知らないほうが幸せかもしれない

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

mingw32なgcc-4.7のprereleaseでlibjavaを作ってみるテスト 結局どうなの

gccのmingw32なlibjavaのテストをwineでやるという誰もやらない?ようなことやってみた続きです。
dllで、まずいのなら、staticでやってみたら、どうなるのかという。

トップのMakefileの
EXTRA_CONFIGARGS_LIBJAVA = --disable-static
この部分を変更して、staticなライブラリを作るようします。

$ cd i686-w64-mingw32/libjava
$ make check

=== libjava Summary ===

# of expected passes 2284
# of unexpected failures 80
# of untested testcases 4

staticだと、失敗してる数はそれほど多くないようです。

wineで動かすと、何がおかしいのか、logを出力してくれます。

err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x617dc7
FAIL: ExtraClassLoader execution - source compiled test

x86_64-w64-mingw32でもlibjavaのcheckとかやってみました
こちらはdll化したものでもwine上で動くようですが
wineがエラーlogを出しまくりなので、途中でやめました。

mingwなlibjavaがdllで動くようになるまではまだ時間が掛かりそうな感じです。

拍手[0回]

PR

msysでmingw32なgcc-4.7のprereleaseでlibjavaを作ってみるテスト 続き

fedora18でクロスビルドしてやってみました、libjavaのテストを

$ cd i686-w64-mingw32/libjava
$ cp .libs/*.dll.a .
$ mkdir testsuite
$ cp .libs/*.dll testsuite/
$ cp ../libgcc/shlib/libgcc_s_sjlj-1.dll
$ make check
                === libjava Summary ===

# of expected passes            363
# of unexpected failures        360
# of unresolved testcases       2
# of untested testcases         366
途中で止めました。

wineくんが何が悪いのか、教えてくれました。
testsuite/libjava.log より

Setting LD_LIBRARY_PATH to .:.
spawn [open ...]
err:module:attach_process_dlls "libgcj-noncore-13.dll" failed to initialize, aborting


だそうです。

wineのlog
0025:exception in PE entry point (proc=0x61dc1440,module=0x61dc0000,reason=PROCESS_DETACH,res=0x1)
0025:Ret  PE DLL (proc=0x61dc1440,module=0x61dc0000 L"libgcj-noncore-13.dll",reason=PROCESS_DETACH,res=0x1) retval=0
err:module:attach_process_dlls "libgcj-noncore-13.dll" failed to initialize, aborting

拍手[0回]

msysでmingw32なgcc-4.7のprereleaseでlibjavaを作ってみるテスト

libjava/configueの
    extra_ldflags_libjava=-lws2_32

    extra_ldflags_libjava="-lws2_32 -liconv"
に変更、
libjava/configueの
@BUILD_SUBLIBS_TRUE@ $(DLLTOOL) -d $^ -l $@ --dllname cyggcj-noncore-$(DLL_VERSION).dll

@BUILD_SUBLIBS_TRUE@ $(DLLTOOL) -d $^ -l $@ --dllname libgcj-noncore-$(DLL_VERSION).dll
に変更しました。

$ ../gcc-4.7-20130202/configure --enable-languages=c,c++,java --disable-sjlj-exceptions --with-dwarf2 --enable-shared --disable-win32-registry --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw --disable-bootstrap --enable-libgcj --with-arch=i686 CFLAGS='-g -O2 -fomit-frame-pointer' CXXFLAGS='-g -O2 -fomit-frame-pointer' CFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer' CXXFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer'
$ make

gcj-dbtoolの実行j時にwindowsに文句を言われます。
gcj-dbtoolの実行に失敗してもビルドは成功したような振る舞いをします。

一応、libjava関連のdllはlibffi含めて、出来てます。
mingw32/libffi/.libs/libffi-4.dll
mingw32/libffi/.libs/libffi.dll.a
mingw32/libjava/.libs/libgcj-13.dll
mingw32/libjava/.libs/libgcj-noncore-13.dll
mingw32/libjava/.libs/libgcj-noncore.dll.a
mingw32/libjava/.libs/libgcj-tools-13.dll
mingw32/libjava/.libs/libgcj-tools.dll.a
mingw32/libjava/.libs/libgcj.dll.a
mingw32/libjava/.libs/libgij-13.dll
mingw32/libjava/.libs/libgij.dll.a
mingw32/libjava/.libs/libjvm.dll
mingw32/libjava/.libs/libjvm.dll.a
mingw32/libjava/classpath/native/jni/java-math/.libs/libjavamath.dll
mingw32/libjava/classpath/native/jni/java-math/.libs/libjavamath.dll.a
mingw32/libjava/libgcj-noncore-dummy.dll.a

拍手[0回]

msysでmingw32なgcc-4.7のprereleaseをbootstrapで作ってみるテストその2

昨日の続き、本家mingw32のgccはノーパッチ?だったので、なるべくpatchなしでやってます。

$ mkdir gcc47
$ cd gcc47
$ wget http://www.dnsbalance.ring.gr.jp/archives/lang/egcs/snapshots/4.7-20130202/gcc-4.7-201300202.tar.bz2
$ tar xjf gcc-4.7-20130202.tar.bz2
$ cd gcc-4.7-20130202/gcc
$ patch < gcc-diagnostic-mingw.patch
$ cd ada
$ patch < gcc-ada-4-cxx.patch
$ cd ../..
$ patch < Makefile-LN_S.patch
$ cd ..
$ mkdir 20130202
$ cd 20130202
$ ../gcc-4.7-20130202/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --disable-win32-registry --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw CFLAGS='-g -O2 -fomit-frame-pointer' CXXFLAGS='-g -O2 -fomit-frame-pointer' CFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer' CXXFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer'
$ make BOOT_CFLAGS="-g -O3 -fomit-frame-pointer" LN_S="ln -s"
$ make install
$ gcc -v
組み込み spec を使用しています。
COLLECT_GCC=C:\MinGW\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.3/lto-wrapper.exe
ターゲット: mingw32
configure 設定: ../gcc-4.7-20130202/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --disable-win32-registry --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw CFLAGS='-g -O2 -fomit-frame-pointer' CXXFLAGS='-g -O2 -fomit-frame-pointer' 'CFLAGS_FOR_TARGET=-g -O2 -fomit-frame-pointer' 'CXXFLAGS_FOR_TARGET=-g -O2 -fomit-frame-pointer'
スレッドモデル: win32
gcc バージョン 4.7.3 20130202 (prerelease) (GCC)

次は、gcjかな

拍手[0回]

msysでmingw32なgcc-4.7のprereleaseをbootstrapで作ってみるテストその1

本家mingw32のgccはノーパッチ?だったので、なるべくpatchなしでやってます。

$ mkdir gcc47
$ cd gcc47
$ wget http://www.dnsbalance.ring.gr.jp/archives/lang/egcs/snapshots/4.7-20130126/gcc-4.7-20130126.tar.bz2
$ tar xjf gcc-4.7-20130126.tar.bz2
$ cd gcc-4.7-20130126/gcc
$ patch < gcc-diagnostic-mingw.patch
$ cd ../..
$ mkdir 20130127
$ cd 20130127
$ ../gcc-4.7-20130126/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --disable-win32-registry --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw CFLAGS='-g -O2 -fomit-frame-pointer' CXXFLAGS='-g -O2 -fomit-frame-pointer' CFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer' CXXFLAGS_FOR_TARGET='-g -O2 -fomit-frame-pointer'
$ make

gnatのビルドでコンパイルエラーになりますが、ほとんどcastすればいいだけです。
ハマリどころは、gcc/ada/tracebak.cのこの行ぐらいです。
#define IS_BAD_PTR(ptr) (IsBadCodePtr((FARPROC)ptr))

adaがええだと思えない人には関係ないことです。

libadaでコケたら、これです。
$ sed -i 's/$(LN_S) $(ADA_RTS_DIR)/$(LN_S)r $(ADA_RTS_DIR)/' mingw32/libada/Makefile
$ make LN_S="ln -s"

どうも、失敗したようなので、続く?

拍手[0回]

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

フリーエリア

最新CM

最新記事

(07/27)
(03/27)
(03/26)
(03/23)
(03/22)
(03/19)
(03/18)
(03/18)
(03/15)
(03/14)
(03/13)
(03/12)
(03/11)
(03/11)
(03/08)
(03/08)
(03/06)
(03/05)
(03/02)
(03/01)
(02/28)
(02/27)
(02/24)
(02/23)
(02/22)

プロフィール

HN:
kenrou
性別:
非公開

バーコード

ブログ内検索

最古記事

(12/15)
(12/16)
(12/17)
(12/18)
(12/19)
(12/20)
(12/21)
(12/22)
(12/23)
(12/24)
(12/25)
(12/26)
(12/27)
(12/28)
(12/29)
(12/30)
(12/31)
(01/01)
(01/02)
(01/21)
(01/22)
(01/23)
(01/24)
(01/24)
(01/28)

P R

忍者アナライズ

コガネモチ

忍者カウンター

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30