忍者ブログ

なんだか

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

[PR]

×

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

cygwinでgcc-4.7.3(prerelease)を作ってみるテスト、libjavaはどうなった

$ cd i686-pc-cygwin/libjava
$ make check
=== libjava Summary ===

# of expected passes 2485
# of unexpected failures 43
# of untested testcases 46

試行錯誤の結果、こうなりました。
libgcj-13.dllのロードエラーになってるところを減らすことが出来ればいいのですが
対策の仕方がわかりませんのです。

cygwinのgcj(libjava)は、ちゃんと動いている?
という結果になりました。

拍手[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回]

cygwinでgcc-4.7.3(prerelease)を作ってみるテスト

gmp->mpfr->mpc->ppl->cloog->gcc-4.7.3の順にやりました。

各dllはバッティングしてないので、現最新版を使います。

cygwinだとmakeの-jオプションが問題なく動きます。

1.gmp-5.1.0の作成

$ cd ~
$ mkdir gmp
$ cd gmp
$ wget ftp://ftp.gmplib.org/pub/gmp-5.1.0/gmp-5.1.0.tar.bz2
$ tar xjf gmp-5.1.0.tar.bz2
$ mkdir 47
$ cd 47
$ ../gmp-5.1.0/configure --prefix=/usr --enable-shared --disable-static --enable-cxx --build=i686-pc-cygwin
$ make
$ make install-strip

2.mpfr-3.1.1の作成

$ cd ~ 
$ mkdir mpfr
$ cd mpfr
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.1.1.tar.xz
$ tar xJf mpfr-3.1.1.tar.xz
$ mkdir 47
$ cd 47
$ ../mpfr-3.1.1/configure --prefix=/usr --enable-shared --disable-static
$ make
$ make install-strip

3.mpc-1.0.1の作成

$ cd ~ 
$ mkdir mpc
$ cd mpc
$ wget http://www.multiprecision.org/mpc/download/mpc-1.0.1.tar.gz
$ tar xf mpc-1.0.1.tar.gz
$ mkdir 47
$ cd 47
$ ../mpc-1.0.1/configure --prefix=/usr --enable-shared --disable-static
$ make
$ make install-strip

4.ppl-1.1pre7の作成

$ cd ~ 
$ mkdir ppl
$ cd ppl
gmp-5.1.0とppl-1.0は相性が悪いみたいでppl-1.1を使って欲しいらしい。
http://bugseng.com/external/ppl/download/ftp/snapshotsから持ってきます。
$ tar xJf ppl-1.1pre7.tar.xz
$ mkdir 47
$ cd 47
$ ../ppl-1.1pre7/configure --enable-shared --disable-static --enable-interfaces="c++ c"
$ make
$ make install-strip


5.cloog-0.18.0の作成


$ cd ~ 
$ mkdir cloog
$ cd cloog
$ wget http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-0.18.0.tar.gz
$ mv count.php3?url=.%2Fcloog-0.18.0.tar.gz cloog-0.18.0.tar.gz
$ tar xf cloog-0.18.0.tar.gz
$ sed -i 's/GIT_HEAD_ID="UNKNOWN"/GIT_HEAD_ID="isl-0.11.1"/' cloog-0.18.0/isl/configure
$ mkdir 47
$ cd 47
$ ../cloog-0.18.0/configure --prefix=/usr --enable-shared --disable-static
$ sed -i 's/allow_undefined_flag="unsupported"/allow_undefined_flag="supported"/' libtool
$ sed -i 's/allow_undefined_flag="unsupported"/allow_undefined_flag="supported"/' isl/libtool
$ make
$ make install-strip

6.gcc-4.7.3の作成
$ cd ~/
$ mkdir gcc
$ 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
$ sed -i "s/-lpwl//" gcc-4.7-20130202/configure
$ mkdir 47
$ cd 47
javaは保留
$ ../gcc-4.7-20130202/configure --prefix=/usr/local/4.7 --enable-version-specific-runtime-libs --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,objc,obj-c++ --enable-libjava --program-suffix=-4 --enable-threads=posix --with-arch=i686 --with-tune=generic --with-ecj-jar=/usr/share/java/ecj.jar --disable-ppl-version-check --disable-cloog-version-check --enable-cloog-backend=isl
$ make BOOT_CFLAGS="-g -O3 -fomit-frame-pointer"
$ make install
$ export PATH=/usr/local/4.7/bin:$PATH
$ gcc-4 -v
組み込み spec を使用しています。
COLLECT_GCC=/usr/local/4.7/bin/gcc-4
COLLECT_LTO_WRAPPER=/usr/local/4.7/libexec/gcc/i686-pc-cygwin/4.7.3/lto-wrapper.exe
ターゲット: i686-pc-cygwin
configure 設定: ../gcc-4.7-20130202/configure --prefix=/usr/local/4.7 --enable-version-specific-runtime-libs --enable-static --enable-shared --enable-shared-libgcc --disable-__cxa_atexit --with-dwarf2 --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,objc,obj-c++ --enable-libjava --program-suffix=-4 --enable-threads=posix --with-arch=i686 --with-tune=generic --with-ecj-jar=/usr/share/java/ecj.jar --disable-ppl-version-check --disable-cloog-version-check --enable-cloog-backend=isl
スレッドモデル: posix
gcc バージョン 4.7.3 20130202 (prerelease) (GCC)


gmp,mpfr,mpc,ppl,cloogをこれで再コンパイルしてみるかな

cygwin64はfedoraでクロスビルド環境を構築しながらやるらしい。(久しぶりに、cygwinのml覗いてみた)

libjavaは出来たけど
$ make check-target-libjava
Native configuration is i686-pc-cygwin

                === libjava tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for targe
t.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /gcc/gcc-4.7-20130202/libjava/testsuite/config/default.exp as t
ool-and-target-specific interface file.
Running /gcc/gcc-4.7-20130202/libjava/testsuite/libjava.cni/cni.exp ...
FAIL: linking PR9577
FAIL: linking longfield
FAIL: linking shortfield
Running /gcc/gcc-4.7-20130202/libjava/testsuite/libjava.jar/jar.exp ...
FAIL: linking TestClosureGC
FAIL: linking simple

こんな感じ


拍手[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回]

カレンダー

12 2025/01 02
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 31

フリーエリア

最新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

忍者アナライズ

コガネモチ

忍者カウンター

カレンダー

12 2025/01 02
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 31