Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [RFA] Build failure fix: Python troubles on non-python targets...
@ 2009-05-28 10:03 Pierre Muller
  2009-05-28 14:56 ` Paul Pluzhnikov
  2009-05-28 15:38 ` Tom Tromey
  0 siblings, 2 replies; 7+ messages in thread
From: Pierre Muller @ 2009-05-28 10:03 UTC (permalink / raw)
  To: gdb-patches

On DJGPP,
I now get this failure:
gcc -gstabs+ -O0 -I../../purecvs/gdb/config/djgpp     \
        -o gdb.exe gdb.o libgdb.a \
           ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a
..
/libiberty/libiberty.a ../libdecnumber/libdecnumber.a -ldbg   -lm
../libiberty/
libiberty.a  gnulib/libgnu.a
libgdb.a(valprint.o): In function `val_print':
e:/cygwin/usr/local/src/gdbcvs/djcvsbuild2/gdb/../../purecvs/gdb/valprint.c:
292:
 undefined reference to `_apply_val_pretty_printer'
libgdb.a(valprint.o): In function `value_print':
e:/cygwin/usr/local/src/gdbcvs/djcvsbuild2/gdb/../../purecvs/gdb/valprint.c:
383:
 undefined reference to `_apply_val_pretty_printer'
libgdb.a(cp-valprint.o): In function `cp_print_value':
e:/cygwin/usr/local/src/gdbcvs/djcvsbuild2/gdb/../../purecvs/gdb/cp-valprint
.c:4
28: undefined reference to `_apply_val_pretty_printer'
collect2: ld returned 1 exit status

python-prettyprint.o does not seem to be added to libgdb.a...
But if I try to compile it by hand I get this:

In file included from ../../purecvs/gdb/python/python-prettyprint.c:27:
../../purecvs/gdb/python/python-internal.h:49:2: #error "Unable to find
usable Python.h"
In file included from ../../purecvs/gdb/python/python-prettyprint.c:27:
../../purecvs/gdb/python/python-internal.h:66: error: parse error before '*'
token

The HAVE_PYTHON conditional is not at the right position.

It seems like python-prettyprint.o should be added
to CONFIG_OBS if no python is found or


The following two changes fixes compilation for me:
Is this patch OK?

Pierre

2009-05-28  Pierre Muller  <muller@ics.u-strasbg.fr>

	* configure.ac (!have_libpython): Add python-prettyprint source
	and object files.
	* configure: Regenerate.
	* python/python-prettyprint.c: Move "#ifdef HAVE_PYTHON" before 
	python headers.

Index: configure.ac
===================================================================
RCS file: /cvs/src/src/gdb/configure.ac,v
retrieving revision 1.101
diff -u -p -r1.101 configure.ac
--- configure.ac	23 Apr 2009 21:28:19 -0000	1.101
+++ configure.ac	28 May 2009 09:57:53 -0000
@@ -685,8 +685,8 @@ if test "${have_libpython}" = yes; then
 else
   # Even if Python support is not compiled in, we need to have these files
   # included in order to recognize the GDB command "python".
-  CONFIG_OBS="$CONFIG_OBS python.o python-value.o"
-  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c"
+  CONFIG_OBS="$CONFIG_OBS python.o python-value.o python-prettyprint.o"
+  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c
python/python-prettyprint.c"
 fi
 AC_SUBST(PYTHON_CFLAGS)
 
Index: python/python-prettyprint.c
===================================================================
RCS file: /cvs/src/src/gdb/python/python-prettyprint.c,v
retrieving revision 1.2
diff -u -p -r1.2 python-prettyprint.c
--- python/python-prettyprint.c	28 May 2009 01:09:20 -0000	1.2
+++ python/python-prettyprint.c	28 May 2009 09:57:53 -0000
@@ -23,10 +23,12 @@
 #include "symtab.h"
 #include "language.h"
 #include "valprint.h"
+
+#ifdef HAVE_PYTHON
+
 #include "python.h"
 #include "python-internal.h"
 
-#ifdef HAVE_PYTHON
 
 /* Helper function for find_pretty_printer which iterates over a list,
    calls each function and inspects output.  This will return a


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 10:03 [RFA] Build failure fix: Python troubles on non-python targets Pierre Muller
@ 2009-05-28 14:56 ` Paul Pluzhnikov
  2009-05-28 15:38 ` Tom Tromey
  1 sibling, 0 replies; 7+ messages in thread
From: Paul Pluzhnikov @ 2009-05-28 14:56 UTC (permalink / raw)
  To: Pierre Muller; +Cc: gdb-patches

On Thu, May 28, 2009 at 3:03 AM, Pierre Muller <muller@ics.u-strasbg.fr> wrote:

> On DJGPP,
> I now get this failure:

Current CVS Head similarly fails on Linux:

gcc -g -O2      \
		-o gdbtui tui-main.o libgdb.a \
		   ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a
 ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a    -lncurses
-lz -lm  ../libiberty/libiberty.a  gnulib/libgnu.a -ldl -rdynamic
libgdb.a(valprint.o): In function `value_print':
/home/ppluzhnikov/Archive/sourceware.org/gdb/build/gdb/../../src/gdb/valprint.c:388:
undefined reference to `apply_val_pretty_printer'


-- 
Paul Pluzhnikov


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 10:03 [RFA] Build failure fix: Python troubles on non-python targets Pierre Muller
  2009-05-28 14:56 ` Paul Pluzhnikov
@ 2009-05-28 15:38 ` Tom Tromey
  2009-05-28 16:22   ` Pierre Muller
  2009-05-28 16:31   ` Paul Pluzhnikov
  1 sibling, 2 replies; 7+ messages in thread
From: Tom Tromey @ 2009-05-28 15:38 UTC (permalink / raw)
  To: Pierre Muller; +Cc: gdb-patches

>>>>> "Pierre" == Pierre Muller <muller@ics.u-strasbg.fr> writes:

Pierre> On DJGPP,
Pierre> I now get this failure:
[...]

Sorry about that.

Pierre> The following two changes fixes compilation for me:
Pierre> Is this patch OK?

Nearly...

Pierre> +
Pierre> +#ifdef HAVE_PYTHON
Pierre> +
Pierre>  #include "python.h"
Pierre>  #include "python-internal.h"
 
This should unconditionally include python.h.  So, the conditional
needs to be moved down a few lines.  It is ok to include python.h even
if Python is not available; and in this case it is desirable so that
the declarations are picked up (and thus checked against the
definitions).

Ok with that change.  Thanks.

Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 15:38 ` Tom Tromey
@ 2009-05-28 16:22   ` Pierre Muller
  2009-05-28 16:23     ` Paul Pluzhnikov
  2009-05-28 16:37     ` Tom Tromey
  2009-05-28 16:31   ` Paul Pluzhnikov
  1 sibling, 2 replies; 7+ messages in thread
From: Pierre Muller @ 2009-05-28 16:22 UTC (permalink / raw)
  To: tromey; +Cc: gdb-patches

Here is what I get if I move it down:

$ make
make[1]: Entering directory `/usr/local/src/gdbcvs/build-nopython/gdb'
make[2]: Entering directory
`/usr/local/src/gdbcvs/build-nopython/gdb/gnulib'
make  all-am
make[3]: Entering directory
`/usr/local/src/gdbcvs/build-nopython/gdb/gnulib'
if gcc -DHAVE_CONFIG_H -I. -I../../../purecvs/gdb/gnulib -I..     -gstabs+
-O0 -
MT memmem.o -MD -MP -MF ".deps/memmem.Tpo" -c -o memmem.o
../../../purecvs/gdb/g
nulib/memmem.c; \
        then mv -f ".deps/memmem.Tpo" ".deps/memmem.Po"; else rm -f
".deps/memme
m.Tpo"; exit 1; fi
rm -f libgnu.a
ar cru libgnu.a dummy.o memmem.o
ranlib libgnu.a
make[3]: Leaving directory `/usr/local/src/gdbcvs/build-nopython/gdb/gnulib'
make[2]: Leaving directory `/usr/local/src/gdbcvs/build-nopython/gdb/gnulib'
make[1]: Leaving directory `/usr/local/src/gdbcvs/build-nopython/gdb'
gcc -gstabs+ -O0   -I. -I../../purecvs/gdb -I../../purecvs/gdb/common
-I../../pu
recvs/gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H
-I../
../purecvs/gdb/../include/opcode -I../../purecvs/gdb/../readline/.. -I../bfd
-I.
./../purecvs/gdb/../bfd -I../../purecvs/gdb/../include -I../libdecnumber
-I../..
/purecvs/gdb/../libdecnumber  -I../../purecvs/gdb/gnulib -Ignulib
-DMI_OUT=1 -D
TUI=1 -DGDBTK  -Wall -Wdeclaration-after-statement -Wpointer-arith
-Wformat-nonl
iteral -Wno-unused -Wno-switch -Wno-char-subscripts -Werror -c -o
python-prettyp
rint.o -MT python-prettyprint.o -MMD -MP -MF .deps/python-prettyprint.Tpo
../..
/purecvs/gdb/python/python-prettyprint.c
../../purecvs/gdb/python/python-prettyprint.c:598: error: conflicting types
for
'apply_val_pretty_printer'
../../purecvs/gdb/python/python.h:33: error: previous declaration of
'apply_val_
pretty_printer' was here
../../purecvs/gdb/python/python-prettyprint.c:598: error: conflicting types
for
'apply_val_pretty_printer'
../../purecvs/gdb/python/python.h:33: error: previous declaration of
'apply_val_
pretty_printer' was here
make: *** [python-prettyprint.o] Error 1

Pierre

> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Tom Tromey
> Envoyé : Thursday, May 28, 2009 5:32 PM
> À : Pierre Muller
> Cc : gdb-patches@sourceware.org
> Objet : Re: [RFA] Build failure fix: Python troubles on non-python
> targets...
> 
> >>>>> "Pierre" == Pierre Muller <muller@ics.u-strasbg.fr> writes:
> 
> Pierre> On DJGPP,
> Pierre> I now get this failure:
> [...]
> 
> Sorry about that.
> 
> Pierre> The following two changes fixes compilation for me:
> Pierre> Is this patch OK?
> 
> Nearly...
> 
> Pierre> +
> Pierre> +#ifdef HAVE_PYTHON
> Pierre> +
> Pierre>  #include "python.h"
> Pierre>  #include "python-internal.h"
> 
> This should unconditionally include python.h.  So, the conditional
> needs to be moved down a few lines.  It is ok to include python.h even
> if Python is not available; and in this case it is desirable so that
> the declarations are picked up (and thus checked against the
> definitions).
> 
> Ok with that change.  Thanks.
> 
> Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 16:22   ` Pierre Muller
@ 2009-05-28 16:23     ` Paul Pluzhnikov
  2009-05-28 16:37     ` Tom Tromey
  1 sibling, 0 replies; 7+ messages in thread
From: Paul Pluzhnikov @ 2009-05-28 16:23 UTC (permalink / raw)
  To: Pierre Muller; +Cc: tromey, gdb-patches

On Thu, May 28, 2009 at 9:22 AM, Pierre Muller <muller@ics.u-strasbg.fr> wrote:
> Here is what I get if I move it down:

This is a separate bug.
I'll commit a fix momentarily.

-- 
Paul Pluzhnikov


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 15:38 ` Tom Tromey
  2009-05-28 16:22   ` Pierre Muller
@ 2009-05-28 16:31   ` Paul Pluzhnikov
  1 sibling, 0 replies; 7+ messages in thread
From: Paul Pluzhnikov @ 2009-05-28 16:31 UTC (permalink / raw)
  To: tromey; +Cc: Pierre Muller, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 705 bytes --]

On Thu, May 28, 2009 at 8:32 AM, Tom Tromey <tromey@redhat.com> wrote:

> Ok with that change.  Thanks.

The patch was line-wrapped and missing change to configure.

Also moving HAVE_PYTHON down revealed a bug: the signature of of
apply_val_pretty_printer has changed, but the prototype in the !HAVE_PYTHON
was not updated.

Attached is the patch I just committed.

-- 
Paul Pluzhnikov


2009-05-28  Pierre Muller  <muller@ics.u-strasbg.fr>
	    Paul Pluzhnikov  <ppluzhnikov@google.com>

	* configure.ac (!have_libpython): Add python-prettyprint source
	and object files.
	* configure: Regenerate.
	* python/python-prettyprint.c: Move "#ifdef HAVE_PYTHON" before
	python headers.

[-- Attachment #2: gdb-python-20090528.txt --]
[-- Type: text/plain, Size: 2706 bytes --]

Index: configure.ac
===================================================================
RCS file: /cvs/src/src/gdb/configure.ac,v
retrieving revision 1.101
diff -u -p -u -r1.101 configure.ac
--- configure.ac	23 Apr 2009 21:28:19 -0000	1.101
+++ configure.ac	28 May 2009 16:21:19 -0000
@@ -685,8 +685,8 @@ if test "${have_libpython}" = yes; then
 else
   # Even if Python support is not compiled in, we need to have these files
   # included in order to recognize the GDB command "python".
-  CONFIG_OBS="$CONFIG_OBS python.o python-value.o"
-  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c"
+  CONFIG_OBS="$CONFIG_OBS python.o python-value.o python-prettyprint.o"
+  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c python/python-prettyprint.c"
 fi
 AC_SUBST(PYTHON_CFLAGS)
 
Index: configure
===================================================================
RCS file: /cvs/src/src/gdb/configure,v
retrieving revision 1.282
diff -u -p -u -r1.282 configure
--- configure	6 May 2009 23:05:27 -0000	1.282
+++ configure	28 May 2009 16:21:20 -0000
@@ -11907,8 +11907,8 @@ echo "${ECHO_T}${PYTHON_CFLAGS}" >&6
 else
   # Even if Python support is not compiled in, we need to have these files
   # included in order to recognize the GDB command "python".
-  CONFIG_OBS="$CONFIG_OBS python.o python-value.o"
-  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c"
+  CONFIG_OBS="$CONFIG_OBS python.o python-value.o python-prettyprint.o"
+  CONFIG_SRCS="$CONFIG_SRCS python/python.c python/python-value.c python/python-prettyprint.c"
 fi
 
 
Index: python/python-prettyprint.c
===================================================================
RCS file: /cvs/src/src/gdb/python/python-prettyprint.c,v
retrieving revision 1.2
diff -u -p -u -r1.2 python-prettyprint.c
--- python/python-prettyprint.c	28 May 2009 01:09:20 -0000	1.2
+++ python/python-prettyprint.c	28 May 2009 16:21:20 -0000
@@ -23,10 +23,12 @@
 #include "symtab.h"
 #include "language.h"
 #include "valprint.h"
+
 #include "python.h"
-#include "python-internal.h"
 
 #ifdef HAVE_PYTHON
+#include "python-internal.h"
+
 
 /* Helper function for find_pretty_printer which iterates over a list,
    calls each function and inspects output.  This will return a
@@ -587,9 +589,8 @@ gdbpy_default_visualizer (PyObject *self
 int
 apply_val_pretty_printer (struct type *type, const gdb_byte *valaddr,
 			  int embedded_offset, CORE_ADDR address,
-			  struct ui_file *stream, int format,
-			  int deref_ref, int recurse,
-			  enum val_prettyprint pretty,
+			  struct ui_file *stream, int recurse,
+			  const struct value_print_options *options,
 			  const struct language_defn *language)
 {
   return 0;

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [RFA] Build failure fix: Python troubles on non-python targets...
  2009-05-28 16:22   ` Pierre Muller
  2009-05-28 16:23     ` Paul Pluzhnikov
@ 2009-05-28 16:37     ` Tom Tromey
  1 sibling, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2009-05-28 16:37 UTC (permalink / raw)
  To: Pierre Muller; +Cc: gdb-patches

>>>>> "Pierre" == Pierre Muller <muller@ics.u-strasbg.fr> writes:

Pierre> Here is what I get if I move it down:
[...]
Pierre> ../../purecvs/gdb/python/python-prettyprint.c:598: error: conflicting types
Pierre> for
Pierre> 'apply_val_pretty_printer'

Evidently I haven't done a python-less build in a while :-(

Anyway, this is exactly the kind of error that the inclusion of
python.h is supposed to detect.  So at least that is working ok :)

Go ahead and commit your patch.
Paul can then check in his additional fix.

Tom


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-05-28 16:37 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-28 10:03 [RFA] Build failure fix: Python troubles on non-python targets Pierre Muller
2009-05-28 14:56 ` Paul Pluzhnikov
2009-05-28 15:38 ` Tom Tromey
2009-05-28 16:22   ` Pierre Muller
2009-05-28 16:23     ` Paul Pluzhnikov
2009-05-28 16:37     ` Tom Tromey
2009-05-28 16:31   ` Paul Pluzhnikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox