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

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

[Octave-bug-tracker] [bug #59806] SuiteSparse headers not found


From: anonymous
Subject: [Octave-bug-tracker] [bug #59806] SuiteSparse headers not found
Date: Sun, 3 Jan 2021 00:23:49 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0

URL:
  <https://savannah.gnu.org/bugs/?59806>

                 Summary: SuiteSparse headers not found
                 Project: GNU Octave
            Submitted by: None
            Submitted on: Sun 03 Jan 2021 05:23:47 AM UTC
                Category: Configuration and Build System
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Build Failure
                  Status: None
             Assigned to: None
         Originator Name: Kyle Guinn
        Originator Email: elyk03@gmail.com
             Open/Closed: Open
                 Release: 6.1.0
         Discussion Lock: Any
        Operating System: GNU/Linux

    _______________________________________________________

Details:


/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -std=gnu++11 -DHAVE_CONFIG_H
-I.  -Iliboctave -I./liboctave -I./liboctave/array -Iliboctave/numeric
-I./liboctave/numeric -Iliboctave/operators -I./liboctave/operators
-I./liboctave/system -I./liboctave/util -I./libinterp/octave-value -Ilibinterp
-I./libinterp -I./libinterp/operators -Ilibinterp/parse-tree
-I./libinterp/parse-tree -Ilibinterp/corefcn -I./libinterp/corefcn
-I./liboctave/wrappers  -I/usr/include/ImageMagick-6  -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16
-I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include     -fPIC -pthread
-fopenmp -Wall -W -Wshadow -Woverloaded-virtual -Wold-style-cast -Wformat
-Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual -O2 -fPIC -c -o
libinterp/corefcn/libinterp_corefcn_libcorefcn_la-amd.lo `test -f
'libinterp/corefcn/amd.cc' || echo './'`libinterp/corefcn/amd.cc
libtool: compile:  g++ -std=gnu++11 -DHAVE_CONFIG_H -I. -Iliboctave
-I./liboctave -I./liboctave/array -Iliboctave/numeric -I./liboctave/numeric
-Iliboctave/operators -I./liboctave/operators -I./liboctave/system
-I./liboctave/util -I./libinterp/octave-value -Ilibinterp -I./libinterp
-I./libinterp/operators -Ilibinterp/parse-tree -I./libinterp/parse-tree
-Ilibinterp/corefcn -I./libinterp/corefcn -I./liboctave/wrappers
-I/usr/include/ImageMagick-6 -I/usr/include/freetype2 -I/usr/include/libpng16
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2
-I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -fPIC -pthread -fopenmp -Wall -W -Wshadow
-Woverloaded-virtual -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings
-Wcast-align -Wcast-qual -O2 -fPIC -c libinterp/corefcn/amd.cc  -fPIC -DPIC -o
libinterp/corefcn/.libs/libinterp_corefcn_libcorefcn_la-amd.o
In file included from ./liboctave/util/oct-sparse.h:86:0,
                 from libinterp/corefcn/amd.cc:39:
/usr/include/umfpack/umfpack.h:89:17: fatal error: amd.h: No such file or
directory


None of the SuiteSparse CPPFLAGS appear in those commands.  Likely related to
the changes in bug #57459, I don't think the flags are being applied with the
files in their new location.  Here are my relevant flags (all derived from
pkg-config):


  AMD CPPFLAGS:                  -I/usr/include/amd
  CAMD CPPFLAGS:                 -I/usr/include/camd
  CCOLAMD CPPFLAGS:              -I/usr/include/ccolamd
  CHOLMOD CPPFLAGS:              -I/usr/include/cholmod -I/usr/include/amd
-I/usr/include/colamd -I/usr/include/camd -I/usr/include/ccolamd
-I/usr/include/metis
  COLAMD CPPFLAGS:               -I/usr/include/colamd
  CXSPARSE CPPFLAGS:             -I/usr/include/cxsparse
  KLU CPPFLAGS:                  -I/usr/include/klu -I/usr/include/amd
-I/usr/include/colamd -I/usr/include/btf
  UMFPACK CPPFLAGS:              -I/usr/include/umfpack -I/usr/include/cholmod
-I/usr/include/amd -I/usr/include/colamd -I/usr/include/camd
-I/usr/include/ccolamd -I/usr/include/metis


Quick fix is to add $(AMD_CPPFLAGS) (at a minimum, $(SPARSE_XCPPFLAGS) is
probably better) to the libcorefcn.la target.  I'm not sure if any others are
needed, I see references to $(ARPACK_CPPFLAGS) and $(QRUPDATE_CPPFLAGS) that
also disappeared during the move.

But there's something else going on that makes it fragile.  It appears the
SuiteSparse header search is done without considering those CPPFLAGS variables
given above, or it's not giving them priority.  So on my system it's
preferring to use <amd/amd.h>, <umfpack/umfpack.h>, etc. just from finding
them with /usr/include as the default search path.  (Things like
HAVE_AMD_AMD_H are set in config.h.)  Then when umfpack.h includes a bare
"amd.h" without specifying a directory, the missing -I flags cause it to fail.
 If <amd.h>, etc. was preferred instead, maybe it would have failed earlier or
more often since it's not in any default search path.




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?59806>

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




reply via email to

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