-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Friday, December 05, 2003 5:44 AM
To: [EMAIL PROTECTED]
Subject: [ace-bugs] Digest Number 958


------------------------ Yahoo! Groups Sponsor ---------------------~-->
KnowledgeStorm has over 22,000 B2B technology solutions. The most comprehensive IT 
buyers' information available. Research, compare, decide. E-Commerce | Application Dev 
| Accounting-Finance | Healthcare | Project Mgt | Sales-Marketing | More
http://us.click.yahoo.com/IMai8D/UYQGAA/cIoLAA/r9ewlB/TM
---------------------------------------------------------------------~->

There are 12 messages in this issue.

Topics in this digest:

      1. Bug? in ACE_Connector::connect_i
           From: Kobi Cohen-Arazi <[EMAIL PROTECTED]>
      2. Re: [ace-users] Bug? in ACE_Connector::connect_i
           From: Kobi Cohen-Arazi <[EMAIL PROTECTED]>
      3. Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
      4. RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: "Johnny Willemsen" <[EMAIL PROTECTED]>
      5. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
      6. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
      7. RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: "Johnny Willemsen" <[EMAIL PROTECTED]>
      8. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
      9. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
     10. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>
     11. RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: "Johnny Willemsen" <[EMAIL PROTECTED]>
     12. Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++
           From: Thomas Lockhart <[EMAIL PROTECTED]>


________________________________________________________________________
________________________________________________________________________

Message: 1
   Date: Thu, 04 Dec 2003 17:18:58 +0200
   From: Kobi Cohen-Arazi <[EMAIL PROTECTED]>
Subject: Bug? in ACE_Connector::connect_i

Hi All,

     ACE VERSION: 5.3.3

     HOST MACHINE and OPERATING SYSTEM:
        Win2k sp4 server.
        Winsock2 5.0.2195.6601

     COMPILER NAME AND VERSION (AND PATCHLEVEL):
        .NET 7.1 (2003)

     CONTENTS OF $ACE_ROOT/ace/config.h:
        #include "config-win32.h"


     AREA/CLASS/EXAMPLE AFFECTED:
        ACE_Connector::connect_i

     DOES THE PROBLEM AFFECT:
         EXECUTION?
        Yes, The following seems to be incorrect:
        ....
          if (result == -1)
            {
              if (use_reactor && errno == EWOULDBLOCK)
                {
        ....
        Checkin against errno and not against ACE_OS::last_error() is buggy.

        I am using ACE_Synch_Options::async, and ::connect() returns -1
        with EWORULDBLOCK. However on win32 errno == 0.

        The soultion will be checking against ACE_OS::last_error() which is 
very important to do so on win32 platforms.

Thanks,
Kobi.



________________________________________________________________________
________________________________________________________________________

Message: 2
   Date: Thu, 04 Dec 2003 18:23:36 +0200
   From: Kobi Cohen-Arazi <[EMAIL PROTECTED]>
Subject: Re: [ace-users] Bug? in ACE_Connector::connect_i

Hi Steve,

Yes,
I've changed errno to ACE_OS::last_error(). And it worked .
The strange thing was in that point ACE_OS::last_error() == 10035 and 
errno == 0 (I've added ACE_DEBUG to that point to verify that), and the 
server side doing the accept call - succeeded.

PS. Maybe we need to swap the rest of the code so more cases like that
won't happen ?

Thanks,
Kobi.

Steve Huston wrote:
> Hi Kobi,
> 
> Did you try this fix on your system? If not, please do and let us know
> how it works.
> 
> Thanks,
> 
> -Steve
> 
> --
> Steve Huston, Riverace Corporation
> Co-author of "C++ Network Programming" and "The ACE Programmer's
> Guide"
> Books, ACE kit and support info at http://www.riverace.com/ 
> 
> 
>>-----Original Message-----
>>From: [EMAIL PROTECTED] 
>>[mailto:[EMAIL PROTECTED] On Behalf Of Kobi Cohen-Arazi
>>Sent: Thursday, December 04, 2003 10:19 AM
>>To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
>>Subject: [ace-users] Bug? in ACE_Connector::connect_i
>>
>>
>>Hi All,
>>
>>     ACE VERSION: 5.3.3
>>
>>     HOST MACHINE and OPERATING SYSTEM:
>>      Win2k sp4 server.
>>      Winsock2 5.0.2195.6601
>>
>>     COMPILER NAME AND VERSION (AND PATCHLEVEL):
>>      .NET 7.1 (2003)
>>
>>     CONTENTS OF $ACE_ROOT/ace/config.h:
>>      #include "config-win32.h"
>>
>>
>>     AREA/CLASS/EXAMPLE AFFECTED:
>>      ACE_Connector::connect_i
>>
>>     DOES THE PROBLEM AFFECT:
>>         EXECUTION?
>>      Yes, The following seems to be incorrect:
>>      ....
>>        if (result == -1)
>>          {
>>            if (use_reactor && errno == EWOULDBLOCK)
>>              {
>>      ....
>>      Checkin against errno and not against 
>>ACE_OS::last_error() is buggy.
>>
>>      I am using ACE_Synch_Options::async, and ::connect() returns
> 
> -1
> 
>>      with EWORULDBLOCK. However on win32 errno == 0.
>>
>>      The soultion will be checking against 
>>ACE_OS::last_error() which is 
>>very important to do so on win32 platforms.
>>
>>Thanks,
>>Kobi.
>>
> 
> 
> 
> 
> 




________________________________________________________________________
________________________________________________________________________

Message: 3
   Date: Thu, 04 Dec 2003 08:42:24 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
># if defined (ACE_VXWORKS) && ACE_VXWORKS == 0x542
>#   define ACE_LACKS_CLEARERR
># endif /* ACE_VXWORKS == 0x542 */ 
>Would that do the trick, maybe the 542 version is broken?
>  
>
It would do the trick, but I'm not sure that 542 is broken. I think that 
corresponds to Tornado 2.0.2, which we have been using in production 
with tao 1.2.1 for over a year. And for that version of tao 
ACE_LACKS_CLEARERR was not defined. Hmm, maybe because clearerr() was 
not used.

I'm searching through google and finding that:
o in April Olli Savia reported a problem with clearerr defined as a 
macro in LynxOS (it is a macro also in VxWorks). The fix was to #undef 
clearerr. But the compiler was gcc-2.7.x, which is no longer supported 
in tao due to C++ namespace support.
o There is some hint that clearerr defined as a macro by the OS is A Bad 
Thing. This is the case for VxWorks, but does not seem to hurt 
compilation. Comments?

I think maybe I was not subscribed to ace-bugs where the discussions 
took place. I am now though...

                                  - Tom



________________________________________________________________________
________________________________________________________________________

Message: 4
   Date: Thu, 4 Dec 2003 17:48:28 +0100
   From: "Johnny Willemsen" <[EMAIL PROTECTED]>
Subject: RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

Hi,

Then I will change it to == 0x542. That way it works with Tornado 2.2 and
with older versions. 0x540 is not supported anymore, maybe we should add a
check in the config file to make sure that people who try it will get a
clear error.

Johnny 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Thomas Lockhart
Sent: donderdag 4 december 2003 17:42
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: [ace-bugs] Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
># if defined (ACE_VXWORKS) && ACE_VXWORKS == 0x542
>#   define ACE_LACKS_CLEARERR
># endif /* ACE_VXWORKS == 0x542 */
>Would that do the trick, maybe the 542 version is broken?
>  
>
It would do the trick, but I'm not sure that 542 is broken. I think that
corresponds to Tornado 2.0.2, which we have been using in production with
tao 1.2.1 for over a year. And for that version of tao ACE_LACKS_CLEARERR
was not defined. Hmm, maybe because clearerr() was not used.

I'm searching through google and finding that:
o in April Olli Savia reported a problem with clearerr defined as a macro in
LynxOS (it is a macro also in VxWorks). The fix was to #undef clearerr. But
the compiler was gcc-2.7.x, which is no longer supported in tao due to C++
namespace support.
o There is some hint that clearerr defined as a macro by the OS is A Bad
Thing. This is the case for VxWorks, but does not seem to hurt compilation.
Comments?

I think maybe I was not subscribed to ace-bugs where the discussions took
place. I am now though...

                                  - Tom



________________________________________________________________________
________________________________________________________________________

Message: 5
   Date: Thu, 04 Dec 2003 09:28:12 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>Then I will change it to == 0x542. That way it works with Tornado 2.2 and
>with older versions. 0x540 is not supported anymore, maybe we should add a
>check in the config file to make sure that people who try it will get a
>clear error.
>  
>
OK. I'm rummaging through the cvsweb diffs to try to figure out the 
history on this issue, and will send another email soon with a summary 
as I understand it. But I'm guessing that the definition of 
ACE_LACKS_CLEARERR does not need to be there at all for VxWorks, since 
there seems to have been subsequent changes to OS.h to handle the 
general clearerr-as-macro situation. I should have an opinion (??) in a 
bit, and will be testing over the next few days.

                                     - Tom




________________________________________________________________________
________________________________________________________________________

Message: 6
   Date: Thu, 04 Dec 2003 09:38:06 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>Then I will change it to == 0x542. That way it works with Tornado 2.2 and
>with older versions. 0x540 is not supported anymore, maybe we should add a
>check in the config file to make sure that people who try it will get a
>clear error.
>  
>
Oh, on the VxWorks/Tornado versioning:
o VxWorks 0x55* corresponds to the Tornado 2.2 series, shipped with 
something resembling gcc-2.96.
o VxWorks 0x54* corresponds to the Tornado 2.0 series, shipped with 
2.7.x claiming "egcs patches". That entire series (and earlier) is no 
longer supported by TAO afaict due to namespace troubles. It has 
exception troubles too, but using non-native exceptions should be OK for 
that part.
o I'm not sure how the Tornado 2.1 series was labeled wrt VxWorks, since 
it did not make it into general release and we never got our hands on a 
copy (the reps said it was too buggy on non-Altivec processors to bother 
with).

                             - Tom




________________________________________________________________________
________________________________________________________________________

Message: 7
   Date: Thu, 4 Dec 2003 18:40:36 +0100
   From: "Johnny Willemsen" <[EMAIL PROTECTED]>
Subject: RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

Hi,

When I remember correctly there has been a 0x542 release for some platforms
that shipped with gcc-2.96. Only 0x540 is VxWorks 5.4 and is shipped with
2.7.x which we don't support anymore.

Johnny 

-----Original Message-----
From: Thomas Lockhart [mailto:[EMAIL PROTECTED] 
Sent: donderdag 4 december 2003 18:38
To: Johnny Willemsen
Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: [ace-bugs] Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>Then I will change it to == 0x542. That way it works with Tornado 2.2 
>and with older versions. 0x540 is not supported anymore, maybe we 
>should add a check in the config file to make sure that people who try 
>it will get a clear error.
>  
>
Oh, on the VxWorks/Tornado versioning:
o VxWorks 0x55* corresponds to the Tornado 2.2 series, shipped with
something resembling gcc-2.96.
o VxWorks 0x54* corresponds to the Tornado 2.0 series, shipped with 2.7.x
claiming "egcs patches". That entire series (and earlier) is no longer
supported by TAO afaict due to namespace troubles. It has exception troubles
too, but using non-native exceptions should be OK for that part.
o I'm not sure how the Tornado 2.1 series was labeled wrt VxWorks, since it
did not make it into general release and we never got our hands on a copy
(the reps said it was too buggy on non-Altivec processors to bother with).

                             - Tom




________________________________________________________________________
________________________________________________________________________

Message: 8
   Date: Thu, 04 Dec 2003 10:44:20 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>When I remember correctly there has been a 0x542 release for some platforms
>that shipped with gcc-2.96. Only 0x540 is VxWorks 5.4 and is shipped with
>2.7.x which we don't support anymore.
>  
>
Well, Wind River isn't helping us much by having that mysterious 2.1 
series, but here is what I see in my installations. They presumably have 
some patches applied (per WRS tradition, we sometimes only find out 
about available patches if we have a problem, so the patching is 
probably minimal).

 From our Tornado 2.0 installation (in target/h/version.h):
#define VXWORKS_VERSION "5.4"
g++ppc --version
cygnus-2.7.2-960126 egcs-971225 tornado 2.0

 From our Tornado 2.0.2 installation (still the 2.7.x/egcs compiler):
#define VXWORKS_VERSION "5.4.2"
g++ppc --version
cygnus-2.7.2-960126 egcs-971225 tornado 2.0

 From our Tornado 2.2 installation (!! note bump in version convention):
#define RUNTIME_NAME "VxWorks"
#define RUNTIME_VERSION "5.5.1"
#define VXWORKS_VERSION RUNTIME_NAME RUNTIME_VERSION
g++ppc --version
gcc-2.96

 From our Tornado 2.2.1 installation:
#define RUNTIME_NAME "VxWorks"
#define RUNTIME_VERSION "5.5.1"
#define VXWORKS_VERSION RUNTIME_NAME RUNTIME_VERSION
g++ppc --version
gcc-2.96

The gap I have is with the conventions for Tornado 2.1.x. I'm guessing 
that it may claim to be "5.5" and has a compiler claiming to be some rev 
of 2.96. Does anyone have something they could look at?

                                           - Tom

>Oh, on the VxWorks/Tornado versioning:
>o VxWorks 0x55* corresponds to the Tornado 2.2 series, shipped with
>something resembling gcc-2.96.
>o VxWorks 0x54* corresponds to the Tornado 2.0 series, shipped with 2.7.x
>claiming "egcs patches". That entire series (and earlier) is no longer
>supported by TAO afaict due to namespace troubles. It has exception troubles
>too, but using non-native exceptions should be OK for that part.
>o I'm not sure how the Tornado 2.1 series was labeled wrt VxWorks, since it
>did not make it into general release and we never got our hands on a copy
>(the reps said it was too buggy on non-Altivec processors to bother with).
>  
>




________________________________________________________________________
________________________________________________________________________

Message: 9
   Date: Thu, 04 Dec 2003 11:00:44 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>> When I remember correctly there has been a 0x542 release for some 
>> platforms
>> that shipped with gcc-2.96. Only 0x540 is VxWorks 5.4 and is shipped 
>> with
>> 2.7.x which we don't support anymore.
>> The gap I have is with the conventions for Tornado 2.1.x. I'm 
>> guessing that it
>
>> may claim to be "5.5" and has a compiler claiming to be some rev of 2.96.
>

It may be that the versioning for Tornado 2.1.x combines VxWorks 5.4.2 
with an unfortunate pre-release of gcc-2.96, which would jibe with your 
recollection. In which case we would have to start looking at the 
CC_VERSION derived in the platform*.GNU area to distinguish all 
combinations.

otoh, we all agree that tao no longer supports the 2.0 series. So we 
could use 542 to indicate the 2.1 series (pending confirmation of 
versioning for that aborted release). You have probably been saying this 
all along, but I was stuck on the conflict with info for the 2.0 series.

btw, I've been going through and updating some of the platform*.GNU and 
config*.h information for VxWorks to fix up other areas, including the 
potential use of native exceptions (we have backed off from actually 
using native exceptions on VxWorks for now due to memory footprint 
concerns). Will send patches...

                               - Tom




________________________________________________________________________
________________________________________________________________________

Message: 10
   Date: Thu, 04 Dec 2003 11:03:25 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

> o There is some hint that clearerr defined as a macro by the OS is A 
> Bad Thing. This is the case for VxWorks, but does not seem to hurt 
> compilation. Comments?

I see that there is some code in or around OS.h intended to handle the 
clearerr-as-macro case which was modified after first use of 
ACE_LACKS_CLEARERR with VxWorks. So perhaps the issue is moot for at 
least the most recent releases of TAO and VxWorks.

                               - Tom




________________________________________________________________________
________________________________________________________________________

Message: 11
   Date: Thu, 4 Dec 2003 18:23:29 +0100
   From: "Johnny Willemsen" <[EMAIL PROTECTED]>
Subject: RE: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

Hi,

Thanks for the info. I will have a look in detail tomorrow. I would propose
to use ACE_VXWORKS as the define to check on the right version. 0x540 is
then Tornado 2.0 with gcc 2.7.2, 0x542 is Tornado 2.1 (or whatever windriver
called it) but is has gcc 2.9.6 and 0x550 is VxWorks 5.5, I only don't know
what VxWorks AE is then?

Johnny

> -----Original Message-----
> From: Thomas Lockhart [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, December 04, 2003 7:44 PM
> To: Johnny Willemsen
> Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: [ace-bugs] Re: ACE_LACKS_CLEARERR for Tornado 
> 2.2.x and g++
> 
> >
> >
> >When I remember correctly there has been a 0x542 release for 
> some platforms
> >that shipped with gcc-2.96. Only 0x540 is VxWorks 5.4 and is 
> shipped with
> >2.7.x which we don't support anymore.
> >  
> >
> Well, Wind River isn't helping us much by having that mysterious 2.1 
> series, but here is what I see in my installations. They 
> presumably have 
> some patches applied (per WRS tradition, we sometimes only find out 
> about available patches if we have a problem, so the patching is 
> probably minimal).
> 
>  From our Tornado 2.0 installation (in target/h/version.h):
> #define VXWORKS_VERSION "5.4"
> g++ppc --version
> cygnus-2.7.2-960126 egcs-971225 tornado 2.0
> 
>  From our Tornado 2.0.2 installation (still the 2.7.x/egcs compiler):
> #define VXWORKS_VERSION "5.4.2"
> g++ppc --version
> cygnus-2.7.2-960126 egcs-971225 tornado 2.0
> 
>  From our Tornado 2.2 installation (!! note bump in version 
> convention):
> #define RUNTIME_NAME "VxWorks"
> #define RUNTIME_VERSION "5.5.1"
> #define VXWORKS_VERSION RUNTIME_NAME RUNTIME_VERSION
> g++ppc --version
> gcc-2.96
> 
>  From our Tornado 2.2.1 installation:
> #define RUNTIME_NAME "VxWorks"
> #define RUNTIME_VERSION "5.5.1"
> #define VXWORKS_VERSION RUNTIME_NAME RUNTIME_VERSION
> g++ppc --version
> gcc-2.96
> 
> The gap I have is with the conventions for Tornado 2.1.x. I'm 
> guessing 
> that it may claim to be "5.5" and has a compiler claiming to 
> be some rev 
> of 2.96. Does anyone have something they could look at?
> 
>                                            - Tom
> 
> >Oh, on the VxWorks/Tornado versioning:
> >o VxWorks 0x55* corresponds to the Tornado 2.2 series, shipped with
> >something resembling gcc-2.96.
> >o VxWorks 0x54* corresponds to the Tornado 2.0 series, 
> shipped with 2.7.x
> >claiming "egcs patches". That entire series (and earlier) is 
> no longer
> >supported by TAO afaict due to namespace troubles. It has 
> exception troubles
> >too, but using non-native exceptions should be OK for that part.
> >o I'm not sure how the Tornado 2.1 series was labeled wrt 
> VxWorks, since it
> >did not make it into general release and we never got our 
> hands on a copy
> >(the reps said it was too buggy on non-Altivec processors to 
> bother with).
> >  
> >
> 
> 



________________________________________________________________________
________________________________________________________________________

Message: 12
   Date: Thu, 04 Dec 2003 11:47:24 -0800
   From: Thomas Lockhart <[EMAIL PROTECTED]>
Subject: Re: Re: ACE_LACKS_CLEARERR for Tornado 2.2.x and g++

>
>
>Thanks for the info. I will have a look in detail tomorrow. I would propose
>to use ACE_VXWORKS as the define to check on the right version. 0x540 is
>then Tornado 2.0 with gcc 2.7.2, 0x542 is Tornado 2.1 (or whatever windriver
>called it) but is has gcc 2.9.6 and 0x550 is VxWorks 5.5, I only don't know
>what VxWorks AE is then?
>  
>
OK, though I would like to really confirm that Tornado 2.1.x shipped 
with a VxWorks claiming to be 5.4.2, since Tornado 2.0.2 shipped with 
the same ^%&* VxWorks version number. In any case, let's get some 
comments at the top of the platform support file so we don't have to 
think this through again :/

I don't know about AE, though I could look around and see if I can find 
anyone using it.

                                - Tom




________________________________________________________________________
________________________________________________________________________



Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 



--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to