Uploaded image for project: 'C++ Standard Library'
  1. C++ Standard Library
  2. STDCXX-1045

[OpenSolaris] compilation errors on madvise

    XMLWordPrintableJSON

Details

    • Bug
    • Status: In Progress
    • Major
    • Resolution: Unresolved
    • 4.2.1
    • 4.2.2
    • Build and Installation
    • None
    • Compiler Error

    Description

      From Ben's email below it sounds as though we need a test for posix_madvise and use it in favor of alternatives such as madvise when it's available:

      -------- Original Message --------
      Subject: madvise on Solaris
      Date: Fri, 18 Dec 2009 18:00:30 +0000
      From: John Taylor <xxx@xxx.xxx>
      To: msebor AT gmail.com

      [...]
      Anyway, I build stdcxx-4.2.1 on Solaris 10 and SXCE.

      I notice that madvise doesn't get recognized, due to how the
      function is defined. Not a problem. Opensolaris, and late
      versions of SXCE, have introduced a function wrapper called
      posix_madvise, which basically wraps the madvise function
      so that it's more palletable to the C++ compiler.

      In line 134 of src/memattr.cpp, there's a comment that I don't really
      understand,
      nor can I find any reference to the "unreliable" comment via google or stdcxx
      lists.

      #  ifdef _RWSTD_OS_SUNOS
      
              char dummy = '\0';
      
              // on Solaris use mincore() instead of madvise() since
              // the latter is unreliable
      

      I admit to not being a very experience c/c++ programmer, but from my
      read of the solaris man pages for mincore and madvise, I'm not
      entirely convinced that this is a better work around. Does anyone really
      know what this "unreliable" means?

      Would it be appropriate to "duplicate" Sun's wrapper for S10 and
      SXCE/OSOL which don't have posix_madvise (given it's CDDL license
      status) and use posix_madvise where approrpriate?

      Attachments

        1. stdcxx-4.2.1-memattr.cpp.63.diff
          2 kB
          Martin Sebor
        2. stdcxx-4.2.1-etc-config-src-POSIX_MADVISE.cpp
          1 kB
          Martin Sebor

        Activity

          People

            sebor Martin Sebor
            sebor Martin Sebor
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: