OpenSolaris ($^O eq 'solaris'、バージョン 2.11) で、XPGv4v2/Single Unix Spec を使用する XS モジュールを構築しようとしています。の理解struct msghdr
、特に「補助データ」の調査について。
ただし、ネイティブ perl (v5.8.4) は必要な定義なしでビルドされているため、struct msghdr
私の XS ファイル内に表示されるのは古い BSD の種類です::
#include "EXTERN.h"
#include "perl.h" /* older, "msg_accrights"-style msghdr now visible */
#include "XSUB.h"
....
struct msghdr m;
m.msg_control = buf; /* ERROR, structure has no member named "msg_control" */
....
"正しい" #define
s ( _XOPEN_SOURCE
and _XOPEN_SOURCE_EXTENDED
) を指定すると、ビルドが壊れます。これは、perl が予期していた非常に多くのことが変更されるためです。
XS モジュールに構造定義を使用させるエレガントな方法はありますか?