Subject : Intel MacにおけるSADの現状(3)
Article No : 231
Date : 2006/10/12(Thu) 19:02:26
Contributor : S. Yoshimoto <
メールアドレス >
吉本です。 2006/09/07にCore 2 Duoに関するコードが入って以降、Intel Mac(Core Duo)でSADが走らなく なったのですが、また動くようになりましたので、ご報告まで。 まず、gfortranのコンパイルですが、configure時に--disable-multilibを渡す必要があります。Mac Pro のような64bitマシンでは必要ないかも知れませんが、少なくとも32bitなCore Duoなマシンでではこれが ないとbootstrapでこけます。 次にSAD自身の方ですが、以前コンパイルオプションで-mpreferred-stack-boundaryを3から4に変更して 動くようになったのですが、今回も同じところで指定している-malign-doubleを外してやると動くように なりました。なお、NetBSD/i386でGCC 4.2.0を使った場合でも同じように-malign-doubleを外す必要 がありましたので、GCCのほうでここら辺のオプションの取り扱いが何か変わったのかもしれません。 一応、ご報告まで。 --- config/GCC.spec.orig 2006-10-12 18:48:18.000000000 +0900 +++ config/GCC.spec 2006-10-12 18:48:40.000000000 +0900 @@ -31,8 +31,8 @@ # Natural alignment of Pentium is 4bytes. # MacOS X for Intel requires 16bytes alignment. ifeq ($(CPU_ARCH),i386) -SYS_FOPT+=-mpreferred-stack-boundary=4 -malign-double -SYS_COPT+=-mpreferred-stack-boundary=4 -malign-double +SYS_FOPT+=-mpreferred-stack-boundary=4 +SYS_COPT+=-mpreferred-stack-boundary=4 SYS_CXXOPT+=-mpreferred-stack-boundary=4 endif