FreePascalは素晴らしい

http://community.freepascal.org:10000/docs-html/user/usersu14.html
なんて出力形式豊富なんだ。
で、Windows上で試せるだけ試しました。
http://panathenaia.halfmoon.jp/alang/sample-fpcmix.7z
結果、COFF系*1、OMF系*2gcc*3全部リンクに成功。
更にC言語ですら名前の修飾規則がコンパイラごとに微妙に異なるため、同じOMFでもBorlandとDigitalMarsの間で同一のオブジェクトファイルを使い回すにはやや難があるのに対し、FreePascalはalias指令でもってエクスポートする名前を完全にコントロールできる、ので何の問題も無くBorland-DigitalMars共用オブジェクトファイルを作成可能。はっきり言ってこの機能は全コンパイラが持つべきと思います。
またDelphiでOMFを吐かせた場合、それっぽい機能を何も使わなくても@@HandleFinallyという謎のシンボルが必要となるのに対し、FreePascalはそれっぽい機能を使わなければランタイムも完全に不要という素晴らしさ。
試してませんがクロスコンパイラも作成可能とのこと。
素晴らしい。素晴らしすぎる。
まさに、他の言語からリンクされるライブラリを書くために存在するようなコンパイラと言えましょう。
mkmさんにBDS2006を買わせる策謀は頓挫しましたが、望みが繋がりました。ふふふ…。

*1:Microsoft、あとIntelとかAonixとかCOFFっぽい、アセンブラはnasmw使用、またCOFF出力機能が内臓されており-Apecoffで直接吐かせることも

*2:Borland, DigitalMars、アセンブラはC++BuilderX付属のtasm32使用、なおBSS関連でひとつ警告が出ました

*3:FreePascalそのものがgcc系なのでこれはできて当然