libaddr2line.aの作り方がわかった

https://libre2.adacore.com/binutilsには、#ifdefが書き足されていて、addr2lineのソースからlibaddr2line.aが作れるようになっているのでした。AdaCoreめ……こんなことで長年人を悩ませやがって……。
というわけでgnatmemが作れるようになりました。4.3のStage 1終了記念にビルド。まだ終わって無い。Adaフロントエンドのソースはsvnで取得して、後はスナップショットを使っているので、svn updateのタイミング次第でビルドが通らなくなって戦々恐々です。
http://panathenaia.halfmoon.jp/alang/gcc-private-build/
4.1→4.2は、interfaceぐらいだったのですが、4.2→4.3は、待望のbuild-in-placeやら拡張return文やら、新しいpragmaもWide_Character_Encodingを筆頭に盛り沢山です。そして、ついにVMTが静的に生成されるように!……これまで動的に作られてたのがどうかしてただけなんですが。最近[Ada]のコミットが多くて追いかけるのが大変です。
あと最近スタックが妙に無駄づかいされている気がしていたのですが、-mpreferred-stack-boundary=2を付けると元の動作に戻るのでした。x86の命令セットも一貫性が取れて無い……のは昔からか。あと-momit-leaf-frame-pointerはいつのバージョンからだっけ……。まあこれも便利。
あとあと、今まで--gc-sectionsを指定した気になっていて実は指定していなかった問題について。
なんと、gnatlinkに--gc-sectionを渡しても、ldにまで伝わっていないのでした……なんだこれは。-sは伝わるのに。
結局、-Xlinkerを前に付けてやればOKでした。