From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eli Zaretskii To: jimb@zwingli.cygnus.com Cc: gdb-patches@sourceware.cygnus.com Subject: Re: RFA: minor watchpoint code cleanup Date: Sun, 19 Mar 2000 01:45:00 -0000 Message-id: <200003190944.EAA07454@indy.delorie.com> References: <200003180006.TAA26919@zwingli.cygnus.com> X-SW-Source: 2000-03/msg00339.html > This is just a cosmetic change. Let me know. > > 2000-03-17 Jim Blandy > > * i386v-nat.c (i386_insert_nonaligned_watchpoint): Use a > two-dimensional array, instead of faking it with explicit index > arithmetic. While we are talking: someone (H.J. Lu?) suggested to make the watchpoint insertion code common to all x86 targets. What's the current say-so on this? It seems like a good idea to me. In particular, i386v-nat.c could use some of the trickery, bug-fixes and features from go32-nat.c ;-). For example, note that the function which removes non-aligned watchpoints, doesn't go through the same routine as the insert function does (does that mean that nobody has ever tried to use non- aligned watchpoints on SysV?). (And go32-nat.c should probably get the same change as you did above.) >From eliz@delorie.com Sun Mar 19 01:46:00 2000 From: Eli Zaretskii To: jimb@zwingli.cygnus.com Cc: john@feith.com, gdb-patches@sourceware.cygnus.com Subject: Re: GDB 4.17 Patch for stack aligned i386 code Date: Sun, 19 Mar 2000 01:46:00 -0000 Message-id: <200003190946.EAA07460@indy.delorie.com> References: <200003062256.RAA10752@jwlab.FEITH.COM> X-SW-Source: 2000-03/msg00340.html Content-length: 1112 > > >> Just curious what the status is of my patch for debugging > > >> frame pointerless i386 code. Last we "spoke" (on March 9) > > >> Jim B was going to look at it. Is it still in the queue? > > >> Are there any issues with it that I need to address? > > > > > > Yes, I'm still on the spot for this. It's definitely on my queue, and > > > towards the top. > > > > > > I won't reject it without letting you know why. :) > > > > Figured since it's been a few months it was safe to ping you > > again regarding the status of this patch. :-) > > Sorry --- I still haven't had a chance to look at it. Since we have > more maintainers now, it's more likely the cycles will arise, so I'll > re-post the patch here. Is it possible to tell a bit more about the problem, and how is it solved? Perhaps even a short test case, before and after the change? Also, do the original problems affect Solaris alone, or are they common to all gcc/x86-based architectures? It's quite difficult to judge a large patch for two different problems without having a more-or-less clear notion of the issues involved. Thanks. >From eliz@delorie.com Sun Mar 19 04:10:00 2000 From: Eli Zaretskii To: gdb-patches@sourceware.cygnus.com Subject: [PATCH] Shut up compiler warnings in ser-go32.c Date: Sun, 19 Mar 2000 04:10:00 -0000 Message-id: <200003191210.HAA08353@indy.delorie.com> X-SW-Source: 2000-03/msg00341.html Content-length: 901 I committed today the following patch: 2000-03-17 Eli Zaretskii * ser-go32.c (ports): Make the initializers complete, to pacify GCC 2.9X. --- gdb/ser-go32.c~2 Tue Mar 14 22:12:12 2000 +++ gdb/ser-go32.c Sat Mar 18 15:23:12 2000 @@ -214,19 +214,19 @@ static struct dos_ttystate ports[4] = { { - COM1ADDR, 4 + COM1ADDR, 4, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0 } , { - COM2ADDR, 3 + COM2ADDR, 3, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0 } , { - COM3ADDR, 4 + COM3ADDR, 4, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0 } , { - COM4ADDR, 3 + COM4ADDR, 3, 0, NULL, 0, 0, "", 0, 0, 0, 0, 0, 0, 0, 0 } }; @@ -879,6 +879,7 @@ static struct serial_ops dos_ops = dos_setbaudrate, dos_setstopbits, dos_noop, /* wait for output to drain */ + (void (*)(serial_t, int))NULL /* change into async mode */ }; >From eliz@delorie.com Sun Mar 19 04:15:00 2000 From: Eli Zaretskii To: gdb-patches@sourceware.cygnus.com Subject: [PATCH] "make install" in mmalloc to work on MS-DOS Date: Sun, 19 Mar 2000 04:15:00 -0000 Message-id: <200003191215.HAA08359@indy.delorie.com> X-SW-Source: 2000-03/msg00342.html Content-length: 802 The following patch is required so that "make install" would work on filesystems where libmmalloc.a.n is not a valid file name. Okay to commit? 2000-03-17 Eli Zaretskii * Makefile.in (install): Append "n", not ".n" to libmmalloc.a, since the latter loses on DOS 8+3 filesystems. --- mmalloc/Makefile.i~0 Fri Apr 16 03:55:28 1999 +++ mmalloc/Makefile.in Fri Mar 17 14:32:50 2000 @@ -121,9 +121,9 @@ # ./a.out install: all - $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB).n - $(RANLIB) $(libdir)/$(TARGETLIB).n - mv -f $(libdir)/$(TARGETLIB).n $(libdir)/$(TARGETLIB) + $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)n + $(RANLIB) $(libdir)/$(TARGETLIB)n + mv -f $(libdir)/$(TARGETLIB)n $(libdir)/$(TARGETLIB) $(TARGETLIB): $(TARGETOBJS) $(RM) -rf $@ >From eliz@delorie.com Sun Mar 19 04:19:00 2000 From: Eli Zaretskii To: gdb-patches@sourceware.cygnus.com Subject: [PATCH] "OVERLAY ON" does not exist. Date: Sun, 19 Mar 2000 04:19:00 -0000 Message-id: <200003191218.HAA08362@indy.delorie.com> X-SW-Source: 2000-03/msg00343.html Content-length: 982 Caught this small glitch while running the test suite. Okay to commit? 2000-03-16 Eli Zaretskii * symfile.c (map_overlay_command, unmap_overlay_command): Fix error message: there's no "overlay on" command. --- gdb/symfile.c~0 Thu Feb 3 06:35:14 2000 +++ gdb/symfile.c Thu Mar 16 22:57:26 2000 @@ -2912,7 +2912,7 @@ asection *bfdsec; if (!overlay_debugging) - error ("Overlay debugging not enabled. Use the 'OVERLAY ON' command."); + error ("Overlay debugging not enabled. Use the 'OVERLAY AUTO' command."); if (args == 0 || *args == 0) error ("Argument required: name of an overlay section"); @@ -2962,7 +2962,7 @@ struct obj_section *sec; if (!overlay_debugging) - error ("Overlay debugging not enabled. Use the 'OVERLAY ON' command."); + error ("Overlay debugging not enabled. Use the 'OVERLAY AUTO' command."); if (args == 0 || *args == 0) error ("Argument required: name of an overlay section"); >From eliz@delorie.com Sun Mar 19 04:25:00 2000 From: Eli Zaretskii To: gdb-patches@sourceware.cygnus.com Subject: [PATCH] Support for building with DJGPP Date: Sun, 19 Mar 2000 04:25:00 -0000 Message-id: <200003191224.HAA08367@indy.delorie.com> X-SW-Source: 2000-03/msg00344.html Content-length: 26903 I committed today the following patches which allow to build GDB with DJGPP tools. 2000-03-17 Eli Zaretskii * config/djgpp/djconfig.sh: New file. * config/djgpp/config.sed: New file. * config/djgpp/README: New file. * config/djgpp/fnchange.lst: New file. * config/djgpp/djcheck.sh: New file. --- /dev/null Fri Mar 17 19:01:45 2000 +++ gdb/config/djgpp/djconfig.sh Fri Mar 17 11:54:06 2000 @@ -0,0 +1,127 @@ +#!/bin/sh +# +# This shell script is a wrapper to the main configure script when +# configuring GDB for DJGPP. 99% of it can also be used when +# configuring other GNU programs for DJGPP. +# +# Originally written by Robert Hoehne, revised by Eli Zaretskii. +# +# Call it like the main configure script with one exception. If you +# want to pass parameters to configure, you have to pass as the first +# argument the srcdir, even when it is `.' !!!!! + +# Where are the sources? If you are used to having the sources +# in a separate directory and the objects in another, then set +# here the full path to the source directory and run this script +# in the directory where you want to build gdb!! +# You might give the source directory on commandline, but use +# then only forward slashes (/) in the directories. It should be +# an absolute path. + +if [ x$1 = x ]; then + srcdir=`pwd` +else + srcdir=`cd $1 && pwd` + shift +fi + +# Make sure they don't have some file names mangled by untarring. +echo -n "Checking the unpacked distribution..." +if ( ! test -f ${srcdir}/intl/po2tblsed.in || \ + ! test -d ${srcdir}/gdb/testsuite/gdb.cxx || \ + ! test -f ${srcdir}/readline/config.h-in ) ; then + echo " FAILED." + echo "" + echo "You MUST unpack the sources with the DJTAR command, like this:" + echo "" + echo " djtar -x -n fnchange.lst gdb-X.YZ.tar.gz" + echo "" + echo "where X.YZ is the GDB version, and fnchange.lst can be found" + echo "in the gdb/config/djgpp/ directory in the GDB distribution." + echo "configure FAILED!" + exit 1 +else + echo " ok." +fi + +# Where is the directory with DJGPP-specific scripts? +DJGPPDIR=${srcdir}/gdb/config/djgpp + +echo "Editing configure scripts for DJGPP..." +TMPFILE="${TMPDIR-.}/cfg.tmp" + +# We need to skip the build directory if it is a subdirectory of $srcdir, +# otherwise we will have an infinite recursion on our hands... +if test "`pwd`" == "${srcdir}" ; then + SKIPDIR="" + SKIPFILES="" +else + SKIPDIR=`pwd | sed -e "s|${srcdir}|.|"` + SKIPFILES="${SKIPDIR}/*" +fi +for fix_dir in \ + `cd $srcdir && find . -type d ! -ipath "${SKIPDIR}" ! -ipath "${SKIPFILES}"` +do + if test ! -f ${fix_dir}/configure.orig ; then + if test -f ${srcdir}/${fix_dir}/configure ; then + mkdir -p ${fix_dir} + cp -p ${srcdir}/${fix_dir}/configure ${fix_dir}/configure.orig + fi + fi + if test -f ${fix_dir}/configure.orig ; then + sed -f ${DJGPPDIR}/config.sed ${fix_dir}/configure.orig > $TMPFILE + update $TMPFILE ${fix_dir}/configure + touch ./${fix_dir}/configure -r ${fix_dir}/configure.orig + rm -f $TMPFILE + fi + if test -f ${fix_dir}/INSTALL ; then + mv ${fix_dir}/INSTALL ${fix_dir}/INSTALL.txt + fi +done + +# Now set the config shell. It is really needed, that the shell +# points to a shell with full path and also it must conatain the +# .exe suffix. I assume here, that bash is installed. If not, +# install it. Additionally, the pathname must not contain a +# drive letter, so use the /dev/x/foo format supported by versions +# of Bash 2.03 and later, and by all DJGPP programs compiled with +# v2.03 (or later) library. +export CONFIG_SHELL=/dev/env/DJDIR/bin/sh.exe + +# force to have the ltmain.sh script to be in DOS text format, +# otherwise the resulting ltconfig script will have mixed +# (UNIX/DOS) format and is unusable with Bash ports before v2.03. +utod $srcdir/ltmain.sh + +# Give the configure script some hints: +export LD=ld +export CC=gcc +export RANLIB=ranlib +export DEFAULT_YACC="bison -y" +export YACC="bison -y" +export DEFAULT_LEX=flex +# Define explicitly the .exe extension because on W95 with LFN=y +# the check might fail +export am_cv_exeext=.exe + +# The configure script needs to see the `install-sh' script, otherwise +# it decides the source installation is broken. But "make install" will +# fail on 8+3 filesystems if it finds a file `install-', since there +# are numerous "install-foo" targets in Makefile's. So we rename the +# offending file after the configure step is done. +if test ! -f ${srcdir}/install-sh ; then + if test -f ${srcdir}/install-.sh ; then + mv ${srcdir}/install-.sh ${srcdir}/install-sh + fi +fi + +# Now run the configure script while disabling some things like the NLS +# support, which is nearly impossible to be supported in the current way, +# since it relies on file names which will never work on DOS. +echo "Running the configure script..." +$srcdir/configure --srcdir="$srcdir" --prefix='${DJDIR}' \ + --disable-shared --disable-nls --verbose $* + +if test -f ${srcdir}/install- ; then + mv ${srcdir}/install- ${srcdir}/install-.sh +fi --- /dev/null Fri Mar 17 19:02:11 2000 +++ gdb/config/djgpp/config.sed Fri Mar 17 17:19:26 2000 @@ -0,0 +1,30 @@ +s|po2tbl\.sed\.in|po2tblsed.in|g +s|gdb\.c++|gdb.cxx|g +/ac_rel_source/s|ln -s|cp -p| +s|\.gdbinit|gdb.ini|g + +/ac_given_INSTALL=/,/^CEOF/ { + /^s%@prefix@%/a\ + s,\\([yp*]\\)\\.tab,\\1_tab,g\ + /^ @rm -f/s,\\$@-\\[0-9\\]\\[0-9\\],&$*.i[1-9] $*[1-9][0-9],\ + s,\\.info\\*,.inf* *.i[1-9] *.i[1-9][0-9],\ + s,\\.gdbinit,gdb.ini,g\ + /TEXINPUTS=/s,:,';',g\ + /VPATH *=/s,:,;,g\ + /\\$\\$file-\\[0-9\\]/s,echo,& *.i[1-9] *.i[1-9][0-9],\ + s,config\\.h\\.in,config.h-in,g\ + s,po2tbl\\.sed\\.in,po2tblsed.in,g +} + +/^CONFIG_FILES=/,/^EOF/ { + s|po/Makefile.in\([^-:]\)|po/Makefile.in:po/Makefile.in-in\1| +} + +/^ *CONFIG_HEADERS=/,/^EOF/ { + s|config.h\([^-:]\)|config.h:config.h-in\1| +} + +/^[ ]*\/\*)/s,/\*,/*|[A-z]:/*, +/\$]\*) INSTALL=/s,\[/\$\]\*,&|[A-z]:/*, +/\$]\*) ac_rel_source=/s,\[/\$\]\*,&|[A-z]:/*, +/ac_file_inputs=/s,\( -e "s%\^%\$ac_given_srcdir/%"\)\( -e "s%:% $ac_given_srcdir/%g"\),\2\1, --- /dev/null Fri Mar 17 20:41:18 2000 +++ gdb/config/djgpp/README Fri Mar 17 20:40:54 2000 @@ -0,0 +1,172 @@ + + How to build and install the DJGPP native version of GDB + ******************************************************** + +General +======= + +GDB built with DJGPP supports native DJGPP debugging, whereby you run +gdb.exe and the program being debugged on the same machine. In +addition, this version supports remote debugging via a serial port, +provided that the target machine has a GDB-compatible debugging stub +which can be linked with the target program (see the section "Remote +Serial" in the GDB manual for more details). + + +Installation of the binary distribution +======================================= + +Simply unzip the gdbNNNb.zip file (where NNN is the version number) +from the top DJGPP installation directory. Be sure to preserve the +directory structure while you unzip (use -d switch if you do this with +PKUNZIP). On Windows 9X and Windows 2000, use an unzip program which +supports long file names; one such program is unzip32.exe, available +from the DJGPP sites. + +If you need the libraries which are built as part of GDB, install the +companion file gdbNNNa.zip. This allows to develop applications which +use the same functions as GDB. For example, you can build your own +front end to the debugger. + + +Rebuilding GDB from sources +=========================== + +1. Prerequisites + ------------- +To build the package, you will need the DJGPP development environment +(GCC, header files, and the libraries), and also DJGPP ports of the +following tools: + + - GNU Make 3.78.1 or later + - Bash 2.03 or later + - GNU Sed + - GNU Fileutils + - GNU Textutils 2.0 or later + - GNU Sh-utils + - GNU Grep 2.4 or later + - GNU Findutils + - GNU Awk 3.04 or later + - GNU Bison (only if you change one of the gdb/*.y files) + - Groff (only if you need to format the man pages) + - GNU Diffutils (only if you run the test suite) + +These programs should be available from the DJGPP sites, in the v2gnu +directory. In addition, the configuration script invokes the `update' +and `utod' utilities which are part of the basic DJGPP development kit +(djdevNNN.zip). + + +2. Unpacking the sources + --------------------- +If you download the source distribution from one of the DJGPP sites, +just unzip it while preserving the directory structure (I suggest to +use unzip32.exe available with the rest of DJGPP), and proceed to the +section "How to build" below. + +Source distributions downloaded from one of the GNU FTP sites need +some more work to unpack. First, you MUST use the `djtar' program to +unzip the package. That's because some file names in the official +distributions need to be changed to avoid problems on the various +platforms supported by DJGPP. `djtar' can rename files on the fly +given a file with name mappings; the distribution includes a file +`gdb/config/djgpp/fnchange.lst' with the necessary mappings. So you +need first to retrieve that file, and then invoke `djtar' to unpack +the distribution. Here's how: + + + djtar -x -p -o gdb-5.0/gdb/config/djgpp/fnchange.lst gdb-5.0.tar.gz > lst + djtar -x -n lst gdb-5.0.tar.gz + +(The name of the distribution archive and the top-level directory will +be different for versions other than 5.0.) + + +3. How to build + ------------ + +The source distribution available from DJGPP archives is already +configured for DJGPP v2.x, so if you only want to compile it, just +invoke Make: + + make + +To build a package downloaded from a GNU FTP site, you will need o +configure it first. You will also need to configure it if you want to +change the configuration options (e.g., compile with support for the +GDBMI interface). To configure GDB, type this command: + + sh ./gdb/config/djgpp/djconfig.sh + +This script checks the unpacked distribution, then edits the configure +scripts in the various subdirectories, to make them suitable for +DJGPP, and finally invokes the top-level configure script, which +recursively configures all the subdirectories. + +You may pass optional switches to djconfig.sh. It accepts all the +switches accepted by the original GDB configure script. These +switches are described in the file gdb/README, and their full list be +displayed by running the following command: + + sh ./gdb/configure --help + +NOTE: if you *do* use optional command-line switches, you MUST pass +to the script the name of the directory where GDB sources are +unpacked--even if you are building GDB in-place! For example: + + sh ./gdb/config/djgpp/djconfig.sh . --enable-gdbmi + +It is also possible to build GDB in a directory that is different from +the one where the sources were unpacked. In that case, you have to +pass the source directory as the first argument to the script: + + sh ./gdb/config/djgpp/djconfig.sh d:/gnu/gdb-5.0 + +You MUST use forward slashes in the first argument. + +After the configure script finishes, run Make: + + make + +When Make finishes, you can install the package: + + make install INSTALL='/dev/env/DJDIR/bin/ginstall -c' + +The above doesn't install the docs; for that you will need to say +this: + + make -k install-info INSTALL='/dev/env/DJDIR/bin/ginstall -c' + +(The -k switch is required, because some unneeded targets that are +part of the install process fail; -k lets Make run to completion +nonetheless.) + +The test suite has been made to work with DJGPP. If you make a change +in some of the programs, or want to be sure you have a fully +functional GDB executable, it is a good idea to run the test suite. +You cannot use "make check" for that, since it will want to run the +`dejagnu' utility which GDB doesn't support. Instead, use the special +script gdb/config/djgpp/djcheck.sh, like this: + + cd gdb/testsuite + sh ../config/djgpp/djcheck.sh + +This will run for a while and should not print anything. Any test +that fails to produce the expected output will cause the diffs between +the expected and the actual output be printed, and in addition will +leave behind a file SOMETHING.tst (where SOMETHING is the name of one +of the tests). You should compare each of the *.tst files with the +corresponding *.out file and convince yourself that the differences do +not indicate a real problem. Examples of differences you can +disregard are changes in the copyright blurb printed by GDB, values of +unitialized variables, addresses of global variables like argv[] and +envp[] (which depend on the size of your environment), etc. + +Note that djcheck.sh only recurses into those of the subdirectories of +the test suite which test features supported by the DJGPP port of GDB. +For example, the tests in the gdb.gdbtk, gdb.threads, and gdb.hp +directories are not run. + + +Enjoy, + Eli Zaretskii --- /dev/null Fri Mar 17 20:46:50 2000 +++ gdb/config/djgpp/fnchange.lst Fri Mar 17 20:46:08 2000 @@ -0,0 +1,176 @@ +gdb-0222/gdb/ChangeLog-3.x gdb-0222/gdb/ChangeLog.3-x +gdb-0222/gdb/ChangeLog-9091 gdb-0222/gdb/ChangeLog.9091 +gdb-0222/gdb/ChangeLog-92 gdb-0222/gdb/ChangeLog.92 +gdb-0222/gdb/ChangeLog-93 gdb-0222/gdb/ChangeLog.93 +gdb-0222/gdb/ChangeLog-94 gdb-0222/gdb/ChangeLog.94 +gdb-0222/gdb/ChangeLog-95 gdb-0222/gdb/ChangeLog.95 +gdb-0222/gdb/ChangeLog-96 gdb-0222/gdb/ChangeLog.96 +gdb-0222/gdb/ChangeLog-97 gdb-0222/gdb/ChangeLog.97 +gdb-0222/gdb/ChangeLog-98 gdb-0222/gdb/ChangeLog.98 +gdb-0222/gdb/ChangeLog-99 gdb-0222/gdb/ChangeLog.99 +gdb-0222/gdb/ppc-linux-tdep.c gdb-0222/gdb/ppc-linx-tdep.c +gdb-0222/gdb/remote-adapt.c gdb-0222/gdb/rmt-adapt.c +gdb-0222/gdb/remote-array.c gdb-0222/gdb/rmt-array.c +gdb-0222/gdb/remote-e7000.c gdb-0222/gdb/rmt-e7000.c +gdb-0222/gdb/remote-eb.c gdb-0222/gdb/rmt-eb.c +gdb-0222/gdb/remote-es.c gdb-0222/gdb/rmt-es.c +gdb-0222/gdb/remote-est.c gdb-0222/gdb/rmt-est.c +gdb-0222/gdb/remote-mips.c gdb-0222/gdb/emt-mips.c +gdb-0222/gdb/remote-mm.c gdb-0222/gdb/emt-mm.c +gdb-0222/gdb/remote-nindy.c gdb-0222/gdb/rmt-nindy.c +gdb-0222/gdb/remote-nrom.c gdb-0222/gdb/rmt-nrom.c +gdb-0222/gdb/remote-rdi.c gdb-0222/gdb/rmt-rdi.c +gdb-0222/gdb/remote-rdp.c gdb-0222/gdb/rmt-rdp.c +gdb-0222/gdb/remote-sds.c gdb-0222/gdb/rmt-sds.c +gdb-0222/gdb/remote-sim.c gdb-0222/gdb/rmt-sim.c +gdb-0222/gdb/remote-st.c gdb-0222/gdb/rmt-st.c +gdb-0222/gdb/remote-udi.c gdb-0222/gdb/rmt-udi.c +gdb-0222/gdb/remote-vx.c gdb-0222/gdb/rmt-vx.c +gdb-0222/gdb/remote-vx29k.c gdb-0222/gdb/rmt-vx29k.c +gdb-0222/gdb/remote-vx68.c gdb-0222/gdb/rmt-vx68.c +gdb-0222/gdb/remote-vx960.c gdb-0222/gdb/rmt-vx960.c +gdb-0222/gdb/remote-vxmips.c gdb-0222/gdb/rmt-vxmips.c +gdb-0222/gdb/remote-vxsparc.c gdb-0222/gdb/rmt-vxsparc.c +gdb-0222/gdb/sparclet-rom.c gdb-0222/gdb/splet-rom.c +gdb-0222/gdb/sparclet-stub.c gdb-0222/gdb/splet-stub.c +gdb-0222/gdb/config/alpha/alpha-osf1.mh gdb-0222/gdb/config/alpha/alphosf1.mh +gdb-0222/gdb/config/alpha/alpha-osf2.mh gdb-0222/gdb/config/alpha/alphosf2.mh +gdb-0222/gdb/config/alpha/alpha-osf3.mh gdb-0222/gdb/config/alpha/alphosf3.mh +gdb-0222/gdb/config/alpha/tm-alphalinux.h gdb-0222/gdb/config/alpha/tm-alplinux.h +gdb-0222/gdb/config/alpha/xm-alphalinux.h gdb-0222/gdb/config/alpha/xm-alplinux.h +gdb-0222/gdb/config/i386/nm-i386sco4.h gdb-0222/gdb/config/i386/nm-sco4.h +gdb-0222/gdb/config/i386/nm-i386sco5.h gdb-0222/gdb/config/i386/nm-sco5.h +gdb-0222/gdb/config/i386/nm-i386sol2.h gdb-0222/gdb/config/i386/nm-sol2.h +gdb-0222/gdb/config/i386/nm-i386v4.h gdb-0222/gdb/config/i386/nm-v4.h +gdb-0222/gdb/config/i386/nm-i386v42mp.h gdb-0222/gdb/config/i386/nm-v42mp.h +gdb-0222/gdb/config/i386/tm-i386mk.h gdb-0222/gdb/config/i386/tm-mk.h +gdb-0222/gdb/config/i386/tm-i386sol2.h gdb-0222/gdb/config/i386/tm-sol2.h +gdb-0222/gdb/config/i386/tm-i386v4.h gdb-0222/gdb/config/i386/tm-v4.h +gdb-0222/gdb/config/i386/tm-i386v42mp.h gdb-0222/gdb/config/i386/tm-v42mp.h +gdb-0222/gdb/config/i386/xm-i386mach.h gdb-0222/gdb/config/i386/xm-mach.h +gdb-0222/gdb/config/i386/xm-i386mk.h gdb-0222/gdb/config/i386/xm-mk.h +gdb-0222/gdb/config/i386/xm-i386v32.h gdb-0222/gdb/config/i386/xm-v32.h +gdb-0222/gdb/config/i386/xm-i386v4.h gdb-0222/gdb/config/i386/xm-v4.h +gdb-0222/gdb/config/m68k/apollo68v.mh gdb-0222/gdb/config/m68k/apollo-v.mh +gdb-0222/gdb/config/m68k/nm-apollo68v.h gdb-0222/gdb/config/m68k/nm-apolv.h +gdb-0222/gdb/config/m68k/nm-hp300hpux.h gdb-0222/gdb/config/m68k/nm-300ux.h +gdb-0222/gdb/config/m68k/tm-hp300hpux.h gdb-0222/gdb/config/m68k/tm-300ux.h +gdb-0222/gdb/config/m68k/xm-apollo68v.h gdb-0222/gdb/config/m68k/xm-apolv.h +gdb-0222/gdb/config/m68k/xm-hp300hpux.h gdb-0222/gdb/config/m68k/xm-300ux.h +gdb-0222/gdb/config/m88k/tm-delta88v4.h gdb-0222/gdb/config/m88k/tm-d88v4.h +gdb-0222/gdb/config/m88k/xm-delta88v4.h gdb-0222/gdb/config/m88k/xm-d88v4.h +gdb-0222/gdb/config/mips/tm-bigmips64.h gdb-0222/gdb/config/mips/tm-bigm64.h +gdb-0222/gdb/config/mips/tm-embed64.h gdb-0222/gdb/config/mips/tm-emb64.h +gdb-0222/gdb/config/mips/tm-embedl.h gdb-0222/gdb/config/mips/tm-embdl.h +gdb-0222/gdb/config/mips/tm-embedl64.h gdb-0222/gdb/config/mips/tm-embl64.h +gdb-0222/gdb/config/mips/tm-vr4300el.h gdb-0222/gdb/config/mips/tm-v43el.h +gdb-0222/gdb/config/mips/tm-vr4xxxel.h gdb-0222/gdb/config/mips/tm-v4xel.h +gdb-0222/gdb/config/mips/tm-vr5000el.h gdb-0222/gdb/config/mips/tm-vr5kel.h +gdb-0222/gdb/config/pa/nm-hppah11.h gdb-0222/gdb/config/pa/nm-hppa11.h +gdb-0222/gdb/config/powerpc/tm-ppcle-sim.h gdb-0222/gdb/config/powerpc/tm-ppcl-sim.h +gdb-0222/gdb/config/rs6000/nm-rs6000ly.h gdb-0222/gdb/config/rs6000/nm-rs6kly.h +gdb-0222/gdb/config/rs6000/tm-rs6000.h gdb-0222/gdb/config/rs6000/tm-rs6k.h +gdb-0222/gdb/config/rs6000/tm-rs6000ly.h gdb-0222/gdb/config/rs6000/tm-rs6kly.h +gdb-0222/gdb/config/rs6000/xm-rs6000ly.h gdb-0222/gdb/config/rs6000/xm-rs6kly.h +gdb-0222/gdb/config/sparc/tm-sparclet.h gdb-0222/gdb/config/sparc/tm-splet.h +gdb-0222/gdb/config/sparc/tm-sparclite.h gdb-0222/gdb/config/sparc/tm-splite.h +gdb-0222/gdb/config/sparc/tm-sparclynx.h gdb-0222/gdb/config/sparc/tm-splynx.h +gdb-0222/gdb/config/sparc/xm-sparclynx.h gdb-0222/gdb/config/sparc/xm-xplynx.h +gdb-0222/gdb/config/vax/xm-vaxult2.h gdb-0222/gdb/config/vax/xm-vaxut2.h +gdb-0222/gdb/gdbtk/generic/gdbtk-varobj.c gdb-0222/gdb/gdbtk/generic/gdbtk-vobj.c +gdb-0222/gdb/osf-share/cma_stack_int.h gdb-0222/gdb/osf-share/cma_stkint.h +gdb-0222/gdb/testsuite/gdb.base/coremaker2.c gdb-0222/gdb/testsuite/gdb.base/core2maker.c +gdb-0222/gdb/tui/tuiSourceWin.c gdb-0222/gdb/tui/tuiWinSource.c +gdb-0222/gdb/tui/tuiSourceWin.h gdb-0222/gdb/tui/tuiWinSource.h +gdb-0222/bfd/ChangeLog-9193 gdb-0222/bfd/ChangeLog.9193 +gdb-0222/bfd/ChangeLog-9495 gdb-0222/bfd/ChangeLog.9495 +gdb-0222/bfd/ChangeLog-9697 gdb-0222/bfd/ChangeLog.9697 +gdb-0222/bfd/coff-tic80.c gdb-0222/bfd/coff-tc80.c +gdb-0222/sim/mips/dv-tx3904irc.c gdb-0222/sim/mips/dv-tx3irc.c +gdb-0222/sim/mips/dv-tx3904sio.c gdb-0222/sim/mips/dv-tx3sio.c +gdb-0222/sim/mips/dv-tx3904tmr.c gdb-0222/sim/mips/dv-tx3tmr.c +gdb-0222/sim/mn10300/dv-mn103int.c gdb-0222/sim/mn10300/dv-mn1int.c +gdb-0222/sim/mn10300/dv-mn103iop.c gdb-0222/sim/mn10300/dv-mn1iop.c +gdb-0222/sim/mn10300/dv-mn103ser.c gdb-0222/sim/mn10300/dv-mn1ser.c +gdb-0222/sim/mn10300/dv-mn103tim.c gdb-0222/sim/mn10300/dv-mn1tim.c +gdb-0222/sim/ppc/corefile-n.h gdb-0222/sim/ppc/corefle-n.h +gdb-0222/sim/ppc/idecode_branch.h gdb-0222/sim/ppc/idec_branch.h +gdb-0222/sim/ppc/idecode_expression.h gdb-0222/sim/ppc/idec_expression.h +gdb-0222/sim/ppc/idecode_fields.h gdb-0222/sim/ppc/idec_fields.h +gdb-0222/sim/ppc/sim-endian-n.h gdb-0222/sim/ppc/sim-endn.h +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-d.s gdb-0222/sim/testsuite/d10v-elf/t-ld-d.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-i.s gdb-0222/sim/testsuite/d10v-elf/t-ld-i.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-id.s gdb-0222/sim/testsuite/d10v-elf/t-ld-id.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-im.s gdb-0222/sim/testsuite/d10v-elf/t-ld-im.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld-ip.s gdb-0222/sim/testsuite/d10v-elf/t-ld-ip.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-d.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-d.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-i.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-i.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-id.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-id.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-im.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-im.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-ld2w-ip.s gdb-0222/sim/testsuite/d10v-elf/t-ld2-ip.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-d.s gdb-0222/sim/testsuite/d10v-elf/t-st-d.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-i.s gdb-0222/sim/testsuite/d10v-elf/t-st-i.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-id.s gdb-0222/sim/testsuite/d10v-elf/t-st-id.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-im.s gdb-0222/sim/testsuite/d10v-elf/t-st-im.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-ip.s gdb-0222/sim/testsuite/d10v-elf/t-st-ip.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st-is.s gdb-0222/sim/testsuite/d10v-elf/t-st-is.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-d.s gdb-0222/sim/testsuite/d10v-elf/t-st2-d.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-i.s gdb-0222/sim/testsuite/d10v-elf/t-st2-i.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-id.s gdb-0222/sim/testsuite/d10v-elf/t-st2-id.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-im.s gdb-0222/sim/testsuite/d10v-elf/t-st2-im.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-ip.s gdb-0222/sim/testsuite/d10v-elf/t-st2-ip.s +gdb-0222/sim/testsuite/d10v-elf/t-ae-st2w-is.s gdb-0222/sim/testsuite/d10v-elf/t-st2-is.s +gdb-0222/sim/testsuite/d30v-elf/ls-ld4bhu.S gdb-0222/sim/testsuite/d30v-elf/ls-ld4bu.S +gdb-0222/intl/po2tbl.sed.in gdb-0222/intl/po2tblsed.in +gdb-0222/intl/intlh.inst.in gdb-0222/intl/intlh_inst.in +gdb-0222/readline/config.h.in gdb-0222/readline/config.h-in +gdb-0222/readline/config.h.bot gdb-0222/readline/config.h-bot +gdb-0222/gdb/nindy-share/b.out.h gdb-0222/gdb/nindy-share/b_out.h +gdb-0222/gdb/c-exp.tab.c gdb-0222/gdb/c-exp_tab.c +gdb-0222/gdb/jv-exp.tab.c gdb-0222/gdb/jv-exp_tab.c +gdb-0222/gdb/f-exp.tab.c gdb-0222/gdb/f-exp_tab.c +gdb-0222/gdb/m2-exp.tab.c gdb-0222/gdb/m2-exp_tab.c +gdb-0222/gdb/testsuite/gdb.c++ gdb-0222/gdb/testsuite/gdb.cxx +gdb-0222/gdb/testsuite/gdb.c++/Makefile.in gdb-0222/gdb/testsuite/gdb.cxx/Makefile.in +gdb-0222/gdb/testsuite/gdb.c++/ambiguous.cc gdb-0222/gdb/testsuite/gdb.cxx/ambiguous.cc +gdb-0222/gdb/testsuite/gdb.c++/ambiguous.exp gdb-0222/gdb/testsuite/gdb.cxx/ambiguous.exp +gdb-0222/gdb/testsuite/gdb.c++/annota2.cc gdb-0222/gdb/testsuite/gdb.cxx/annota2.cc +gdb-0222/gdb/testsuite/gdb.c++/annota2.exp gdb-0222/gdb/testsuite/gdb.cxx/annota2.exp +gdb-0222/gdb/testsuite/gdb.c++/anon-union.cc gdb-0222/gdb/testsuite/gdb.cxx/anon-union.cc +gdb-0222/gdb/testsuite/gdb.c++/anon-union.exp gdb-0222/gdb/testsuite/gdb.cxx/anon-union.exp +gdb-0222/gdb/testsuite/gdb.c++/classes.exp gdb-0222/gdb/testsuite/gdb.cxx/classes.exp +gdb-0222/gdb/testsuite/gdb.c++/configure gdb-0222/gdb/testsuite/gdb.cxx/configure +gdb-0222/gdb/testsuite/gdb.c++/configure.in gdb-0222/gdb/testsuite/gdb.cxx/configure.in +gdb-0222/gdb/testsuite/gdb.c++/cplusfuncs.cc gdb-0222/gdb/testsuite/gdb.cxx/cplusfuncs.cc +gdb-0222/gdb/testsuite/gdb.c++/cplusfuncs.exp gdb-0222/gdb/testsuite/gdb.cxx/cplusfuncs.exp +gdb-0222/gdb/testsuite/gdb.c++/ctti.exp gdb-0222/gdb/testsuite/gdb.cxx/ctti.exp +gdb-0222/gdb/testsuite/gdb.c++/cttiadd.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd.cc +gdb-0222/gdb/testsuite/gdb.c++/cttiadd1.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd1.cc +gdb-0222/gdb/testsuite/gdb.c++/cttiadd2.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd2.cc +gdb-0222/gdb/testsuite/gdb.c++/cttiadd3.cc gdb-0222/gdb/testsuite/gdb.cxx/cttiadd3.cc +gdb-0222/gdb/testsuite/gdb.c++/demangle.exp gdb-0222/gdb/testsuite/gdb.cxx/demangle.exp +gdb-0222/gdb/testsuite/gdb.c++/derivation.cc gdb-0222/gdb/testsuite/gdb.cxx/derivation.cc +gdb-0222/gdb/testsuite/gdb.c++/derivation.exp gdb-0222/gdb/testsuite/gdb.cxx/derivation.exp +gdb-0222/gdb/testsuite/gdb.c++/inherit.exp gdb-0222/gdb/testsuite/gdb.cxx/inherit.exp +gdb-0222/gdb/testsuite/gdb.c++/local.cc gdb-0222/gdb/testsuite/gdb.cxx/local.cc +gdb-0222/gdb/testsuite/gdb.c++/local.exp gdb-0222/gdb/testsuite/gdb.cxx/local.exp +gdb-0222/gdb/testsuite/gdb.c++/member-ptr.cc gdb-0222/gdb/testsuite/gdb.cxx/member-ptr.cc +gdb-0222/gdb/testsuite/gdb.c++/member-ptr.exp gdb-0222/gdb/testsuite/gdb.cxx/member-ptr.exp +gdb-0222/gdb/testsuite/gdb.c++/method.cc gdb-0222/gdb/testsuite/gdb.cxx/method.cc +gdb-0222/gdb/testsuite/gdb.c++/method.exp gdb-0222/gdb/testsuite/gdb.cxx/method.exp +gdb-0222/gdb/testsuite/gdb.c++/misc.cc gdb-0222/gdb/testsuite/gdb.cxx/misc.cc +gdb-0222/gdb/testsuite/gdb.c++/misc.exp gdb-0222/gdb/testsuite/gdb.cxx/misc.exp +gdb-0222/gdb/testsuite/gdb.c++/overload.cc gdb-0222/gdb/testsuite/gdb.cxx/overload.cc +gdb-0222/gdb/testsuite/gdb.c++/overload.exp gdb-0222/gdb/testsuite/gdb.cxx/overload.exp +gdb-0222/gdb/testsuite/gdb.c++/ovldbreak.cc gdb-0222/gdb/testsuite/gdb.cxx/ovldbreak.cc +gdb-0222/gdb/testsuite/gdb.c++/ovldbreak.exp gdb-0222/gdb/testsuite/gdb.cxx/ovldbreak.exp +gdb-0222/gdb/testsuite/gdb.c++/ref-types.cc gdb-0222/gdb/testsuite/gdb.cxx/ref-types.cc +gdb-0222/gdb/testsuite/gdb.c++/ref-types.exp gdb-0222/gdb/testsuite/gdb.cxx/ref-types.exp +gdb-0222/gdb/testsuite/gdb.c++/templates.cc gdb-0222/gdb/testsuite/gdb.cxx/templates.cc +gdb-0222/gdb/testsuite/gdb.c++/templates.exp gdb-0222/gdb/testsuite/gdb.cxx/templates.exp +gdb-0222/gdb/testsuite/gdb.c++/userdef.cc gdb-0222/gdb/testsuite/gdb.cxx/userdef.cc +gdb-0222/gdb/testsuite/gdb.c++/userdef.exp gdb-0222/gdb/testsuite/gdb.cxx/userdef.exp +gdb-0222/gdb/testsuite/gdb.c++/virtfunc.cc gdb-0222/gdb/testsuite/gdb.cxx/virtfunc.cc +gdb-0222/gdb/testsuite/gdb.c++/virtfunc.exp gdb-0222/gdb/testsuite/gdb.cxx/virtfunc.exp +gdb-0222/gdb/testsuite/.gdbinit gdb-0222/gdb/testsuite/gdb.ini +gdb-0222/sim/ppc/.gdbinit gdb-0222/sim/ppc/gdb.ini --- /dev/null Sat Mar 18 17:07:20 2000 +++ gdb/config/djgpp/djcheck.sh Sat Mar 18 15:44:22 2000 @@ -0,0 +1,32 @@ +#!/bin/sh + +# A shell script to run the test suite on the DJGPP version of GDB. + +ORIGDIR=`pwd` +GDB=${ORIGDIR}/../gdb.exe +SUBDIRS=`find $ORIGDIR -type d ! -ipath $ORIGDIR` + +for d in $SUBDIRS +do + cd $d + echo "Running tests in $d..." + for f in *.out + do + test -f $f || break + base=`basename $f .out` + if test "${base}" = "dbx" ; then + options=-dbx + else + options= + fi + $GDB ${options} < ${base}.in 2>&1 \ + | sed -e '/^GNU gdb /s/ [.0-9][.0-9]*//' \ + -e '/Starting program: /s|[A-z]:/.*/||' \ + -e '/main (.*argv=/s/\(argv\|envp\)=0x[0-9a-f][0-9a-f]*/\1=XYZ/g' \ + > ${base}.tst + if diff --binary -u ${base}.out ${base}.tst ; then + rm -f ${base}.tst + fi + done +done + >From Stephane.Carrez@worldnet.fr Sun Mar 19 05:56:00 2000 From: Stephane Carrez To: gdb-patches@sourceware.cygnus.com Subject: path for gdb/dwarf2read.c, support 16-bit targets in dwarf-2 Date: Sun, 19 Mar 2000 05:56:00 -0000 Message-id: <38D4DCB0.88313CB2@worldnet.fr> X-SW-Source: 2000-03/msg00345.html Content-length: 908 Hi! One part of the patch for dwarf2 correction with 16-bit target has been lost. If you are still not convinced by the fix, have a look at gas/dwarf2dbg.c in out_set_addr() where we obtain the address size in a good way. Can you integrate it? Thanks, Stephane 2000-03-19 Stephane Carrez * dwarf2read.c (dwarf2_build_psymtabs_hard): Use bfd_arch_bits_per_address to get the size of addresses. --- /src/gnu/cygnus/gdb/gdb/dwarf2read.c Sat Mar 4 11:38:38 2000 +++ gdb/dwarf2read.c Sun Mar 19 14:10:49 2000 @@ -938,7 +938,7 @@ dwarf2_build_psymtabs_hard (objfile, mai CORE_ADDR lowpc, highpc; /* Number of bytes of any addresses that are signficant */ - address_significant_size = get_elf_backend_data (abfd)->s->arch_size / 8; + address_significant_size = bfd_arch_bits_per_address (abfd) / 8; info_ptr = dwarf_info_buffer; abbrev_ptr = dwarf_abbrev_buffer; >From fnasser@redhat.com Sun Mar 19 08:56:00 2000 From: Fernando Nasser To: Jonathan Larmour Cc: gdb-patches@sourceware.cygnus.com Subject: Re: thumb_skip_prologue too adventurous Date: Sun, 19 Mar 2000 08:56:00 -0000 Message-id: <38D5064B.40AE9470@redhat.com> References: <38D3FFC8.32082A85@redhat.co.uk> <38D40052.AF731E81@redhat.co.uk> X-SW-Source: 2000-03/msg00346.html Content-length: 3183 Jonathan, Thanks. I am not sure if there isn't a better solution for this, but for now I would say that you should check your change in as an emergency fix. I am assuming you ran the testsuite and it did not cause any regressions, right? (I don't think it will cause any) I may latter add another change to check first if there is information about the prologue end in the symbol table. I don't know why this was not checked before, I just noticed it now, looking at you patch. I wrote this thumb prologue scan code to match the new compiler (gcc) prologue generation. As everything is new, both Nick and I used the testsuite results to verify our work. The case you mention does not have a testsuite case. I wonder if you could add a test case? Regards, Fernando Jonathan Larmour wrote: > > Jonathan Larmour wrote: > > 2000-03-18 Jonathan Larmour > > > > * arm-tdep.c (thumb_skip_prologue): Take function end addr argument > > so that we can stop searching for the prologue past the function end > > (arm_skip_prologue): Call thumb_skip_prologue with function end addr > > Doh! Patch attached. > > Jifl > > ------------------------------------------------------------------------ > Index: arm-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/arm-tdep.c,v > retrieving revision 1.4 > diff -u -5 -p -r1.4 arm-tdep.c > --- arm-tdep.c 2000/02/29 07:23:02 1.4 > +++ arm-tdep.c 2000/03/18 22:16:21 > @@ -326,20 +326,20 @@ arm_frameless_function_invocation (struc > When we have found at least one of each class we are done with the prolog. > Note that the "sub sp, #NN" before the push does not count. > */ > > static CORE_ADDR > -thumb_skip_prologue (CORE_ADDR pc) > +thumb_skip_prologue (CORE_ADDR pc, CORE_ADDR func_end) > { > CORE_ADDR current_pc; > int findmask = 0; /* findmask: > bit 0 - push { rlist } > bit 1 - mov r7, sp OR add r7, sp, #imm (setting of r7) > bit 2 - sub sp, #simm OR add sp, #simm (adjusting of sp) > */ > > - for (current_pc = pc; current_pc < pc + 40; current_pc += 2) > + for (current_pc = pc; current_pc + 2 < func_end && current_pc < pc + 40; current_pc += 2) > { > unsigned short insn = read_memory_unsigned_integer (current_pc, 2); > > if ((insn & 0xfe00) == 0xb400) /* push { rlist } */ > { > @@ -397,11 +397,11 @@ arm_skip_prologue (CORE_ADDR pc) > return sal.end; > } > > /* Check if this is Thumb code. */ > if (arm_pc_is_thumb (pc)) > - return thumb_skip_prologue (pc); > + return thumb_skip_prologue (pc, func_end); > > /* Can't find the prologue end in the symbol table, try it the hard way > by disassembling the instructions. */ > skip_pc = pc; > inst = read_memory_integer (skip_pc, 4); -- Fernando Nasser Red Hat, Inc. - Toronto E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Tel: 416-482-2661 ext. 311 Toronto, Ontario M4P 2C9 Fax: 416-482-6299 >From kevinb@cygnus.com Sun Mar 19 09:48:00 2000 From: Kevin Buettner To: gdb-patches@sourceware.cygnus.com Subject: Re: [PATCH RFA] Another utils.c patch Date: Sun, 19 Mar 2000 09:48:00 -0000 Message-id: <1000319174817.ZM17637@ocotillo.lan> References: <1000319072047.ZM14883@ocotillo.lan> X-SW-Source: 2000-03/msg00347.html Content-length: 2222 On Mar 19, 12:20am, Kevin Buettner wrote: > Subject: [PATCH RFA] Another utils.c patch > This fixes another bug uncovered by running the testsuite for the > IA-64... may I check this one in? > > * utils.c (floatformat_from_doublest): Make sure space that we're > writing the float to is completely initialized to zeroes, even > when the number of bits in the float is not evenly divisible > by FLOATFORMAT_CHAR_BIT. > > Index: utils.c > =================================================================== > RCS file: /cvs/src/src/gdb/utils.c,v > retrieving revision 1.4 > diff -u -p -r1.4 utils.c > --- utils.c 2000/03/04 02:23:06 1.4 > +++ utils.c 2000/03/19 07:12:00 > @@ -2722,7 +2722,8 @@ floatformat_from_doublest (fmt, from, to > unsigned char *uto = (unsigned char *) to; > > memcpy (&dfrom, from, sizeof (dfrom)); > - memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT); > + memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT > + + ((fmt->totalsize % FLOATFORMAT_CHAR_BIT) == 0 ? 0 : 1)); > if (dfrom == 0) > return; /* Result is zero */ > if (dfrom != dfrom) /* Result is NaN */ > >-- End of excerpt from Kevin Buettner I withdraw the patch above in favor of the one below. (The patch above is not as concise as the one below. But they should both produce the same results.) * utils.c (floatformat_from_doublest): Make sure space that we're writing the float to is completely initialized to zeroes, even when the number of bits in the float is not evenly divisible by FLOATFORMAT_CHAR_BIT. Index: utils.c =================================================================== RCS file: /cvs/src/src/gdb/utils.c,v retrieving revision 1.4 diff -u -p -r1.4 utils.c --- utils.c 2000/03/04 02:23:06 1.4 +++ utils.c 2000/03/19 17:36:49 @@ -2722,7 +2722,8 @@ floatformat_from_doublest (fmt, from, to unsigned char *uto = (unsigned char *) to; memcpy (&dfrom, from, sizeof (dfrom)); - memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT); + memset (uto, 0, (fmt->totalsize + FLOATFORMAT_CHAR_BIT - 1) + / FLOATFORMAT_CHAR_BIT); if (dfrom == 0) return; /* Result is zero */ if (dfrom != dfrom) /* Result is NaN */