Bug 29721 - rpm 4.0.2 various compile problems in db3.c
rpm 4.0.2 various compile problems in db3.c
Status: CLOSED RAWHIDE
Product: Red Hat Linux
Classification: Retired
Component: rpm (Show other bugs)
7.3
alpha Linux
medium Severity medium
: ---
: ---
Assigned To: Jeff Johnson
David Lawrence
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-02-27 02:51 EST by Red Hat Bugzilla
Modified: 2008-03-13 15:18 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-04-03 08:06:15 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Red Hat Bugzilla 2001-02-27 02:51:11 EST
From Bugzilla Helper:
User-Agent: Mozilla/4.72 [en] (X11; U; OSF1 V5.0 alpha)


Whether or not the patch detailed in bug report #29719 is applied, if I try
compiled rpm 4.0.2 with Berkeley DB 3.2.9 on alpha-dec-osf, I get compile
errors,
like such:

cc: Error: db3.c, line 141: In this statement, "dbenv->remove" expects 3
arguments, but 4 are supplied. (toomanyargs)
        xx = dbenv->remove(dbenv, dbhome, NULL, 0);
-------------^
cc: Error: db3.c, line 219: In this statement, "set_func_fsync" is not a
member of "dbenv". (needmember)
        xx = dbenv->set_func_fsync(dbenv, db3_fsync_disable);
-------------^
cc: Error: db3.c, line 237: In this statement, "dbenv->open" expects 4
arguments, but 5 are supplied. (toomanyargs)
    rc = dbenv->open(dbenv, dbhome, NULL, eflags, dbi->dbi_perms);
---------^


Reproducible: Always
Steps to Reproduce:
0. install Berkeley DB 3.2.9
1. set CFLAGS and CPPFLAGS such that rpm's configure can find both the lib
and the include file, db.h
2. configure; make

checking the db.h that comes with my Berkeley DB 3.2.9, it does indeed
appear that rpm is invoking the functions mentioned above with an incorrect
# of
arguments. In each case flagged above, it looks like there is one too many
arguments.

In the __db_env struct from 3.2.9, I do see "methods" prototyped,
including:

    int  (*open) __P((DB_ENV *, const char *, u_int32_t, int));
    int  (*remove) __P((DB_ENV *, const char *, u_int32_t));

There is no prototype for a function named set_func_fsync that's part of
struct __db_env, though there *is* later a function prototype for:

int   db_env_set_func_fsync __P((int (*)(int)));


I'm wondering if the API changed between the version that RPM was coded
against and version 3.2.x?
Comment 1 Red Hat Bugzilla 2001-02-27 09:15:42 EST
No support for db-3.2.9 yet, use db-3.1.17.

Deferred until then.
Comment 2 Red Hat Bugzilla 2001-04-03 08:07:46 EDT
db-3.2.9 changes should be on the rpm-4_0 branch from CVS.

In fact db-3.2.9 is also included as part of rpm sources, although I still need
to wire the build.

Note You need to log in before you can comment on or make changes to this bug.