[comp.lang.perl] HELP! Compile errors with patchlevel 36

itkin@mrspoc.Transact.COM (Steven M. List) (10/20/90)

Here I am again.  I REALLY wanna get this built, but it doesn't like
me :^<

In hash.c, I get this error:

	gcc -c -fpcc-struct-return -DDEBUGGING -O  hash.c
hash.c: In function hfreeentries:
hash.c:405: incompatible types in assignment
*** Error code 1

The section of the file looks like this:
------------------------------------------------------------------------------
    datum dkey;
    datum nextdkey;
#ifdef NDBM
    DBM *old_dbm;
#else
    int old_dbm;
#endif
#endif

    if (!tb || !tb->tbl_array)
	return;
#ifdef SOME_DBM
    if ((old_dbm = tb->tbl_dbm) && dodbm) {
	while (dkey = dbm_firstkey(tb->tbl_dbm), dkey.dptr) {
	    do {
=>		nextdkey = dbm_nextkey(tb->tbl_dbm, dkey);
		dbm_delete(tb->tbl_dbm,dkey);
		dkey = nextdkey;
	    } while (dkey.dptr);	/* one way or another, this works */
	}
    }
    tb->tbl_dbm = 0;			/* now clear just cache */
#endif
    (void)hiterinit(tb);
    while (hent = hiternext(tb)) {	/* concise but not very efficient */
	hentfree(ohent);
	ohent = hent;
    }
    hentfree(ohent);
#ifdef SOME_DBM
    tb->tbl_dbm = old_dbm;
------------------------------------------------------------------------------
So, it looks like the assignment to nextdkey is the villain.  I've run
and rerun Configure, and it always comes out with ndbm undefined and
odbm defined.  And perl.h defined SOME_DBM when ODBM is defined.  So
this is apparently what Configure thinks should be happening.  Can anyone
help me figure out why GCC is complaining?

Thanks!
-- 
 +----------------------------------------------------------------------------+
 :                Steven List @ Transact Software, Inc. :^>~                  :
 :           Chairman, Unify User Group of Northern California                :
 :     {apple,coherent,limbo,mips,pyramid,ubvax}!itkin@guinan.Transact.COM    :