streem ( https://github.com/matz/streem ) を Solaris 上でビルドできたのでメモ。
とりあえず、以下の diff のように変更して、gmake && gmake test が通るはず。
streem は libgc が必要で、これは Solaris のパッケージだと library/gc になるが、
libgc.so ではなく、libbgc.so となっているため、'-lbgc' を渡す必要がある。
また、socket を見つけられないので、'-lsocket' を指定する必要がある。
src/string.c の方は、readonly_data_p が何をするのかわからないので、
とりあえず、Windows 同様、'return 0;' にするため、
#if defined(NO_READONLY_DATA_CHECK) || defined(_WIN32) || defined(sun)
のように、defined(sun)' を追加した。
defined で check している sun は
$ cpp -E -dM /dev/null
の出力からとってきた。
sun でも以下のように種類があるが、何が違うのか不明。
$ cpp -E -dM /dev/null | grep sun #define __sun 1 #define sun 1 #define __sun__ 1
このあたりも知っていきたいのだけど、どこから手をつければいいのかがわからない。