Jindo,

there seems to be a compiler bug in pgcc. I was able
to get it working by adding some dummy code in function
dict_hdr_get_new_id in file
mysql/innobase/include/dict0boot.ic

Below is a new body for the function. I added a dummy
if in the middle of the the body and then it started to
work. Also run-all-tests --small-test --small-tables
--create-options=type=innodb

worked. But I guess that pgcc is not maintained too
actively, and using the ordinary gcc would be better.

Regards,

Heikki
http://www.innodb.com
............
{
        dict_hdr_t*     dict_hdr;
        dulint          id;
        mtr_t           mtr;

        ut_ad((type == DICT_HDR_TABLE_ID) || (type == DICT_HDR_INDEX_ID)
              || (type == DICT_HDR_MIX_ID));

        mtr_start(&mtr);

        dict_hdr = dict_hdr_get(&mtr);

        id = mtr_read_dulint(dict_hdr + type, MLOG_8BYTES, &mtr);

        /* We insert here dummy code because pgcc seems to compile
           wrong otherwise */
        if (ut_dulint_cmp(id, ut_dulint_max) == 0) {
                  printf("Max id\n");
        }

        id = ut_dulint_add(id, 1);

        mlog_write_dulint(dict_hdr + type, id, MLOG_8BYTES, &mtr);

        mtr_commit(&mtr);

        return(id);
}
..............

>Hi,
>
>Has anyone been able to build MySQL 4.0 source using pgcc?
>I tried for several hours with different setting in each try without any
success.
>MySQL 4.0 alpha does compile, but it refuses to start, dumping the same
>error output each time such attempt is made:
>******* Being error output *******
>InnoDB: The first specified data file /usr/local/mysql/data/ibdata1 did not
exist:
>InnoDB: a new database to be created!
>InnoDB: Setting file /usr/local/mysql/data/ibdata1 size to 67108864
>InnoDB: Database physically writes the file full: wait...
>InnoDB: Log file /usr/local/mysql/data/ib_logfile0 did not exist: new to be
created
>InnoDB: Setting log file /usr/local/mysql/data/ib_logfile0 size to 5242880
>InnoDB: Log file /usr/local/mysql/data/ib_logfile1 did not exist: new to be
created
>InnoDB: Setting log file /usr/local/mysql/data/ib_logfile1 size to 5242880
>InnoDB: Doublewrite buffer not found: creating new
>InnoDB: Doublewrite buffer created
>InnoDB: creating foreign key constraint system tables
>InnoDB: Assertion failure in thread 1024 in file dict0crea.c line 1115
>InnoDB: We intentionally generate a memory trap.
>InnoDB: Send a detailed bug report to [EMAIL PROTECTED] got
signal 11;
>This could be because you hit a bug. It is also possible that this binary
>or one of the libraries it was linked against is corrupt, improperly built,
>or misconfigured. This error can also be caused by malfunctioning hardware.
>We will try our best to scrape up some info that will hopefully help diagnose
>the problem, but since we have already crashed, something is definitely wrong
>and this may fail.




---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to