cygport でデバッグ可能なバイナリをビルドする場合には
ことが必要となる。
デバッグ情報を埋め込む
これは gcc のコンパイルオプションに -g を追加しておけば良い。cygport ファイルだと configure のオプションに渡すようにするのが手っ取り早い。
CYGCONF_ARGS="CFLAGS=-g"
ストリップしない
cygwin 本家で配布されている cygport-0.2.10 では必ず strip されるようになっているため、Cygwin Ports で配布している cygport-0.3.7 を使う必要がある。
上記のバージョンを使い、cygport ファイルに _CYGPORT_RESTRICT_strip_ を定義しておけば、パッケージに含まれるすべての *.exe および *.dll が strip されない。
__prepstrip() { if defined _CYGPORT_RESTRICT_strip_ then inform "Skipping strip step per request."; return 0; fi local exe; cd ${D}; echo "Stripping executables:"; # Ruby and Apache2 modules should be *.so, nothing else!!! for exe in $(find * -type f -name '*.dll' -o -name '*.exe' -o -name '*.so') do # Mono assemblies must not be stripped! if [ -w ${exe} ] && ! objdump -p ${exe} | grep -q "DLL Name: mscoree.dll" then echo " ${exe}"; chmod +x ${exe}; strip ${exe}; fi done }