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

[OpenSolaris] compilation errors on madvise


    • Type: Bug
    • Status: In Progress
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 4.2.1
    • Fix Version/s: 4.2.2
    • Component/s: Build and Installation
    • Labels:
    • Severity:
      Compiler Error


      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
      nor can I find any reference to the "unreliable" comment via google or stdcxx

      #  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?




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


              • Created: