Personal tools
You are here: Home メンバー 菊地時夫 メモ Solaris 10 で 64bit
Document Actions

Solaris 10 で 64bit

by 菊地時夫 posted at 2010-04-11 09:31 last modified 2010-04-11 09:31

Solaris 10 で 64 bit build しようとして、ハマったのでメモ

  • モノは Squid. --with-large-files を付けないと、2GB 以上のファイルをダウンロードできない。最近は DVD image をダウンロードさせるのもあるので、困るかも。(普通の人はあまり困らないだろうが)具体例としては、Apple Mac OS X の Xcode.
  • とりあえず configure に --with-large-files を付けてみると、通らない。64bit でなく 32bit のライブラリしかないものがあるから。具体的には /usr/local/lib/libgcc_s.so.1
  • なので、libgcc を 64bit でコンパイルする必要。ということで (バイナリで取って来たのでなく) gcc-core をコンパイル。
  • 前提条件 にある、あれこれのツールやライブラリをインストール。ここでハマり。
    • /usr/ccs/bin の ld ではダメなので binutils を入れないといけない。
    • さらに --with-gnu-as --with-gnu-ld を明示的に指定しないと行けない。
    • GMP, MPFR, MPC のインストールで、テストを通らないところがあって、そこは誤摩化した。
    • 他にもあったかもしれないが、忘れた。
  • gcc 全部コンパイルしてたら、java あたりでエラーになった。原因不明。gcc-core のみとする。が、Squid には gcc-g++ も必要であった。
  • Squid のコンパイルがすぐにはできない。
  • 以下のような環境設定でコンパイルしていたが:
       export CPPFLAGS="-I/usr/local/ssl/include -I/usr/local/include"
       export LDFLAGS="-L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib"
    
  • これだと、/usr/local/lib/sparcv9 に入った、64bit のライブラリとリンクしてくれない。
  • なので、squid のコンパイル時だけ:
       export LDFLAGS="-L/usr/local/lib/sparcv9 -R/usr/local/lib/sparcv9 -L/usr/local/ssl/lib -R/usr/local/ssl/lib -L/usr/local/lib -R/usr/local/lib"
    
  • とする。
  • gcc の build 同様、--with-gnu-ld が必要。(--with-gnu-as も付けておいたが関係ない?)
  • で、:
       ldd /usr/local/sbin/squid
            libstdc++.so.6 =>        /usr/local/lib/sparcv9/libstdc++.so.6
            libcrypt_d.so.1 =>       /usr/lib/64/libcrypt_d.so.1
            libmd5.so.1 =>   /lib/64/libmd5.so.1
            libpthread.so.1 =>       /lib/64/libpthread.so.1
            libresolv.so.2 =>        /lib/64/libresolv.so.2
            libsocket.so.1 =>        /lib/64/libsocket.so.1
            libnsl.so.1 =>   /lib/64/libnsl.so.1
            libm.so.2 =>     /lib/64/libm.so.2
            libgcc_s.so.1 =>         /usr/local/lib/sparcv9/libgcc_s.so.1
            libc.so.1 =>     /lib/64/libc.so.1
            libgen.so.1 =>   /lib/64/libgen.so.1
            libmp.so.2 =>    /lib/64/libmp.so.2
            libmd.so.1 =>    /lib/64/libmd.so.1
            libscf.so.1 =>   /lib/64/libscf.so.1
            libdoor.so.1 =>  /lib/64/libdoor.so.1
            libuutil.so.1 =>         /lib/64/libuutil.so.1
            /platform/SUNW,SPARC-Enterprise/lib/sparcv9/libc_psr.so.1
    
  • なのだが、/usr/lib と /lib にある 64 bit ライブラリはちゃんとリンクされてる。
  • ランタイムライブラリの指定に -R を付けてコンパイルするようにしているのだが、これだと 32/64 bit の切り替えを自動ではやってくれないので、crle を使うのが本筋なのらしい。(しかし、以前、何か変だったので止めたんだよね)
Category(s)
なんでも
The URL to Trackback this entry is:
http://sango.lab.tkikuchi.net/Members/tkikuchi/30e130e2/solaris64/tbping
« December 2010 »
Su Mo Tu We Th Fr Sa
      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  
About this blog
メモ代わりのブログ
Recent entries
JIS を戻すって tkikuchi 2010-06-14
ゼネラリスト tkikuchi 2010-04-26
Solaris 10 で 64bit tkikuchi 2010-04-11
なんかマヌケ? tkikuchi 2010-02-22
Oracle + ASP.NET なんですね tkikuchi 2010-01-28
Recent comments
Re:lock できないので tkikuchi 2009-06-03
Re:挨拶用メモ tkikuchi 2009-05-27
Re:挨拶用メモ knakahasi 2009-05-04
Re:Xgrid (続編) tkikuchi 2008-10-09
PILでのグラフ出力 ytoshio 2008-03-06
Categories
なんでも
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: