You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2010/07/05 00:44:49 UTC

[jira] Created: (STDCXX-1049) _RWSTD_NO_NATIVE_IO doesn't disable native I/O

_RWSTD_NO_NATIVE_IO doesn't disable native I/O
----------------------------------------------

                 Key: STDCXX-1049
                 URL: https://issues.apache.org/jira/browse/STDCXX-1049
             Project: C++ Standard Library
          Issue Type: Bug
          Components: 27. Input/Output
    Affects Versions: 4.2.1
         Environment: non-POSIX
            Reporter: Martin Sebor
            Assignee: Martin Sebor
            Priority: Minor
             Fix For: 4.2.2


Quoting from the thread [Re: stdcxx and POSIX|http://mail-archives.apache.org/mod_mbox/stdcxx-dev/201006.mbox/%3CDEE44AFE682197449410588EB783A51403635A485A@BUNGLE.Emea.Arm.com%3E]
{quote}
We are trying to use stdcxx library on a environment where POSIX
environment is not available (and it is not a win32 platform), as
a continuation of RoguWave library.  We would like to know if
stdcxx supports it. We have found some occurrences of POSIX
headers and symbols in {{file.cpp}} and {{iostream.cpp}}.  Although
run-time behavior for iostreams can be changed by passing
unofficial extension to openmode {{\_RWSTD_IOS_STDIO}}, but the POSIX
symbols are still present, so the compilation will fail.  There is
{{_RWSTD_NO_NATIVE_IO}} as the {{README}} file says:
{code}
o _RWSTD_NO_NATIVE_IO
[lib, over]
 #defined  to force  file streams  to use  the facilities  of libc
 stdio as opposed to the POSIX I/O interface.
{code}

and here:
{code}
  #ifndef _RWSTD_NO_NATIVE_IO
  # define _RWSTD_INVALID_FILE     -1
  # define _RWSTD_INVALID_OPENMODE -1
  #else
  # define _RWSTD_INVALID_FILE      (FILE*)0
  # define _RWSTD_INVALID_OPENMODE  0
  #endif // _RWSTD_NO_NATIVE_IO
{code}
but that does not to fix the problem at all.

On other side, the initialization routine ({{iostream.cpp}}) uses POSIX
file descriptors and posix calls for std console streams ({{cout}},
{{cin}}, {{cerr}} objects and wchar equivalents), in this case there is no
other way than patching library to replace it with {{stdio.h}} functionality.

To reproduce the problem, on the system where POSIX is not present:
{code}
#include <iostream>
int main() { return 0; }
{code}

Will fail, because we could not compile it, even if we compiled it
excluding files that use POSIX we will get linking errors.  Is
there any chance of solving it in your upstream? We know about the
status of Apache STL.
{quote}

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


[jira] Resolved: (STDCXX-1049) _RWSTD_NO_NATIVE_IO doesn't disable native I/O

Posted by "Martin Sebor (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/STDCXX-1049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Sebor resolved STDCXX-1049.
----------------------------------

    Resolution: Fixed

Resolved with rev [960407|http://svn.apache.org/viewvc?rev=960407&view=rev].
Will merge to 4.3 and 5.0 after the fix has been confirmed.

> _RWSTD_NO_NATIVE_IO doesn't disable native I/O
> ----------------------------------------------
>
>                 Key: STDCXX-1049
>                 URL: https://issues.apache.org/jira/browse/STDCXX-1049
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 27. Input/Output
>    Affects Versions: 4.2.1
>         Environment: non-POSIX
>            Reporter: Martin Sebor
>            Assignee: Martin Sebor
>            Priority: Minor
>             Fix For: 4.2.2
>
>
> Quoting from the thread [Re: stdcxx and POSIX|http://mail-archives.apache.org/mod_mbox/stdcxx-dev/201006.mbox/%3CDEE44AFE682197449410588EB783A51403635A485A@BUNGLE.Emea.Arm.com%3E]
> {quote}
> We are trying to use stdcxx library on a environment where POSIX
> environment is not available (and it is not a win32 platform), as
> a continuation of RoguWave library.  We would like to know if
> stdcxx supports it. We have found some occurrences of POSIX
> headers and symbols in {{file.cpp}} and {{iostream.cpp}}.  Although
> run-time behavior for iostreams can be changed by passing
> unofficial extension to openmode {{\_RWSTD_IOS_STDIO}}, but the POSIX
> symbols are still present, so the compilation will fail.  There is
> {{_RWSTD_NO_NATIVE_IO}} as the {{README}} file says:
> {code}
> o _RWSTD_NO_NATIVE_IO
> [lib, over]
>  #defined  to force  file streams  to use  the facilities  of libc
>  stdio as opposed to the POSIX I/O interface.
> {code}
> and here:
> {code}
>   #ifndef _RWSTD_NO_NATIVE_IO
>   # define _RWSTD_INVALID_FILE     -1
>   # define _RWSTD_INVALID_OPENMODE -1
>   #else
>   # define _RWSTD_INVALID_FILE      (FILE*)0
>   # define _RWSTD_INVALID_OPENMODE  0
>   #endif // _RWSTD_NO_NATIVE_IO
> {code}
> but that does not to fix the problem at all.
> On other side, the initialization routine ({{iostream.cpp}}) uses POSIX
> file descriptors and posix calls for std console streams ({{cout}},
> {{cin}}, {{cerr}} objects and wchar equivalents), in this case there is no
> other way than patching library to replace it with {{stdio.h}} functionality.
> To reproduce the problem, on the system where POSIX is not present:
> {code}
> #include <iostream>
> int main() { return 0; }
> {code}
> Will fail, because we could not compile it, even if we compiled it
> excluding files that use POSIX we will get linking errors.  Is
> there any chance of solving it in your upstream? We know about the
> status of Apache STL.
> {quote}

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