Archived

This forum has been archived. Please start a new discussion on GitHub.

Make the full version of Ice to run in S3C2410.

There are too many limitation in using the IceE, so I decided to port the full version of Ice to my board, now everything are OK except the Frezze service, it is the problem of the porting of BerkeleyDB.

here is the code from BerkeleyDB documentation,

DbEnv myEnv(0);
try {
myEnv.open(envHome.c_str(), env_flags, 0);
} catch(DbException &e) {
std::cerr << "Error opening database environment: " << envHome << std::endl;
std::cerr << e.what() << std::endl;
exit( -1 );
} catch(std::exception &e) {
std::cerr << "Error opening database environment: " << envHome << std::endl;
std::cerr << e.what() << std::endl;
exit( -1 );
}

but got the following error, do you know what is the problem?

Error opening database environment: ./testEnv
My DbEnv::open: Function not implemented

Comments

  • benoit
    benoit Rennes, France
    Hi,

    It looks like BerkeleyDB is using a system call which is not implemented (or doesn't support some options) on your system. You could try to track down this system call with the debugger... In any case, note that we don't provide support for BerkeleyDB, I would recommend to check with Sleepycat for information regarding this issue.

    Cheers,

    Benoit.
  • The error occurs in env_open.c

    /*
    * Create/join the environment. We pass in the flags that will be of
    * interest to an environment joining later; if we're not the ones to
    * do the create, we pull out whatever has been stored.
    */
    init_flags = 0;
    if (LF_ISSET(DB_INIT_CDB))
    FLD_SET(init_flags, DB_INITENV_CDB);
    if (LF_ISSET(DB_INIT_LOCK))
    FLD_SET(init_flags, DB_INITENV_LOCK);
    if (LF_ISSET(DB_INIT_LOG))
    FLD_SET(init_flags, DB_INITENV_LOG);
    if (LF_ISSET(DB_INIT_MPOOL))
    FLD_SET(init_flags, DB_INITENV_MPOOL);
    if (LF_ISSET(DB_INIT_REP))
    FLD_SET(init_flags, DB_INITENV_REP);
    if (LF_ISSET(DB_INIT_TXN))
    FLD_SET(init_flags, DB_INITENV_TXN);
    if (F_ISSET(dbenv, DB_ENV_CDB_ALLDB))
    FLD_SET(init_flags, DB_INITENV_CDB_ALLDB);
    if ((ret = __db_e_attach(dbenv, &init_flags)) != 0)
    goto err;

    __db_e_attach return error.
  • bernard
    bernard Jupiter, FL
    I'd recommend to post this question to the comp.databases.berkeley-db newsgroup.

    Cheers,
    Bernard
  • I got help from the google group to fix this problem, now all of the Ice Full Version can be run in my board NOW!!!