На OpenSolaris ($^O eq 'solaris', версия 2.11), я пытаюсь создать модуль XS, который использует спецификацию XPGv4v2/Single Unix. понимание struct msghdr
, в частности, для опроса «вспомогательных данных».конфликт определения структуры между модулем XS и построением perl
Однако родной 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
и _XOPEN_SOURCE_EXTENDED
) разрушает сборку, поскольку она меняет очень много вещей, которые ожидал Perl.
Есть ли элегантный способ, которым я могу использовать модуль XS, используя определение структуры, которое мне бы хотелось?
Есть ли вероятность, что вы можете построить новый Perl, а затем построить свою модель XS против этого? – Ether
@ Другое, да, но я хотел бы, чтобы модуль был доступен для систем OpenSolaris, которые не могут запустить перестроенный perl, если но все же возможно. – pilcrow