plplot fails to build on maverick

Bug #635840 reported by Matthias Klose
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
gcc-4.4 (Ubuntu)
Fix Released
High
Unassigned
Maverick
Fix Released
High
Unassigned
gcc-4.5 (Ubuntu)
Fix Released
Undecided
Unassigned
Maverick
Fix Released
Undecided
Unassigned
plplot (Ubuntu)
Invalid
High
Unassigned
Maverick
Invalid
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.

Revision history for this message
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
Revision history for this message
Oliver Grawert (ogra) wrote :

david, can you please look into this

Changed in plplot (Ubuntu Maverick):
assignee: nobody → David Sugar (dyfet)
Revision history for this message
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)
Changed in plplot (Ubuntu Maverick):
milestone: ubuntu-10.10 → maverick-updates
Revision history for this message
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.

Revision history for this message
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
Revision history for this message
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

Revision history for this message
Matthias Klose (doko) wrote :

not seen with 4.4 in lucid

Matthias Klose (doko)
Changed in plplot (Ubuntu Maverick):
status: Confirmed → Invalid
Revision history for this message
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
Revision history for this message
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
Revision history for this message
Matthias Klose (doko) wrote :

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

Changed in plplot (Ubuntu Maverick):
status: Confirmed → Invalid
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.