2014/6/13

ld: -f may not be used without -shared  FreeBSD

あるFreeBSD 9.1マシン上で/usr/ports/sysutils/fusefs-kmodをmakeしていた時に

ld: -f may not be used without -shared

なるエラーが現れた。

ld -fstack-protector -fstack-protector -d -warn-common -r -d -o fuse.ko fuse_main.o fuse_msg.o fuse_dev.o fuse_vfsops.o fuse_vnops.o fuse_io.o fuse_subr.o

している時に出たものだが、

gcc -dumpspecs

してみると、

*link_ssp:
%{fstack-protector:}

なる記述があった。要はSSP (ProPolice)を使用している時はldのオプションとして自動的に-fstack-protectorが付け足されるようになっていたようであるが、これが問題だった模様。
で、/etc/make.confを見てみると、

ENABLE_SSP=yes
USE_SSP=yes
WITH_SSP_PORTS=yes

なる記述が並んでいた。正直言って自分が管理しているマシンじゃないのでどうしようかと悩んだけど、とりあえずWITH_SSP_PORTS=yesを外してfusefs-kmodをmakeして凌いだ。

まあこういうこともあるもんだなと。
0
タグ: FreeBSD gcc ssp



teacup.ブログ “AutoPage”
AutoPage最新お知らせ