についての補足的なエントリです。scala-nativeのサンプルプログラムsmallpt.scalaは
__stderrp
を使っていますが、Linux系には存在しないので、リンク時にこけてしまいます。
これを修正するには、smallpt.scalaとstdlib.scalaの__stderrp
と__stdoutp
をそれぞれ、stderr
とstdout
に書き換えてやる必要があります。現状、条件コンパイルのような仕組みはサポートされていないのでこれをクロスプラットフォームで動作させる方法がたぶんないのがちと困ったものです(作者本人が作ったIssueには入っているので、そのうち解決されるだろうとは思いますが)。実は手元でuname
を使ってOSによって分岐するコードを書いてみようとしたのですが、構造体のメモリレイアウトが微妙に違うのか、uname
は呼び出せるものの、返り値に謎の値が入っているという事態になりました(なにか勘違いしているかも)。