This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Building GDB 7.3.92 with MinGW

I've successfully built the latest pretest of GDB 7.3.92 with MinGW on
MS-Windows.  But I did encounter a few minor issues; this is my report
about them.

1. Compilation warning:

     gcc -O2 -gdwarf-2 -g3 -D__USE_MINGW_ACCESS   -I. -I. -I./common -I./config -DLOCALEDIR="\"/d/usr/share/locale\"" -DHAVE_CONFIG_H -I./../include/opcode -I./../opcodes/.. -I./../readline/.. -I../bfd -I./../bfd -I./../include -I../libdecnumber -I./../libdecnumber -I./../intl -I./gnulib -Ignulib    -I/d/usr/include -Id:/usr/Python26/include -Id:/usr/Python26/include -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wno-format  -c -o utils.o -MT utils.o -MMD -MP -MF .deps/utils.Tpo utils.c
     In file included from gdb_curses.h:30,
		      from utils.c:68:
     d:/usr/include/curses.h:153:1: warning: "MOUSE_MOVED" redefined
     In file included from d:/usr/include/windows.h:49,
		      from d:/usr/include/winsock2.h:22,
		      from serial.h:24,
		      from utils.c:48:
     d:/usr/include/wincon.h:58:1: warning: this is the location of the previous definition

  Any objections to the following patch?  (If approved, I will add a
  comment explaining the problem on Windows which requires this.)

     --- gdb/gdb_curses.h~0	2012-01-06 06:43:14.000000000 +0200
     +++ gdb/gdb_curses.h	2012-01-10 13:21:10.626119900 +0200
     @@ -27,6 +27,9 @@
      #elif defined (HAVE_CURSESX_H)
      #include <cursesX.h>
      #elif defined (HAVE_CURSES_H)
     +#if defined(__MINGW32__) && defined(MOUSE_MOVED)
     +#undef MOUSE_MOVED
      #include <curses.h>

2. "make install-strip" fails in readline/, in sim/, and in gdb/:

     make[2]: Entering directory `/d/usr/eli/utils/gdb-7.3.92/readline'
     make[2]: *** No rule to make target `install-strip'.  Stop.
     make[2]: Leaving directory `/d/usr/eli/utils/gdb-7.3.92/readline'
     make[1]: *** [install-strip-readline] Error 2
     make[2]: Entering directory `/d/usr/eli/utils/gdb-7.3.92/sim'
     make[2]: *** No rule to make target `install-strip'.
     make[2]: Leaving directory `/d/usr/eli/utils/gdb-7.3.92/sim'
     make[1]: *** [install-strip-sim] Error 2
     make[2]: Entering directory `/d/usr/eli/utils/gdb-7.3.92/gdb'
     make[2]: *** No rule to make target `install-strip'.
     make[2]: Leaving directory `/d/usr/eli/utils/gdb-7.3.92/gdb'
     make[1]: *** [install-strip-gdb] Error 2
     make[1]: Target `install-strip-host' not remade because of errors.
     make[1]: Nothing to be done for `install-strip-target'.
     make[1]: Leaving directory `/d/usr/eli/utils/gdb-7.3.92'
     make: *** [install-strip] Error 2

   The reason is that these directories simply don't have the
   "install-strip" target in their files.  I think that
   target should be added, because that's AFAIK how GDB is supposed to
   be installed on end-user systems.

3. Manuals are (unexpectedly) regenerated as part of "make":

     make[4]: Entering directory `/d/usr/eli/utils/gdb-7.3.92/gdb'
     make[5]: Entering directory `/d/usr/eli/utils/gdb-7.3.92/gdb/doc'
     (test "cp -p" = "ln -s" && \
	       ln -s ./all-cfg.texi gdb-cfg.texi) || \
	     ln ./all-cfg.texi gdb-cfg.texi || \
	     cp ./all-cfg.texi gdb-cfg.texi
     echo "@set GDBVN `sed q ./../`" > ./
     if [ -n "(GDB) " ]; then \
	       echo "@set VERSION_PACKAGE (GDB) " >> ./; \
     echo "@set BUGURL @uref{}"; >> ./
     if [ "@uref{}"; = "@uref{}"; ]; then \
	       echo "@set BUGURL_DEFAULT" >> ./; \
     if test -z "-I ./../../readline/doc"; then \
	       echo "@set SYSTEM_READLINE" >> ./; \
     mv GDBvn.texi
     makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 -DHAVE_MAKEINFO_CLICK -I ./../../readline/doc -I ./../mi -I . \
		     -o ./gdb.texinfo
     makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 -DHAVE_MAKEINFO_CLICK -I . -o ./gdbint.texinfo
     makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 -DHAVE_MAKEINFO_CLICK -I . -o ./annotate.texinfo

   The reason is that gdb-cfg.texi and GDBvn.texi are not in the
   tarball, but they are build dependencies of the manuals:

	     gdb-cfg.texi \
     GDB_DOC_FILES = \
	     $(srcdir)/gdb.texinfo \
     # GDB MANUAL: info file ${GDB_DOC_FILES}
		     -o $(srcdir)/gdb.texinfo

   I think these two files should be added to the distribution, since
   end users should not be required to have Texinfo installed to build

Finally, a question: Why are we installing libraries (libbfd,
libopcodes, libiberty) and the manual?  The libraries
are not part of GDB, we import them from elsewhere.  "make install"
will happily overwrite existing installation of these libraries that
could potentially be newer, coming from their respective upstream
distributions.  How about removing these from "make install"?

As for, if we decide to keep distributing it (which I
don't think we should), we should at least make a point of having the
latest version in our tarballs; the one in 7.3.92 isn't.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]