You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Andrew Stitcher (JIRA)" <qp...@incubator.apache.org> on 2008/07/29 22:49:32 UTC

[jira] Issue Comment Edited: (QPID-1198) Changes for the solaris port

    [ https://issues.apache.org/jira/browse/QPID-1198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12617950#action_12617950 ] 

astitcher edited comment on QPID-1198 at 7/29/08 1:49 PM:
----------------------------------------------------------------

There are a couple of changes here that I don't plan to merge as is:

cpp/src/qpid/log/Options.cpp

This needs to be changed to use feature tests for LOG_AUTHPRIV and LOG_FTP which are checked for in the autoconf script.

So the code should end up looking like:

#ifdef HAVE_LOG_AUTHPRIV
...
#endif
...
#ifdef HAVE_LOG_FTP
...
#endif

cpp/src/qpid/Url.cpp

The platform dependent code in here (the function getIpAddressesUrl) needs to be separated out and split into 2 files one for linux and one for Solaris. I think that the original linux code isn't that great, but that's besides the point!

One thing that I'm very intent on is keeping any #ifdef SUNOS...#endif conidtional compiles from the code:
It is pretty well established now that this is not the way to write portable code - indeed the whole rationale of autoconf is to allow the use of feature tests in portable code.

I'm okay with the platform dictating which files get compiled though which is why I suggest creating implementations for the different platforms.

      was (Author: astitcher):
    There a couple of changes here that I don't plan to merge as is:

cpp/src/qpid/log/Options.cpp

This needs to be changed to use feature tests for LOG_AUTHPRIV and LOG_FTP which are checked for in the autoconf script.

So the code should end up looking like:

#ifdef HAVE_LOG_AUTHPRIV
...
#endif
...
#ifdef HAVE_LOG_FTP
...
#endif

cpp/src/qpid/Url.cpp

The platform dependent code in here (the function getIpAddressesUrl) needs to be separated out and split into 2 files one for linux and one for Solaris. I think that the original linux code isn't that great, but that's besides the point!

One thing that I'm very intent on is keeping any #ifdef SUNOS...#endif conidtional compiles from the code:
It is pretty well established now that this is not the way to write portable code - indeed the whole rationale of autoconf is to allow the use of feature tests in portable code.

I'm okay with the platform dictating which files get compiled though which is why I suggest creating implementations for the different platforms.
  
> Changes for the solaris port
> ----------------------------
>
>                 Key: QPID-1198
>                 URL: https://issues.apache.org/jira/browse/QPID-1198
>             Project: Qpid
>          Issue Type: New Feature
>          Components: C++ Broker
>    Affects Versions: M3
>            Reporter: Manuel Teira
>            Assignee: Andrew Stitcher
>             Fix For: M3
>
>         Attachments: solaris-port.patch
>
>
> Patch with changes needed to have the project compiling under Sun Studio 12, on a Solaris Sparc machine. Tests are also passing.
> This patch summarizes all the changes in my local copy, including those from the non-resolved jira issues: QPID-1132 and QPID-1133. 
> Other changes are:
> 1.- Missing include files
> 2.- Some GNUishms in system calls. I think there're two cases for this:
>    2.1.- POSIX strerror_r doesn't return the buffer.
>    2.2. - pthread_yield is not POSIX compliant. Using sched_yield instead.
> 3.- No FTP and LOG_FTP syslog categories on Solaris.
> 4.- The private inheritance bug in the solaris compiler
> 5.- The Uuid.h solaris non-const members. 
> 6.- Some explicit namespacing. In some parts of the code.
> 7.- Replace all the u_intN_t typenames with  uintN_t typenames.
> 8.- The queue issue. Name already used in solaris system headers.
> 9.-Some minor bashisms in scripts, complaining under pure sh shells.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.