Tomas Soltys commented on PROTON-515:

According to http://h71000.www7.hp.com/doc/82final/6529/6529pro_018.html poll 
should set only EAGAIN or EINTR. Everything works fine when you have file 
descriptors created same way (all fds are created only with pipe() or only with 
socket()). But if you mix them then poll will fail and set errno to ENOTSOCK. I 
was not able to find anything in the documentation regarding this behavior.

So, I will create ../openvms/pipe.c and provide a patch.

My compiler on OpenVMS is "HP C V7.2-001 on OpenVMS IA64 V8.4" and throws 
following error.

%CC-E-BADSTATICCVT, In the initializer for PNI_ACCEPTOR_HANDLER, the address 
cannot be converted to the destination type.
at line number 31 in file [.qpid-proton-0_11_1.proton-c.src.reactor]acceptor.c;1
Description: A static initialization tried to convert a link-time address to 
another type.  However, the linker on this platform will not
 support such a conversion.
User Action: Rewrite the static initialization, or perform the initialization 
using runtime code.

The way how PN_HANDLER is used it is guaranteed that using __LINE__ will return 
unique value since variable it creates is static in the scope of the file and 
therefore no other variable created with this macro can have the same value 
since it is on different line of that file.
There is only one possible situation that I can think of in which the value 
would not be unique:


But this can be solved by making macro two-lined.
#define PN_HANDLE(name) \
  static pn_handle_t name = __LINE__; \


> Port to OpenVMS
> ---------------
>                 Key: PROTON-515
>                 URL: https://issues.apache.org/jira/browse/PROTON-515
>             Project: Qpid Proton
>          Issue Type: Improvement
>          Components: proton-c
>    Affects Versions: 0.11.1
>         Environment: OpenVMS
>            Reporter: Tomas Soltys
>            Assignee: Andrew Stitcher
>              Labels: OpenVMS, patch
>         Attachments: io.c.patch, object.h.patch
> There is a need for proton-c port to OpenVMS platform.
> To make proton-c functional on OpenVMS few changes in the source code are 
> required.
> Here is list of files I have identified which require some attention:
> proton-c/src/platform_fmt.h
> proton-c/src/posix/driver.c
> proton-c/src/object/object.c
> proton-c/src/codec/codec.c

This message was sent by Atlassian JIRA

Reply via email to