[mercury-users] mercury-10.04.1 bootstrap failing (under parallel make)

Julien Fischer juliensf at csse.unimelb.edu.au
Tue Sep 14 15:31:03 AEST 2010


On Mon, 13 Sep 2010, Keri Harris wrote:

> I've run into a hitch when bootstrapping mercury-10.04.1 on a linux-sparc box.
> I'm attempting to bootstrap with mercury-10.04 where all C files need to be
> rebuilt; I'm running a parallel compile with 32 submakes (it's a fast machine
> :-)). It looks like building mercury_compile is failing due to race between
> mmc generating .mih files and mgnuc compiling .c files that include the .mih
> files.

I don't think we've ever tried it with that many jobs.

> >From './configure':
> looking for an already installed Mercury compiler to bootstrap with...
> checking for mmc... /usr/bin/mmc
> checking whether the above mmc works and is sufficiently recent... yes
> ...
> checking whether any C files need to be rebuilt...
> there are no existing Mercury-generated C files
> >From 'make':
> /usr/bin/mmc --compile-to-c --grade hlc.gc      --mercury-linkage static --
> flags COMP_FLAGS      transform_hlds.term_constr_data >
> transform_hlds.term_constr_data.err 2>&1
> /usr/bin/mmc --compile-to-c --grade hlc.gc      --mercury-linkage static --
> flags COMP_FLAGS      transform_hlds.term_constr_main >
> transform_hlds.term_constr_main.err 2>&1
> /usr/bin/mmc --compile-to-c --grade hlc.gc      --mercury-linkage static --
> flags COMP_FLAGS      transform_hlds.term_errors >
> transform_hlds.term_errors.err 2>&1
> ...
> ../scripts/mgnuc --grade hlc.gc        --      -c analysis.c -o analysis.o
> analysis.c:116:47: error: transform_hlds.term_constr_data.mih: No such file or
> directory
> analysis.c:118:47: error: transform_hlds.term_constr_main.mih: No such file or
> directory
> analysis.c:119:42: error: transform_hlds.term_errors.mih: No such file or
> directory
> ....
> Without dialing things down to -j1, is there much I can do to workaround this
> problem?

You could try -j8; I regularly build the compiler with that and have
never encountered the above problem.

Another possibility would be to use mmc --make to build the parts of the
compiler written in Mercury, (You can do this by invoking mmake with
the --use-mmc-make option), although I'm not sure whether mmc --make
inherits the -j option from mmake.

I've entered this one into the bug database; it's #164.

mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list