読者です 読者をやめる 読者になる 読者になる

Devel::CheckCompiler 0.04をリリースしました

perl

少し前ですが, Devel::CheckCompiler 0.04がリリースされました

新機能

check_compile関数は今まではオブジェクトファイルを生成するだけでしたが,
executable => 1を渡すことで実行ファイルを生成するようになりました.
これにより, システムである関数が利用できるかを確認することができます.
具体的には OS specificなシステムコールのチェックなどに使えます.
(今まではオブジェクトファイルの生成までだったので, 未解決なシンボルは
未解決なシンボルのまま残っていた)

accept4が使えるかどうかを調べる例を以下に示します.

if (check_compile(<<'...', executable => 1) != 1) {
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <sys/socket.h>

int main(void)
{
    return accept4(0, (void*)0, (void*)0, 0);
}
...
        print "This module only supports linux 2.6.28+ and glibc 2.10+.\n";
        exit 0;
}

print "This system has accept4\n";

おわりに

問題があれば githubの issuesまでお願いします.