# Please help - enabling CONFIG_POSIX_MQUEUE in kernel config

## prichy

I've successfully built some C code including mq_open calls and linked using -lrt ... all OK.

However, when I run the code I get errno 38: function not implemented from the mq_open() call

Sure enough the kernel configuration option CONFIG_POSIX_MQUEUE does not appear in my kernel .config file. However, every time I add it in, the Makefile helpfully removes it by running 'make oldconfig' for me.

Can anyone tell me please how I convince the kernel make system to include the CONFIG_POSIX_MQUEUE option so that I can set it?

I'm sure this should be standard so I'm also concerned that perhaps other important flags aren't present.

Kernel version is linux-2.6.29-gentoo-r5

Many thanks.

Prichy

----------

## Hu

 *prichy wrote:*   

> Sure enough the kernel configuration option CONFIG_POSIX_MQUEUE does not appear in my kernel .config file. However, every time I add it in, the Makefile helpfully removes it by running 'make oldconfig' for me.

 

You should not edit .config directly unless you know exactly what you are doing.  There are various dependencies between some options, and direct editing has the potential to confuse things.  Changing the value through the menuconfig interface ensures that the .config is consistent.

Analysis of the Kconfig files suggests that POSIX message queues should appear in "General setup".  Have you enabled both NET and EXPERIMENTAL?

----------

## prichy

Thank you - enabling 'Experimental' showed up the necessary option.  I'm now concerned though that I'm using something I shouldn't be.  I thought that message queues were mainstream and I don't want to build something that won't run 'out of the box'.  However - that's probably for another forum.  Thanks again for your help.

----------

## Hu

Unfortunately, the EXPERIMENTAL marker guards plenty of things that stopped being experimental a long time ago.  Most kernel builders enable that feature early on, and so never think about how many things vanish when it is turned off.

----------

## Captain Newbie

 *Hu wrote:*   

> Unfortunately, the EXPERIMENTAL marker guards plenty of things that stopped being experimental a long time ago.  Most kernel builders enable that feature early on, and so never think about how many things vanish when it is turned off.

 

The whole thing, properly speaking, is experimental - provided without ANY warranty, not even the IMPLIED warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   :Cool: 

----------

