plplot fails to build on maverick

Bug #635840 reported by Matthias Klose on 2010-09-11
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
gcc-4.4 (Ubuntu)
High
Unassigned
Maverick
High
Unassigned
gcc-4.5 (Ubuntu)
Undecided
Unassigned
Maverick
Undecided
Unassigned
plplot (Ubuntu)
High
Unassigned
Maverick
High
Unassigned

Bug Description

see https://launchpad.net/ubuntu/+source/plplot/5.9.5-4ubuntu1

same build failure, if you build 5.9.5-3 in maverick.

building with VERBOSE=1 (which should be the default), you'll see:

make[3]: Entering directory `/scratch/packages/tmp/plplot-5.9.5/debian/build_tmp'
/usr/bin/cmake -E cmake_progress_report /scratch/packages/tmp/plplot-5.9.5/debian/build_tmp/CMakeFiles
[ 16%] Generating plplot_octave.cc, tmp_stub
cd /scratch/packages/tmp/plplot-5.9.5/debian/build_tmp/bindings/octave && /usr/bin/perl -I/scratch/packages/tmp/plplot-5.9.5/bindings/octave/matwrap /scratch/packages/tmp/plplot-5.9.5/bindings/octave/matwrap/matwrap -language octave -o plplot_octave.cc -stub tmp_stub -cpp_ignore /scratch/packages/tmp/plplot-5.9.5/bindings/octave -cpp_ignore /scratch/packages/tmp/plplot-5.9.5/bindings/octave/plplot_octave_rej.h -cpp /usr/bin/gcc -D__builtin_va_list=void -E -I/scratch/packages/tmp/plplot-5.9.5/bindings/octave -I/scratch/packages/tmp/plplot-5.9.5/debian/build_tmp/bindings/octave -C plplot_octave.h
Warning: unrecognized text:

__extension__
__extension__
__extension__
__extension__

make[3]: *** [bindings/octave/plplot_octave.cc] Error 9
make[3]: Leaving directory `/scratch/packages/tmp/plplot-5.9.5/debian/build_tmp'
make[2]: *** [bindings/octave/CMakeFiles/plplot_octave_oct_file.dir/all] Error 2

found http://<email address hidden>/msg00792.html
but the package already is built in a separate directory.

Matthias Klose (doko) wrote :

universe, but has somre reverse dependencies and build depenencies

Changed in plplot (Ubuntu):
importance: Undecided → High
milestone: none → ubuntu-10.10
status: New → Confirmed
Oliver Grawert (ogra) wrote :

david, can you please look into this

Changed in plplot (Ubuntu Maverick):
assignee: nobody → David Sugar (dyfet)
Matthias Klose (doko) wrote :

the above log is from the i386 build,

so, passing -D__extension__= to the matwrap call goes a bit further, and I then see the same failure from the amd64 build:

[ 16%] Generating plplot_octave.cc, tmp_stub
unrecognized type 'struct _IO_FILE '
make[3]: *** [bindings/octave/plplot_octave.cc] Error 9

this seems to come from /usr/include/stdio.h:
/* Define outside of namespace so the C++ is happy. */
struct _IO_FILE;

commenting out this forward declaration, we go further until:

unrecognized type '__'
Warning: unrecognized text:

enum __codecvt_result
{ ... };
struct _IO_FILE { ... }
Warning: unrecognized text:
extern int fprintf (FILE *__restrict __stream,
      __const char *__restrict __format, ...);
extern int printf (__const char *__restrict __format, ...);
extern int sprintf (char *__restrict __s,
      __const char *__restrict __format, ...) extern int snprintf (char *__restrict __s, size_t __maxlen,
       __const char *__restrict __format, ...)
     extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
     ;
extern int fscanf (FILE *__restrict __stream,
     __const char *__restrict __format, ...) ;
extern int scanf (__const char *__restrict __format, ...) ;
extern int sscanf (__const char *__restrict __s,
     __const char *__restrict __format, ...) ;
extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf") ;
extern int scanf (__const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf") ;
extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
     ;
extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
     ;
extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__))

Warning: unrecognized text:

extern __const char *__const sys_errlist[];

Warning: unrecognized text:

union wait
  { ... };

so still one unrecognized type, and some more unrecognized text.

Oliver Grawert (ogra) on 2010-09-23
Changed in plplot (Ubuntu Maverick):
milestone: ubuntu-10.10 → maverick-updates
Andrew Ross (andrewross) wrote :

I believe this is actually a bug in the gcc-4.4 packages. After much debugging in turns out that the search path in gcc version 4.4.4-14ubuntu4 includes an extra leading slash, and so the path to system headers comes out as something like //usr/include/stdio.h rather than /usr/include/stdio.h. This confuses the matwrap perl script in plplot which generates the octave bindings. It tries to filter out system headers, but fails in this case. I can bodge this in plplot by modifying the matwrap script to add //usr/include as well for all occurences of /usr/include, but I think the proper solution is to fix the gcc standard search paths.

Matthias Klose (doko) wrote :

gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4)
COLLECT_GCC_OPTIONS='-E' '-H' '-v' '-mtune=generic' '-march=i686'
 /usr/lib/gcc/i686-linux-gnu/4.4.5/cc1 -E -quiet -v -H foo.c -D_FORTIFY_SOURCE=2 -mtune=generic -march=i686 -fstack-protector
ignoring nonexistent directory "//usr/local/include/i686-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../i686-linux-gnu/include"
ignoring nonexistent directory "//usr/include/i686-linux-gnu"
#include "..." search starts here:
#include <...> search starts here:
 //usr/local/include
 /usr/lib/gcc/i686-linux-gnu/4.4.5/include
 /usr/lib/gcc/i686-linux-gnu/4.4.5/include-fixed
 //usr/include
End of search list.

now looking where this was introduced. Not seen with the current 4.4 and 4.5 in Debian unstable

Changed in gcc-4.4 (Ubuntu Maverick):
importance: Undecided → High
milestone: none → maverick-updates
status: New → Confirmed
Changed in gcc-4.5 (Ubuntu Maverick):
status: New → Confirmed
Matthias Klose (doko) wrote :

the workaround suggested by Andrew doesn't work yet:

[ 12%] Generating plplot_octave.oct
In file included from //usr/include/hdf5.h:24,
                 from /usr/include/octave-3.2.4/octave/oct-hdf5.h:32,
                 from /usr/include/octave-3.2.4/octave/ov.h:43,
                 from /usr/include/octave-3.2.4/octave/oct-obj.h:35,
                 from /usr/include/octave-3.2.4/octave/ov-fcn.h:33,
                 from /usr/include/octave-3.2.4/octave/ov-builtin.h:29,
                 from /usr/include/octave-3.2.4/octave/defun-int.h:29,
                 from /usr/include/octave-3.2.4/octave/defun-dld.h:31,
                 from /usr/include/octave-3.2.4/octave/oct.h:36,
                 from /scratch/packages/tmp/plplot-5.9.5/debian/build_tmp/bindings/octave/plplot_octave.cc:11:
//usr/include/H5public.h:57: fatal error: mpi.h: No such file or directory
compilation terminated.
make[3]: *** [bindings/octave/plplot_octave.oct] Error 1

Matthias Klose (doko) wrote :

not seen with 4.4 in lucid

Matthias Klose (doko) on 2010-09-27
Changed in plplot (Ubuntu Maverick):
status: Confirmed → Invalid
Matthias Klose (doko) wrote :

now the plplot build fails correctly with:

[ 12%] Generating plplot_octave.oct
In file included from /usr/include/hdf5.h:24,
                 from /usr/include/octave-3.2.4/octave/oct-hdf5.h:32,
                 from /usr/include/octave-3.2.4/octave/ov.h:43,
                 from /usr/include/octave-3.2.4/octave/oct-obj.h:35,
                 from /usr/include/octave-3.2.4/octave/ov-fcn.h:33,
                 from /usr/include/octave-3.2.4/octave/ov-builtin.h:29,
                 from /usr/include/octave-3.2.4/octave/defun-int.h:29,
                 from /usr/include/octave-3.2.4/octave/defun-dld.h:31,
                 from /usr/include/octave-3.2.4/octave/oct.h:36,
                 from /scratch/packages/tmp/plplot-5.9.5/debian/build_tmp/bindings/octave/plplot_octave.cc:11:
/usr/include/H5public.h:57: fatal error: mpi.h: No such file or directory
compilation terminated.
make[3]: *** [bindings/octave/plplot_octave.oct] Error 1

Changed in plplot (Ubuntu Maverick):
status: Invalid → Confirmed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gcc-4.4 - 4.4.4-14ubuntu5

---------------
gcc-4.4 (4.4.4-14ubuntu5) maverick; urgency=low

  * Avoid include paths starting with a double slash. LP: #635840.
 -- Matthias Klose <email address hidden> Mon, 27 Sep 2010 16:00:29 +0200

Changed in gcc-4.4 (Ubuntu Maverick):
status: Confirmed → Fix Released
Matthias Klose (doko) wrote :

tracking the build failure from comment #8 in bug #649074

Changed in plplot (Ubuntu Maverick):
status: Confirmed → Invalid
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gcc-4.5 - 4.5.1-7ubuntu2

---------------
gcc-4.5 (4.5.1-7ubuntu2) maverick; urgency=low

  * Avoid include paths starting with a double slash. LP: #635840.
 -- Matthias Klose <email address hidden> Mon, 27 Sep 2010 18:39:32 +0200

Changed in gcc-4.5 (Ubuntu Maverick):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers