differences between 6.2 and 6.3?

Where can I find C++ library changes between 6.2 and 6.3?
I have a problem with the name_attach(…) function which is supposed to register a name in the namespace and create a channel.

I have code that worked under 6.2, but fails under 6.3. The function returns a NULL pointer under 6.3?

What kind of problem with name_attach()?

Both release note & name_attach() documented stated that name_attach()'d server need to handle an _IO_CONNECT type of message now. Something like this:

struct {
short type;
char buf[4096];

 for (;;) {
   rcvid = MsgReceive(..&msg, sizeof msg, ..);

   if (rcvid == -1) {

   if (rcvid == 0) {
       /* process pulse */

   if (msg.type == _IO_CONNECT) {
        MsgReply(rcvid, EOK, 0, 0);

   /* your own message process */

Thanks for your reply,
where do I find the documentation you were mentioning? i.e. release notes and at any other place?


I got somewhat further,
if I, when calling the name_attach function change from attaching globally to locally, I don’t get a NULL back, and I can see the attached name in /dev/name/local …

so in the function name_attach(NULL, m_sProcessName.c_str(), NAME_FLAG_ATTACH_GLOBAL);

the changes are
name_attach(NULL, m_sProcessName.c_str(), 0); and I get something attached under /dev/name/local.

Any clues why it does not work globally?


ps: I’m kind of a newbie so excuse me if I’m missing something obvious…

oops, I forgot to mentioned this…

In 6.2, NAME_FLAG_ATTACH_GLOBAL is not supported, so it work as if you said nothing.
(attached locally). In 6.3, it is supported by the “gns” manager, so if you don’t have
gns running, ATTACH_GLOBAL will fail (to tell you, you can’t attach global).

In short, run “gns -s” as root, before you execute your program.

that made it working!

Is there a flag defined for when you want to connect locally?
I found the NAME_FLAG_ATTACH_GLOBAL in dispatch.h, but no