Changes in pegasus 0.97 required to accomodate NSK/OSS platform        RS   05/25/01
===============================================================


pegasus/mak
===========

1.  Add conditional for OSS_NSK_GNU platform in the following files:
    config.mak    library.mak    depend.mak    objects.mak

2.  Add platform file: platform_OSS_NSK_GNU.mak

3.  Separate program.mak into:
    program-unix.mak   program-windows.mak    program-oss.mak

4.  Change program.mak to only contain conditionals


pegasus/src
===========

1.  Add the following include files (from the Win2000 C++ environment):
    cstring  cstddef  cctype  cstdlib  cstdio  cassert malloc.h


pegasus/src/Pegasus/Common 
==========================

1.  Add conditional for OSS_NSK_GNU in Config.h

2.  Add file Platform_OSS_NSK_GNU.h

3.  Change in FileSystem.cpp  line 240   return (is != 0);
    replace with:  if (is) return true; else return false;
    [ OSS compiler has problem with ambiguous operator ]

4.  Change in Array.h:  "friend CIMValue;"  to "friend class CIMValue;"
    [this will eliminate compiler warnings ]

5.  Change in SystemUnix.cpp: #ifndef PEGASUS_OS_OSS around #define dfcn.h,
    dlopen statement, and dlsym statement. Return NULL for OSS instead.


pegasus/src/Pegasus/Compiler
============================

1.  cimmofRepository.h:  when ftp'ed to OSS, contains extra CRs at the end of each line (^M)

2.  cimmofParser.h:  add "#define _OPEN_SOURCE_EXTENDED 1" to cover strdup function

3.  cimmofParser.cpp:  problem found in cimmofParser::setRepository. The AlreadyExists
    exception is never caught. Because createNameSpace in NamespaceManager.cpp (Repository)
    throws a CIMException::ALREADY_EXISTS, a general CIM Exception is detected instead.
    
    Solution:

    try {
           _repository->createNameSpace(s);
         } catch(AlreadyExists &) {
           // OK, that's what we expect     --> never caught
         } catch(CIMException &e) {    --> changed Exception to CIMException
           if (e.getCode() != CIMException::ALREADY_EXISTS) {    --> added this line
           arglist.append(s);
           arglist.append(e.getMessage());
           cimmofMessages::getMessage(message,
                                      cimmofMessages::NAMESPACE_CREATE_ERROR,
                                      arglist);
           elog(message);
           return false;
         } }  --> added closing bracket


pegasus/src/Pegasus/Compiler/cmdline
====================================

1.  Change in cmdline.cpp:  line 91    change "while (ifs != 0)" to "while (ifs)"
    [OSS compiler has problem with ambiguous operator]

2.  Add "char cimmof_text[1000]"  in main.cpp after #define NAMESPACE_ROOT.
    This buffer is required by cimmof_tab.cpp. An undefined external will result
    without it. Caution: find out first why this didn't cause a problem in the
    Windows/Unix environments.
     








Issues
======

1.  Need to find a way to produce cimmof_lex.cpp under OSS. Currently it is built under the
    Windows environment and copied to OSS. 

2.  What is bison.simple used for ?





              