[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Darwin/pkgsrc



# BOFネタ? :)

developer.apple.comでADCメンバーになる。
ADCのページ -> Download Software -> Mac OS X
December 2001 Mac OS X Developer Tools, Update をdownload。
Developer Toolsの Developer.mpkg を実行してインストール
Update中のmpkgファイルを実行してインストール

Terminalで
sudo passwd root
でroot用パスワードを付けたのち su root で root権限を得る。
set path=(/usr/pkg/bin /usr/pkg/sbin $path) しておく。

pkgsrc.tar.gzをdownloadして /usr/pkgsrcに展開
www.netbsd.org/zoularisでDarwin用binaryパッケージをdownloadして展開
./bootstrap --pkgsrcdir=/usr/pkgsrc

/etc/mk.conf
FETCH_CMD=/usr/pkg/bin/ftp


で使えるようになったのですが、
/usr/bin/ld て -R がだめなんですね?


zshは-Rでだめだったので、ひとまず ZSH_STATIC=YES すると
-lcrt0.o が not found(だったかな)とか言われたので、
-staticを指定しないようにしてcompile。

ruby-baseは元々Darwin shared libraryに対応しているようなので、
compile自体はOK。ただshared libraryの拡張子が .so ではなく .dylib。
実行するとなぜか
dyld: ruby can't open library: libruby.dylib
(No such file or directory, errno = 2)
などといわれるので、
setenv DYLD_LIBRARY_PATH /usr/pkg/lib
とすると動きました。require 'socket' などしても問題なしです。


ldのwrapperとか用意しちゃうのは負けですかねぇ。
rubyだとこんなの。
#!/usr/bin/env ruby
@rpath = false
ARGV.delete_if do |arg|
    if arg == "-R"
        @rpath = true
        true
    elsif @rpath
        @rpath = false
        true
    elsif arg =~ /^-R/
        true
    elsif arg == "-static"
        true
    end
end
system "/usr/bin/ld.orig " + ARGV.join(" ")


libtoolは、標準添付のものを使うためのwrapper scriptを作るとか、
GNU libtoolの新しいのをbackportとか

sakamoto	www.osxvnc.comのvncとsshで使用中。