/.../libapr-1.so: undefined reference to `__sync_fetch_and_add_8'
/.../libapr-1.so: undefined reference to `__sync_val_compare_and_swap_8'
/.../libapr-1.so: undefined reference to `__sync_lock_test_and_set_8'
/.../libapr-1.so: undefined reference to `__sync_fetch_and_sub_8'
/.../libapr-1.so: undefined reference to `__sync_sub_and_fetch_8'
……というエラーが出る。
apr ライブラリの atomic/builtins64.c の中の __sync_fetch_and_add
(64bit) などが gcc の内部で __sync_fetch_and_add_8
などに置き換えられるものの実体がない(?)らしい。
gcc の問題のように思えるけど src/external/gpl3/gcc/dist/gcc/config/ の下を眺めているだけで具合悪くなりそうなので撤退。
workaround としては、apr ライブラリをこんな感じで configure を騙して作り直す(というのを思いついた)。
$ cd pkgsrc/devel/apr
$ ap_cv_atomic_builtins=no make update
これで www/apache24 もコンパイルが通るようになって一応動いたけど、「こう修正すべき」とは提案しにくいので報告するかどうかは後回し。