忍者ブログ

なんだか

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

[PR]

×

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

x86_64なgccの-m32オプションって、まだまだなのかな

fedora18で--with-multilib-list=-m64,-m32,-mx32でmultilibな環境を構築している好き者としては
gccの-m32に疑問をいだいてしまいました。
x32abiの参考url http://sourceware.org/glibc/wiki/x32 https://sites.google.com/site/x32abi/

gmpのmake checkでgcc -m32の時だけ通過しないtestがあるのです。
なぜか、clang -m32だと成功する。

$ make check-gcc//unix/-m32

これやって、fedoraでi686のパッケージをi686の環境でビルドしてる理由がこれでなんとなく理解できました。

gccのtestresultsを覗いてみても、x86_64で-m32でやってる人はいないようなので仕方ないのかも。

自前のpatchが災いしてました。

拍手[0回]

PR

gmp-5.1.1.tar.lzが出てます

ftp://ftp.gmplib.org/pub/gmp-5.1.1/gmp-5.1.1.tar.lzです。

$ tar xf gmp-5.1.1.tar.lz --lzip

要、lzip

x32abiのmake checkでコケてたのが、治ってた。

拍手[0回]

え、x86_64なgccにメモリモデル指定のオプションが

cygwin64が気になって、該当mlを覗いてたら、気になる内容
外部変数を参照するときにrip相対の命令になるのが問題だ
という。(cygwin64のdllの変数を相対参照出来ない場所に配置したいという事かな)

$ gcc -v --help

  -mcmodel=                   与えられた x86-64
                              コードモデルを使用する

  Known code models (for use with the -mcmodel= option):
    32 kernel large medium small

16bit時代のintel系のCコンパイラにあったメモリモデルが64bi時代に復活していたとは
メモリモデルの指定があるからといって、妙な混乱をなさらないように

拍手[0回]

gcc-4.8から

gcc本体がc++コンパイラじゃないとビルド出来ないようになったようだ。
以前から、アナウンスされてたけど、ホントになってた。
(gcc-20130127.tar.bz2で確認)

拍手[0回]

cygwinでi686-w64-mingw32の4.8を作ってみる

1.cygwinなcloogの作成 (cloog-0.18.0をgcc-4.8でうまく使えるようにしてみる)

$ 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 cygwin
$ cd cygwin
$ ../cloog-0.18.0/configure --prefix=/usr --enable-shared --disable-static
$ make -j4 LDLFAGS=-no-undefined
$ 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 -j4
$ make install

2.i686-w64-mingw32-binutils(2.23.1)の作成

$ cd ~
$ wget http://www.dnsbalance.ring.gr.jp/archives/GNU/binutils/binutils-2.23.1.tar.bz2
$ tar xjf binutils-2.23.1.tar.bz2
$ mkdir mingw32
$ cd mingw32
$ ../binutils-2.23.1/configure --prefix=/usr/local/4.8 --build=i686-pc-cygwin
--host=i686-pc-cygwin --target=i686-w64-mingw32
$ make -j4
$ make install

3.i686-w64-mingw32-gcc(4.8)の作成

$ cd ~/
$ mkdir gcc48
$ wget http://www.dnsbalance.ring.gr.jp/archives/lang/egcs/snapshots/4.8-20130127/gcc-4.8-20130127.tar.bz2
$ tar xjf  gcc-4.8-20130127.tar.bz2
$ mkdir mingw32
$ cd mingw32
$
../gcc-4.8-20130127/configure --prefix=/usr/local/4.8 --build=i686-pc-cygwin
--host=i686-pc-cygwin --target=i686-w64-mingw32
--with-sysroot=/usr/i686-w64-mingw32/sys-root --disable-multilib
--disable-win32-registry --enable-languages=c,c++
--enable-fully-dynamic-string --enable-libgomp --enable-sjlj-exceptions
--enable-version-specific-runtime-libs --with-dwarf2
--enable-decimal-float=bid --enable-lto
checking for version 0.10 of ISL... no
checking for version 0.11 of ISL... yes
checking for version 0.17.0 of CLooG... no
checking for version 0.18.0 of CLooG... yes
$ make -j4
$ make install
$ cp /usr/local/4.8/lib/gcc/i686-w64-mingw32/lib/libgcc_s.a /usr/local/4.8/lib/gcc/i686-w64-mingw32/4.8.0
$ cp /usr/local/4.8/lib/gcc/i686-w64-mingw32/libgcc_s_sjlj-1.dll /usr/local/4.8/bin

cloogがあるとloopの最適化が強力?になるらしい。
Necessary to build GCC with the Graphite loop optimizations.

mingw32なcross-gccが必要な人向け

4.mingw32なcloogの作成

$ cd ~
$ cd cloog
$ mkdir mingw32
$ cd mingw32
$ export PATH=/usr/local/4.8/bin:$PATH
$ ../cloog-0.18.0/configure --prefix=/usr/i686-w64-mingw32/sys-root/mingw --enable-shared --disable-static --host=i686-w64-mingw32 CC=/usr/local/4.8/bin/i686-w64-mingw32-gcc CXX=/usr/local/4.8/bin/i686-w64-mingw32-g++
$ make -j4 LDLFAGS=-no-undefined
$ 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 -j4
$ make install

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