Thank you - using pthread_atfork seems to solve things. I've added in the macro by modifying the definition in glibc (Seems a bit pointless).

Raphael Cohn
Chief Architect, stormmq
Co-Chair, OASIS MQTT Standard
Secretary, OASIS AMQP Standard
raphael.cohn@stormmq.com
+44 7590 675 756

UK Office:
Hamblethorpe Farm, Crag Lane, Bradley BD20 9DB, North Yorkshire, United Kingdom
Telephone: +44 845 3712 567

Registered office:
16 Anchor Street, Chelmsford, Essex, CM2 0JY, United Kingdom
StormMQ Limited is Registered in England and Wales under Company Number 07175657
StormMQ.com


On 19 November 2013 19:15, Szabolcs Nagy <nsz@port70.net> wrote:
* Raphael Cohn <raphael.cohn@stormmq.com> [2013-11-19 16:20:27 +0000]:
> src/booleans.c wants to use the macro _D_ALLOC_NAMLEN - which seems to be a
> glibc-ism in dirent.h. It may be possible to hack in their macro definition

should be fixed upstream

> to overcome this;
> src/proccattr.c tries to use __register_atfork, which is in the LSB but I
> suspect is a glibc-ism.
>
> I'm stuck on the latter - I'm not deep into this stuff. Does anyone have
> any ideas how to patch / hack / bypass this to get things compiled? Are
> there any other workarounds (apart from not using libselinux or musl)?

i think you can just use pthread_atfork instead

#define __register_atfork(prepare,parent,child,dso) pthread_atfork(prepare,parent,child)

the dso arg is just there in case dlclose() is used
which is broken on glibc anyway and noop on musl