Как может я делать это:
*(int *)CMSG_DATA(hdr) = fd2pass;
Без GCC повышение этого:
error: dereferencing type-punned pointer will break strict-aliasing rules
В некотором роде совместимый с этими опциями:
-Wall -Werror -pedantic
Попробуйте передать -fno-strict-aliasing в gcc.
Чтобы пролить свет на тему строгого псевдонима, проверьте этот вопрос .