octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #54308] xerbla.c/xerbla.cc compilation error


From: Mike Miller
Subject: [Octave-bug-tracker] [bug #54308] xerbla.c/xerbla.cc compilation error
Date: Fri, 13 Jul 2018 14:54:30 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0

Update of bug #54308 (project octave):

                  Status:                    None => Invalid                
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #3:

Not an error.

I encountered the same exact symptom on 'hg pull && hg up @ && make all'. This
will happen any time a source file extension is changed and you are building
in a partially or previously built directory.

For a complete understanding, you have to know a bit about the autotools build
system.

As a side effect of compiling xerbla.c, GCC creates a dependency file, which
is just a text file listing all of the include files that xerbla.c included
during its compilation stage. This file is included in the makefile, so the
build system knows if a particular .h file is updated, this one particular
object file needs to be recompiled.

The dependency file is called
'liboctave/external/blas-xtra/.deps/liboctave_external_blas_xtra_libxerbla_la-xerbla.Plo'.
Notice that the file name would be the same if it were a .c file, a .cc file,
or a .cpp file.

So when you have an already-built tree, this dependency file has text
basically saying that xerbla.o comes from xerbla.c.

The minimal amount of work you need to do to resolve this is to blank the
contents of the dependency file snippet. I did this with


echo '#' >
liboctave/external/blas-xtra/.deps/liboctave_external_blas_xtra_libxerbla_la-xerbla.Plo


and 'make all' ran fine after that.

If this kind of auto-magic logic bothers you, you can disable automatic
dependency generation with './configure --disable-dependency-tracking'.

But that also means you can't simply touch a header file and expect that
everything will be built that needs to be built, you'll probably have to do
'make clean && make all' more often.

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?54308>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]