bugGNU Octave - Bugs: bug #37461, incorrect *.df build at first pass

 
 

bug #37461: incorrect *.df build at first pass

Submitted by:  marco atzeri <matzeri>
Submitted on:  Sat 29 Sep 2012 07:50:22 AM UTC  
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Fixed Assigned to:  None
Originator Name:  Open/Closed:  Closed
Release:  dev Operating System:  Any

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

( Jump to the original submission)

Mon 01 Oct 2012 08:28:35 PM UTC, comment #9: 

> Please try updating to changeset 15463:6a05cad5b694 and see if
> the problem is resolved.


Works for me on Fedora 17 x86_64

  PASS     10545
  FAIL         0
  XFAIL        3

Thanks!

Michael Godfrey <godfrey>
Project Member
Mon 01 Oct 2012 03:27:49 PM UTC, comment #8: 

The bug is quite real.  The issue is that the build process pre-generates some files before undergoing the regular compilation.  Certain files, version.h and oct-conf.h, are required by octave.cc.  The rule to build builtin-defun-decls.h, however, was being executed before those two files had been created.  Please try updating to changeset 15463:6a05cad5b694 and see if the problem is resolved.  If that doesn't do it I can write an explicit Make rule to capture this dependency. 

Rik <rik5>
Project Administrator
Mon 01 Oct 2012 12:00:28 PM UTC, comment #7: 

bad_make.log.gz attached.

From fedora 17 x86_64

(file #26673)

Michael Godfrey <godfrey>
Project Member
Mon 01 Oct 2012 06:57:36 AM UTC, comment #6: 

I suspect we are hitting the make version of a "nasal demon"
or in general a make bug.

Running with make -j1 the build stops at my machine on

../../octave/libgui/src/main-window.cc: In member function 'void main_window::exit_callback()':
../../octave/libgui/src/main-window.cc:934:10: error: 'Fquit' was not declared in this scope
../../octave/libgui/qterminal/libqterminal/unix/CharacterColor.h: At global scope:
../../octave/libgui/qterminal/libqterminal/unix/CharacterColor.h:102:54: warning: 'base_color_table' defined but not used
Makefile:3014: recipe for target `src/src_libgui_src_la-main-window.lo' failed
make[3]: *** [src/src_libgui_src_la-main-window.lo] Error 1
make[3]: Leaving directory `/pub/hg/octbld/libgui'

attached full make log.

Comparing the size of df files on two tree builds I see
the only differences in:

-4200 ./libinterp/interpfcn/toplev.df
+104 ./libinterp/interpfcn/toplev.df
-1697 ./libinterp/octave.df
+94 ./libinterp/octave.df
-1071 ./libinterp/parse-tree/lex.df
+102 ./libinterp/parse-tree/lex.df

so the main df are shorter than should be.
libinterp/octave.df
-------------------------------------------
// DO NOT EDIT!  Generated automatically by mkdefs.
 XDEFUN_FILE_NAME ("libinterp/octave.cc")
--------------------------------------------

(file #26672)

marco atzeri <matzeri>
Mon 01 Oct 2012 12:54:20 AM UTC, comment #5: 

This is going to be awfully hard to debug unless someone has a system where this is repeatable.  I can help, but only if I have some data like the output from make during the first pass compile where things are apparently incorrect.  I would suggest capturing the output with the 'tee' command.

make |& tee bad_make.log

Rik <rik5>
Project Administrator
Sun 30 Sep 2012 01:55:08 PM UTC, comment #4: 

This doesn't look like a nasal demon. A nasal demon only occurs when undefined behaviour occurs in C or C++:

http://dictionary.reference.com/browse/nasal+demons

Jordi GutiƩrrez Hermoso <jordigh>
Project Administrator
Sun 30 Sep 2012 04:24:54 AM UTC, comment #3: 

I hope it is just something weird, but there have been a number of reports.  I'm wondering whether there isn't a dependency between the .df files and something else which hasn't been captured in the Makefile.  The first time through building the .df files and whatever the dependency is are built at the same time.  In the second build, the necessary file is in place and the .df files are created correctly.

Rik <rik5>
Project Administrator
Sat 29 Sep 2012 09:44:59 PM UTC, comment #2: 

I also saw this issue on Mageia 2 (Pentium-M) and MinGW, none of them parallel builds.
After the first fix from a fresh clone (rm -f /.df ; rm -f //*.df ) all was OK, also after a new configure.

(Looks like one of Jordi's nasal demons; except that this is seen by a few more souls rather than one)

Philip Nienhuis <philipnienhuis>
Project Member
Sat 29 Sep 2012 07:03:58 PM UTC, comment #1: 

I wonder if the df files are built incorrectly or there is a race condition when using parallel make.  Did you build with 'make -j1' ?  If not could you test the sequence of

hg clone MERCURIAL_REPOSITORY octbld
cd octbld
./bootstrap
./configure
make -j1 |& tee makej1.log

Rik <rik5>
Project Administrator
Sat 29 Sep 2012 07:50:22 AM UTC, original submission:  

as first reported by JuanPi on

https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2012-September/030203.html

still existing (at least on cygwin) on

changeset:   15448:0a0912a9ab6e
tag:         tip
user:        Jordi GutiĆ©rrez Hermoso <jordigh@octave.org>
date:        Thu Sep 27 17:00:45 2012 -0400
summary:     Replace deprecated DiagArray2<T>::diag calls with DiagArray2<T>::extract_diag

../../octave/libinterp/octave-value/ov-usr-fcn.cc:675:42: error: 'Fwarning' was not declared in this scope
Makefile:7781: recipe for target `octave-value/octave_value_liboctave_value_la-ov-usr-fcn.lo' failed
make[3]: *** [octave-value/octave_value_liboctave_value_la-ov-usr-fcn.lo] Error 1

The *.df files are incorrectly built the first time,
is it a wrong sequence on same platform ?

Workaround

$ find . -name "*.df" -delete
$ make

marco atzeri <matzeri>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #26673:  bad_make.log.gz added by godfrey (56KiB - application/x-gzip)
file #26672:  makej1.log.bz2 added by matzeri (50KiB - application/x-bzip2)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Updated the item)
  • -email is unavailable- added by godfrey (Updated the item)
  • -email is unavailable- added by jordigh (Posted a comment)
  • -email is unavailable- added by philipnienhuis (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by matzeri (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.

     

     

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2012-10-03 jwe StatusIn Progress => Fixed
        Open/ClosedOpen => Closed
    2012-10-01 rik5 StatusNeed Info => In Progress
        Operating SystemMicrosoft Windows => Any
    2012-10-01 godfrey Attached File- => Added bad_make.log.gz, #26673
    2012-10-01 matzeri Attached File- => Added makej1.log.bz2, #26672
    2012-09-29 rik5 StatusNone => Need Info

    Back to the top


    Powered by Savane 3.5