deliverable/binutils-gdb.git
9 years agoUnset zlibdir/zlibinc only for --with-system-zlib
H.J. Lu [Wed, 1 Apr 2015 11:51:55 +0000 (04:51 -0700)] 
Unset zlibdir/zlibinc only for --with-system-zlib

* zlib.m4 (AM_ZLIB): Unset zlibdir and zlibinc only for
--with-system-zlib.

9 years agoAdd a testcase for PR ld/18176
H.J. Lu [Wed, 1 Apr 2015 11:24:05 +0000 (04:24 -0700)] 
Add a testcase for PR ld/18176

PR ld/18176
* ld-x86-64/pr18176.d: New file.
* ld-x86-64/pr18176.s: Likewise.
* ld-x86-64/pr18176.t: Likewise.
* ld-x86-64/x86-64.exp: Run pr18176.

9 years agoPrevent multiple definitions for _HEAP_START, _HEAP_MAX, and _STACK_START when perfor...
Chen Gang [Wed, 1 Apr 2015 10:29:46 +0000 (11:29 +0100)] 
Prevent multiple definitions for _HEAP_START, _HEAP_MAX, and _STACK_START when performing a relocatable link with a tic6x target.

* emulparams/elf32_tic6x_le.sh: Skip OTHER_BSS_SECTIONS for
relocating operation.

9 years agoGDBServer: give more complete usage information
Pedro Alves [Wed, 1 Apr 2015 10:01:44 +0000 (11:01 +0100)] 
GDBServer: give more complete usage information

--attach/--multi are currently only mentioned on the usage info first
lines, the meaning of PROG is completely absent and the COMM text does
not mention '-/stdio'.

A few options are missing:

 . --disable-randomization / --no-disable-randomization is not mentioned.

Although the manual has a comment saying these are superceded by
QDisableRandomization, that only makes sense for "run" in
extended-remote mode.  When we start gdbserver passing it a PROG,
--disable-randomization / --no-disable-randomization do take effect.
So I think we should document these.

 . We show --debug / --remote-debug, so might as well show --disable-packet too.

GDB's --help has this "For more information, consult the GDB manual"
blurb that is missing in GDBserver's --help.

Then shuffle things around a bit into "Operating modes", "Other
options" and "Debug options" sections, similarly to GDB's --help
structure.

Before:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ ./gdbserver/gdbserver --help
Usage:  gdbserver [OPTIONS] COMM PROG [ARGS ...]
        gdbserver [OPTIONS] --attach COMM PID
        gdbserver [OPTIONS] --multi COMM

COMM may either be a tty device (for serial debugging), or
HOST:PORT to listen for a TCP connection.

Options:
  --debug               Enable general debugging output.
  --debug-format=opt1[,opt2,...]
                        Specify extra content in debugging output.
                          Options:
                            all
                            none
                            timestamp
  --remote-debug        Enable remote protocol debugging output.
  --version             Display version information and exit.
  --wrapper WRAPPER --  Run WRAPPER to start new programs.
  --once                Exit after the first connection has closed.
Report bugs to "<http://www.gnu.org/software/gdb/bugs/>".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

After:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ ./gdbserver/gdbserver --help
Usage:  gdbserver [OPTIONS] COMM PROG [ARGS ...]
        gdbserver [OPTIONS] --attach COMM PID
        gdbserver [OPTIONS] --multi COMM

COMM may either be a tty device (for serial debugging),
HOST:PORT to listen for a TCP connection, or '-' or 'stdio' to use
stdin/stdout of gdbserver.
PROG is the executable program.  ARGS are arguments passed to inferior.
PID is the process ID to attach to, when --attach is specified.

Operating modes:

  --attach              Attach to running process PID.
  --multi               Start server without a specific program, and
                        only quit when explicitly commanded.
  --once                Exit after the first connection has closed.
  --help                Print this message and then exit.
  --version             Display version information and exit.

Other options:

  --wrapper WRAPPER --  Run WRAPPER to start new programs.
  --disable-randomization
                        Run PROG with address space randomization disabled.
  --no-disable-randomization
                        Don't disable address space randomization when
                        starting PROG.

Debug options:

  --debug               Enable general debugging output.
  --debug-format=opt1[,opt2,...]
                        Specify extra content in debugging output.
                          Options:
                            all
                            none
                            timestamp
  --remote-debug        Enable remote protocol debugging output.
  --disable-packet=opt1[,opt2,...]
                        Disable support for RSP packets or features.
                          Options:
                            vCont, Tthread, qC, qfThreadInfo and
                            threads (disable all threading packets).

For more information, consult the GDB manual (available as on-line
info or a printed manual).
Report bugs to "<http://www.gnu.org/software/gdb/bugs/>".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

gdb/gdbserver/ChangeLog:
2015-04-01  Pedro Alves  <palves@redhat.com>
    Cleber Rosa  <crosa@redhat.com>

* server.c (gdbserver_usage): Reorganize and extend the usage
message.

9 years agoStart of relro segment adjustment
Alan Modra [Wed, 1 Apr 2015 08:49:27 +0000 (19:19 +1030)] 
Start of relro segment adjustment

Adjusting the start of the relro segment in order to make it end
exactly on a page boundary runs into difficulties when sections in the
relro segment are aligned;  Adjusting the start by (next_page - end)
sometimes results in more than that adjustment occurring at the end,
overrunning the page boundary.  So when that occurs we try a new lower
start position by masking the adjusted start with the maximum section
alignment.  However, we didn't consider that this masked start address
may in fact be before the initial relro base, which is silly since
that can only increase padding at the relro end.

I've also moved some calculations closer to where they are used, and
comments closer to the relevant statements.

* ldlang.c (lang_size_sections): When alignment of sections
results in relro base adjustment being too large, don't go lower
than the initial value.
* ldexp.c (fold_binary <DATA_SEGMENT_RELRO_END>): Comment.
* scripttempl/elf.sc (DATA_SEGMENT_ALIGN): Omit SEGMENT_SIZE
alignment when SEGMENT_SIZE is the same as MAXPAGESIZE.

9 years agosim: m32c: enable warnings & clean up a bunch
Mike Frysinger [Wed, 1 Apr 2015 06:21:21 +0000 (02:21 -0400)] 
sim: m32c: enable warnings & clean up a bunch

This doesn't clean up all the warnings, just most of them.
The ones that are left will require some care to unravel.

9 years agosim: run: punt!
Mike Frysinger [Tue, 31 Mar 2015 05:13:12 +0000 (01:13 -0400)] 
sim: run: punt!

Now that all targets have been converted to nrun, we can finally punt
this old inconsistent interface.

A few stray references to the old run were sprinkled about; clean them
up in the process.

We leave behind the run(1) man page mostly so that we get it updated for
the new nrun interface.

9 years agosim: update zlib handling
Mike Frysinger [Wed, 1 Apr 2015 03:32:49 +0000 (23:32 -0400)] 
sim: update zlib handling

With zlib being mandatory, and the updated m4 configs, we need to regen
and use the new settings w/bfd to avoid linkage errors.

9 years agoYet another warning fix
Alan Modra [Wed, 1 Apr 2015 02:31:38 +0000 (13:01 +1030)] 
Yet another warning fix

Older compilers that warn wrongly will just need -Wno-error.  No way
am I going to init every single field, then have to edit this code
whenever bfd_link_hash_entry changes.  Another option, making the
struct static, isn't very nice since it means larger binaries and
worse code.

* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Don't
init ehdr_start_save.

9 years agoFix ld eelf32ppcvxworks.c dependencies
Alan Modra [Wed, 1 Apr 2015 00:13:20 +0000 (10:43 +1030)] 
Fix ld eelf32ppcvxworks.c dependencies

* Makefile.am (eelf32ppcvxworks.c): Depend on ppc32elf.em and
ldemul-list.h.
(eelf32lppc.c, eelf32lppclinux.c, eelf32lppcnto.c, eelf32lppcsim.c,
eelf32ppc.c, eelf32ppc_fbsd.c, eelf32ppclinux.c, eelf32ppcnto.c,
eelf32ppcsim.c): Rearrange deps for consistency.
* Makefile.in: Regenerate.

9 years agoFixes for a small number of compiler warnings
Ed Schouten [Tue, 31 Mar 2015 14:47:10 +0000 (16:47 +0200)] 
Fixes for a small number of compiler warnings

The ehdr_start_save variable does not need to be initialized.  However,
not initializing it will trigger a compiler warning when using older
versions of GCC.  Self-assignment unfortunately doesn't work for Clang
as Clang has a warning similar to -Winit-self as part of -Wall.

* emultempl/elf32.em (gld*_before_allocation): Zero-initialize
the ehdr_start_save variable.

9 years agoAutomatic date update in version.in
GDB Administrator [Wed, 1 Apr 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

9 years agoImplement support for checking /proc/PID/coredump_filter
Sergio Durigan Junior [Tue, 31 Mar 2015 23:32:34 +0000 (19:32 -0400)] 
Implement support for checking /proc/PID/coredump_filter

This patch, as the subject says, extends GDB so that it is able to use
the contents of the file /proc/PID/coredump_filter when generating a
corefile.  This file contains a bit mask that is a representation of
the different types of memory mappings in the Linux kernel; the user
can choose to dump or not dump a certain type of memory mapping by
enabling/disabling the respective bit in the bit mask.  Currently,
here is what is supported:

  bit 0  Dump anonymous private mappings.
  bit 1  Dump anonymous shared mappings.
  bit 2  Dump file-backed private mappings.
  bit 3  Dump file-backed shared mappings.
  bit 4 (since Linux 2.6.24)
         Dump ELF headers.
  bit 5 (since Linux 2.6.28)
         Dump private huge pages.
  bit 6 (since Linux 2.6.28)
         Dump shared huge pages.

(This table has been taken from core(5), but you can also read about it
on Documentation/filesystems/proc.txt inside the Linux kernel source
tree).

The default value for this file, used by the Linux kernel, is 0x33,
which means that bits 0, 1, 4 and 5 are enabled.  This is also the
default for GDB implemented in this patch, FWIW.

Well, reading the file is obviously trivial.  The hard part, mind you,
is how to determine the types of the memory mappings.  For that, I
extended the code of gdb/linux-tdep.c:linux_find_memory_regions_full and
made it rely *much more* on the information gathered from
/proc/<PID>/smaps.  This file contains a "verbose dump" of the
inferior's memory mappings, and we were not using as much information as
we could from it.  If you want to read more about this file, take a look
at the proc(5) manpage (I will also write a blog post soon about
everything I had to learn to get this patch done, and when I it is ready
I will post it here).

With Oleg Nesterov's help, we could improve the current algorithm for
determining whether a memory mapping is anonymous/file-backed,
private/shared.  GDB now also respects the MADV_DONTDUMP flag and does
not dump the memory mapping marked as so, and will always dump
"[vsyscall]" or "[vdso]" mappings (just like the Linux kernel).

In a nutshell, what the new code is doing is:

- If the mapping is associated to a file whose name ends with
  " (deleted)", or if the file is "/dev/zero", or if it is "/SYSV%08x"
  (shared memory), or if there is no file associated with it, or if
  the AnonHugePages: or the Anonymous: fields in the /proc/PID/smaps
  have contents, then GDB considers this mapping to be anonymous.
  There is a special case in this, though: if the memory mapping is a
  file-backed one, but *also* contains "Anonymous:" or
  "AnonHugePages:" pages, then GDB considers this mapping to be *both*
  anonymous and file-backed, just like the Linux kernel does.  What
  that means is simple: this mapping will be dumped if the user
  requested anonymous mappings *or* if the user requested file-backed
  mappings to be present in the corefile.

  It is worth mentioning that, from all those checks described above,
  the most fragile is the one to see if the file name ends with
  " (deleted)".  This does not necessarily mean that the mapping is
  anonymous, because the deleted file associated with the mapping may
  have been a hard link to another file, for example.  The Linux
  kernel checks to see if "i_nlink == 0", but GDB cannot easily do
  this check (as it has been discussed, GDB would need to run as root,
  and would need to check the contents of the /proc/PID/map_files/
  directory in order to determine whether the deleted was a hardlink
  or not).  Therefore, we made a compromise here, and we assume that
  if the file name ends with " (deleted)", then the mapping is indeed
  anonymous.  FWIW, this is something the Linux kernel could do
  better: expose this information in a more direct way.

- If we see the flag "sh" in the VmFlags: field (in /proc/PID/smaps),
  then certainly the memory mapping is shared (VM_SHARED).  If we have
  access to the VmFlags, and we don't see the "sh" there, then
  certainly the mapping is private.  However, older Linux kernels (see
  the code for more details) do not have the VmFlags field; in that
  case, we use another heuristic: if we see 'p' in the permission
  flags, then we assume that the mapping is private, even though the
  presence of the 's' flag there would mean VM_MAYSHARE, which means
  the mapping could still be private.  This should work OK enough,
  however.

Finally, it is worth mentioning that I added a new command, 'set
use-coredump-filter on/off'.  When it is 'on', it will read the
coredump_filter' file (if it exists) and use its value; otherwise, it
will use the default value mentioned above (0x33) to decide which memory
mappings to dump.

gdb/ChangeLog:
2015-03-31  Sergio Durigan Junior  <sergiodj@redhat.com>
    Jan Kratochvil  <jan.kratochvil@redhat.com>
    Oleg Nesterov  <oleg@redhat.com>

PR corefiles/16092
* linux-tdep.c: Include 'gdbcmd.h' and 'gdb_regex.h'.
New enum identifying the various options of the coredump_filter
file.
(struct smaps_vmflags): New struct.
(use_coredump_filter): New variable.
(decode_vmflags): New function.
(mapping_is_anonymous_p): Likewise.
(dump_mapping_p): Likewise.
(linux_find_memory_regions_full): New variables
'coredumpfilter_name', 'coredumpfilterdata', 'pid', 'filterflags'.
Removed variable 'modified'.  Read /proc/<PID>/smaps file; improve
parsing of its information.  Implement memory mapping filtering
based on its contents.
(show_use_coredump_filter): New function.
(_initialize_linux_tdep): New command 'set use-coredump-filter'.
* NEWS: Mention the possibility of using the
'/proc/PID/coredump_filter' file when generating a corefile.
Mention new command 'set use-coredump-filter'.

gdb/doc/ChangeLog:
2015-03-31  Sergio Durigan Junior  <sergiodj@redhat.com>

PR corefiles/16092
* gdb.texinfo (gcore): Mention new command 'set
use-coredump-filter'.
(set use-coredump-filter): Document new command.

gdb/testsuite/ChangeLog:
2015-03-31  Sergio Durigan Junior  <sergiodj@redhat.com>

PR corefiles/16092
* gdb.base/coredump-filter.c: New file.
* gdb.base/coredump-filter.exp: Likewise.

9 years agoCatch exception on solib_svr4_r_ldsomap
Sergio Durigan Junior [Tue, 31 Mar 2015 23:17:23 +0000 (19:17 -0400)] 
Catch exception on solib_svr4_r_ldsomap

When loading a corefile that has some inaccessible memory region(s),
GDB complains about it:

   (gdb) core /my/corefile
   [New LWP 28468]
   Cannot access memory at address 0x355fc21148
   Cannot access memory at address 0x355fc21140
   (gdb)

However, despite not seeing the message "Core was generated by...", it
is still possible to inspect the corefile using regular GDB commands.
The reason for that is because read_memory_unsigned_integer throws an
exception when it cannot read the memory region, but
solib_svr4_r_ldsomap was not catching it.  The fix is to catch the
exception and act accordingly.

Tested on Fedora 20 x86_64, no regressions found.

gdb/ChangeLog:
2015-03-31  Sergio Durigan Junior  <sergiodj@redhat.com>

* solib-svr4.c (solib_svr4_r_ldsomap): Catch possible exception by
read_memory_unsigned_integer.

9 years agoAdd missing ChangeLog entry
H.J. Lu [Tue, 31 Mar 2015 20:15:43 +0000 (13:15 -0700)] 
Add missing ChangeLog entry

9 years agoAdd missing ChangeLog entry
H.J. Lu [Tue, 31 Mar 2015 20:15:01 +0000 (13:15 -0700)] 
Add missing ChangeLog entry

9 years agoRemove --with-target-subdir=. --disable-multilib
H.J. Lu [Tue, 31 Mar 2015 18:36:17 +0000 (11:36 -0700)] 
Remove --with-target-subdir=. --disable-multilib

zlib/configure is updated to properly handle in-tree build for host.

* src-release.sh: Don't configure with  --with-target-subdir=.
--disable-multilib.

9 years agoUse AM_ENABLE_MULTILIB only if with_target_subdir isn't empty
H.J. Lu [Tue, 31 Mar 2015 18:35:30 +0000 (11:35 -0700)] 
Use AM_ENABLE_MULTILIB only if with_target_subdir isn't empty

* configure.ac (AM_ENABLE_MULTILIB): Use only if
${with_target_subdir} isn't empty.
* configure: Regenerated.

9 years agoReplace src-release with src-release.sh
H.J. Lu [Tue, 31 Mar 2015 18:44:00 +0000 (11:44 -0700)] 
Replace src-release with src-release.sh

* src-release.sh (DEVO_SUPPORT): Replace src-release with
src-release.sh.

9 years agoAdd --with-system-zlib in gdb
H.J. Lu [Tue, 31 Mar 2015 15:24:02 +0000 (08:24 -0700)] 
Add --with-system-zlib in gdb

This patch adds --with-system-zlib and removes --with-zlib in gdb.

* Makefile.in (ZLIB): New.
(ZLIBINC): Likewise.
(INTERNAL_CFLAGS_BASE): Add $(ZLIBINC).
(CLIBS): Add $(ZLIB).
* acinclude.m4: (GDB_AC_CHECK_BFD): Add $zlibdir to LDFLAGS.
Add -lz to LIBS.
* gdb_bfd.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
* top.c (print_gdb_configuration): Remove --with-zlib and
--without-zlib.
* config.in: Regenerated.
* configure: Likewise.

9 years agoRemove the last change on dw2-compress-1.d
H.J. Lu [Tue, 31 Mar 2015 15:20:55 +0000 (08:20 -0700)] 
Remove the last change on dw2-compress-1.d

The compressed .debug_info section is bigger than the original in 32-bit.

9 years agoAdd support for Nuxi CloudABI on x86-64
Ed Schouten [Tue, 31 Mar 2015 09:33:45 +0000 (11:33 +0200)] 
Add support for Nuxi CloudABI on x86-64

bfd/

* config.bfd (targ_defvec): Set to x86_64_elf64_cloudabi_vec
for x86_64-*-cloudabi*.
* configure.ac: Handle x86_64_elf64_cloudabi_vec.
* configure: Regenerated.
* elf64-x86-64.c (TARGET_LITTLE_SYM): Support x86_64-*-cloudabi*.
(TARGET_LITTLE_NAME): Likewise.
(ELF_OSABI): Likewise.
(elf64_bed): Likewise.
* targets.c (x86_64_elf64_cloudabi_vec): New.
(_bfd_target_vector): Add x86_64_elf64_cloudabi_vec.

gas/

* configure.tgt (fmt): Set to elf for *-*-cloudabi*.

ld/

* Makefile.am (ALL_64_EMULATION_SOURCES): Add
eelf_x86_64_cloudabi.c.
(eelf_x86_64_cloudabi.c): New.
* configure.tgt (targ_emul): Set to elf_x86_64_cloudabi for
x86_64-*-cloudabi*.
* Makefile.in: Regenerated.
* emulparams/elf_x86_64_cloudabi.sh: New file.

9 years agodwarf.exp: Allow generating a stub .debug_line section
Petr Machata [Mon, 23 Feb 2015 14:41:52 +0000 (15:41 +0100)] 
dwarf.exp: Allow generating a stub .debug_line section

Example of use:

Dwarf::assemble "foo.s" {
    build_id 0102030405060708

    declare_labels L;
    cu {is_64 0 version 4 addr_size 8} {
DW_TAG_compile_unit {
    {DW_AT_stmt_list $L DW_FORM_sec_offset}
} {
    DW_TAG_subprogram {
# We can now reference the source file.
{DW_AT_decl_file 1 DW_FORM_data1}
    }
}
    }

    lines {is_64 0 version 2 addr_size 8} L {
include_dir "foo"
include_dir "bar"
file_name "foo.c" 1
file_name "bar.c" 1
file_name "baz.c" 2
    }
}

Signed-off-by: Petr Machata <pmachata@redhat.com>
9 years agoRevert the AM_ZLIB change in gas
H.J. Lu [Tue, 31 Mar 2015 12:55:18 +0000 (05:55 -0700)] 
Revert the AM_ZLIB change in gas

* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.

9 years agoRevert the AM_ZLIB change in binutils
H.J. Lu [Tue, 31 Mar 2015 12:55:46 +0000 (05:55 -0700)] 
Revert the AM_ZLIB change in binutils

* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.

9 years agoRevert the AM_ZLIB change in bfd
H.J. Lu [Tue, 31 Mar 2015 12:54:55 +0000 (05:54 -0700)] 
Revert the AM_ZLIB change in bfd

* configure.ac: Revert the AM_ZLIB change.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.

9 years agoReplace --with-zlib with --with-system-zlib
H.J. Lu [Tue, 31 Mar 2015 12:53:39 +0000 (05:53 -0700)] 
Replace --with-zlib with --with-system-zlib

* zlib.m4 (AM_ZLIB): Replace --with-zlib with --with-system-zlib.

9 years agoAdd cpu information to the info os command on linux.
Antoine Tremblay [Wed, 25 Mar 2015 15:49:05 +0000 (11:49 -0400)] 
Add cpu information to the info os command on linux.

This patch adds cpu information on linux based on /proc/cpuinfo as :
cpus       Listing of all cpus/cores on the system

This patch also reorders the info os commands so that they are listed
in alphabetical order.

gdb/ChangeLog:

* NEWS: Mention info os cpus support.
* gdb/nat/linux-osdata.c (linux_xfer_osdata_cpus): New function.
(struct osdata_type): Add cpus entry, reorder the entries in
alphabetical order.

gdb/doc/ChangeLog:

* gdb.texinfo (Operating System Auxiliary Information): Add info os cpus
documentation, reorder the info os entries in alphabetical order.

9 years agoFix the triplet regexp to recognize triplets, not only quadruplets
Matthias Klose [Tue, 31 Mar 2015 13:15:42 +0000 (14:15 +0100)] 
Fix the triplet regexp to recognize triplets, not only quadruplets

This allows triplets where the vendor is not set.

gdb/ChangeLog:
2015-03-31  Matthias Klose  <doko@ubuntu.com>

* compile/compile.c (compile_to_object): Allow triplets with or
without vendor set.

9 years agoRemove --with-zlib from ld
H.J. Lu [Tue, 31 Mar 2015 10:58:15 +0000 (03:58 -0700)] 
Remove --with-zlib from ld

This patch removes --with-zlib from ld.

ld/

* configure.ac (AM_ZLIB): Removed.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.

ld/testsuite/

* ld-bootstrap/bootstrap.exp (extralibs): Add -lz.

9 years agoAdd --with-system-zlib in gas
H.J. Lu [Tue, 31 Mar 2015 10:55:56 +0000 (03:55 -0700)] 
Add --with-system-zlib in gas

This patch adds --with-system-zlib and remove --with-zlib in gas.

gas/

* Makefile.am (ZLIBINC): New.
(AM_CFLAGS): Add $(ZLIBINC).
* as.c: (show_usage): Don't check HAVE_ZLIB_H.
(parse_args): Likewise.
* compress-debug.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(compress_init): Don't check HAVE_ZLIB_H.
(compress_data): Likewise.
(compress_finish): Likewise.
* configure.ac (AM_ZLIB): Removed.
(zlibinc): New.  AC_SUBST.
Add --with-system-zlib.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.

gas/testsuite/

* gas/i386/dw2-compress-1.d: Expect .zdebug_info.

9 years agoAdd --with-system-zlib in binutils
H.J. Lu [Tue, 31 Mar 2015 10:53:41 +0000 (03:53 -0700)] 
Add --with-system-zlib in binutils

This patch adds --with-system-zlib and remove --with-zlib in binutils.

* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Add $(ZLIBINC).
(readelf_LDADD): Add $(ZLIB).
* configure.ac (AM_ZLIB): Removed.
(zlibdir): New.  AC_SUBST.
(zlibinc): Likewise.
Add --with-system-zlib.
* readelf.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(uncompress_section_contents): Don't check HAVE_ZLIB_H.
* Makefile.in: Regenerated.
* config.in: Likewise.
* configure: Likewise.

9 years agosim: cr16/d10v: restore generated headers dep
Mike Frysinger [Tue, 31 Mar 2015 05:59:44 +0000 (01:59 -0400)] 
sim: cr16/d10v: restore generated headers dep

While cleaning up stale make rules, one too many were deleted.  The
build system autogenerates static rules, but not generated files.

9 years agocommon: cgen-mem/cgen-ops: fix extern inline handling
Mike Frysinger [Tue, 31 Mar 2015 05:58:01 +0000 (01:58 -0400)] 
common: cgen-mem/cgen-ops: fix extern inline handling

With newer versions of gcc (5.x), the extern inline we're using with the
cgen-{mem,ops} modules no longer work.  Since this code really wants the
gnu inline semantics, use that attribute explicitly.

9 years agosim: m68hc11: fix gcc-5 build error w/restrict keyword
Mike Frysinger [Tue, 31 Mar 2015 05:54:47 +0000 (01:54 -0400)] 
sim: m68hc11: fix gcc-5 build error w/restrict keyword

9 years agoAutomatic date update in version.in
GDB Administrator [Tue, 31 Mar 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

9 years agoPR c++/18141
Doug Evans [Mon, 30 Mar 2015 23:41:05 +0000 (16:41 -0700)] 
PR c++/18141

gdb/ChangeLog:

PR c++/18141
* cp-namespace.c (cp_search_static_and_baseclasses): Always look for
klass in VAR_DOMAIN.

9 years agoSupport AARCH64_TLSLD_ADD_DTPREL_* relocations.
Jing Yu [Mon, 30 Mar 2015 21:06:12 +0000 (14:06 -0700)] 
Support AARCH64_TLSLD_ADD_DTPREL_* relocations.

Also Change _TLS_MODULE_BASE_. Always let it point to the start
of TLS segment.

2015-03-28  Jing Yu  <jingyu@google.com>

* aarch64-reloc.def: New TLSLD_ADD_DTPREL_HI12,
TLSLD_ADD_DTPREL_LO12_NC.
* aarch64.cc (Target_aarch64::define_tls_base_symbol): Always
let _TLS_MODULE_BASE_ point to the start of tls segment.
(Target_aarch64::optimize_tls_reloc): Add cases for
R_AARCH64_TLSLD_ADD_DTPREL_HI12 and
R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC.
(Target_aarch64::Scan::local): Likewise.
(Target_aarch64::Scan::global): Likewise.
(Target_aarch64::Relocate::relocate): Likewise.
(Target_aarch64::Relocate::relocate_tls): Likewise. And remove
subtracting tls segment size from symbol value for
TLSLD_*_DTPREL relocations.

9 years agoUpdate config.guess and config.sub to the latest upstream version
Ed Schouten [Sat, 28 Mar 2015 07:33:21 +0000 (08:33 +0100)] 
Update config.guess and config.sub to the latest upstream version

This version adds support for a platform I'd like to add support for,
namely CloudABI.

9 years agoMake all-bfd depend on all-zlib
H.J. Lu [Mon, 30 Mar 2015 17:17:40 +0000 (10:17 -0700)] 
Make all-bfd depend on all-zlib

* Makefile.def (dependencies): Add all-zlib to all-bfd.
* Makefile.in: Regenerated.

9 years agosim: arm: convert to nrun
Mike Frysinger [Mon, 30 Mar 2015 07:05:57 +0000 (03:05 -0400)] 
sim: arm: convert to nrun

A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point.  But at least this
is an improvement on the status quo.

9 years agosim: arm: delete NEED_UI_LOOP_HOOK handling
Mike Frysinger [Mon, 30 Mar 2015 06:45:41 +0000 (02:45 -0400)] 
sim: arm: delete NEED_UI_LOOP_HOOK handling

9 years agosim: arm: clean up misc warnings
Mike Frysinger [Mon, 30 Mar 2015 06:41:51 +0000 (02:41 -0400)] 
sim: arm: clean up misc warnings

Also delete a few unused funcs.

9 years agosim: arm: use common configure options
Mike Frysinger [Mon, 30 Mar 2015 06:27:22 +0000 (02:27 -0400)] 
sim: arm: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This doesn't produce any new warnings, and the generated
code should be the same.

9 years agoRemove three redundant wrapper functions in remote.c
Gary Benson [Mon, 30 Mar 2015 13:58:33 +0000 (14:58 +0100)] 
Remove three redundant wrapper functions in remote.c

gdb/ChangeLog:

* remote.c (remote_mourn_1): Remove function.  Update all callers
to use remote_mourn.
(extended_remote_mourn_1): Remove function.  Update all callers
to use extended_remote_mourn.
(extended_remote_attach_1): Remove function.  Update all callers
to use extended_remote_attach.

9 years agoProperly set sh_info for .rela.plt/rel.plt section
H.J. Lu [Mon, 30 Mar 2015 11:40:33 +0000 (04:40 -0700)] 
Properly set sh_info for .rela.plt/rel.plt section

Since .rela.plt/rel.plt section may contain relocations against .got.plt
section, we set sh_info for .rela.plt/rel.plt section to .got.plt section
index if target has .got.plt section.

bfd/

PR ld/18169
* elf-bfd.h (elf_backend_data): Add get_reloc_section.
(_bfd_elf_get_reloc_section): New.
* elf.c (_bfd_elf_get_reloc_section): Likewise.
(assign_section_numbers): Call get_reloc_section to look up the
section the relocs apply.
* elfxx-target.h (elf_backend_get_reloc_section): Likewise.
(elfNN_bed): Initialize get_reloc_section with
elf_backend_get_reloc_section.

ld/testsuite/

PR ld/18169
* ld-elf/linkinfo1a.d: Updated.
* ld-elf/linkinfo1b.d: Likewise.

9 years agosim: arm: move COPRO settings to the makefile
Mike Frysinger [Mon, 30 Mar 2015 06:26:24 +0000 (02:26 -0400)] 
sim: arm: move COPRO settings to the makefile

These values are the same all the time, so just list them directly in
the Makefile.

9 years agosim: d10v: add missing sim-main.h
Mike Frysinger [Mon, 30 Mar 2015 07:06:20 +0000 (03:06 -0400)] 
sim: d10v: add missing sim-main.h

9 years agosim: d10v: convert to nrun
Mike Frysinger [Mon, 30 Mar 2015 06:05:33 +0000 (02:05 -0400)] 
sim: d10v: convert to nrun

A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point.  But at least this
is an improvement on the status quo.

9 years agosim: d10v: delete NEED_UI_LOOP_HOOK handling
Mike Frysinger [Mon, 30 Mar 2015 05:44:57 +0000 (01:44 -0400)] 
sim: d10v: delete NEED_UI_LOOP_HOOK handling

This hook is used only when linked into gdb, and d10v doesn't have a gdb
port anymore.  Punt it.

9 years agosim: d10v: clean up misc warnings
Mike Frysinger [Mon, 30 Mar 2015 05:38:59 +0000 (01:38 -0400)] 
sim: d10v: clean up misc warnings

9 years agosim: d10v: use common configure options
Mike Frysinger [Mon, 30 Mar 2015 05:14:04 +0000 (01:14 -0400)] 
sim: d10v: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This doesn't produce any new warnings, and the generated
code should be the same.

9 years agoopcodes: d10v: fix old style prototype
Mike Frysinger [Mon, 30 Mar 2015 05:40:09 +0000 (01:40 -0400)] 
opcodes: d10v: fix old style prototype

9 years agosim: d10v: link in missing testsuite
Mike Frysinger [Mon, 30 Mar 2015 05:06:57 +0000 (01:06 -0400)] 
sim: d10v: link in missing testsuite

Looks like historical restructuring in this dir lost the d10v-elf subdir
and no one noticed in the meantime.  Re-add it to the testsuite.

There are some failures, but better some tests get run than none at all.

9 years agosim: cr16: convert to nrun
Mike Frysinger [Mon, 30 Mar 2015 04:13:38 +0000 (00:13 -0400)] 
sim: cr16: convert to nrun

A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point.  But at least this
is an improvement on the status quo.

9 years agosim: cr16: delete NEED_UI_LOOP_HOOK handling
Mike Frysinger [Mon, 30 Mar 2015 04:10:27 +0000 (00:10 -0400)] 
sim: cr16: delete NEED_UI_LOOP_HOOK handling

This hook is used only when linked into gdb, and cr16 doesn't have a gdb
port anymore.  Punt it.

9 years agosim: cr16: delete dead code
Mike Frysinger [Mon, 30 Mar 2015 04:08:46 +0000 (00:08 -0400)] 
sim: cr16: delete dead code

This code is getting in the way of porting to nrun, so just drop it.
If anyone actually cares about this cpu, they can revive it.

9 years agosim: cr16: clean up misc warnings
Mike Frysinger [Mon, 30 Mar 2015 02:41:14 +0000 (22:41 -0400)] 
sim: cr16: clean up misc warnings

9 years agosim: cr16: use common configure options
Mike Frysinger [Mon, 30 Mar 2015 02:42:33 +0000 (22:42 -0400)] 
sim: cr16: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This doesn't produce any new warnings, and the generated
code should be the same.

9 years agosim: cr16: add _start symbol to tests [BZ #12385]
Mike Frysinger [Mon, 30 Mar 2015 01:00:20 +0000 (21:00 -0400)] 
sim: cr16: add _start symbol to tests [BZ #12385]

The current cr16 testsuite sets up _START, but the linker looks for the
_start symbol.  Add the latter as an alias to the former.

9 years agoAutomatic date update in version.in
GDB Administrator [Mon, 30 Mar 2015 00:00:07 +0000 (00:00 +0000)] 
Automatic date update in version.in

9 years agosim: microblaze: convert to nrun
Mike Frysinger [Sun, 29 Mar 2015 21:40:30 +0000 (17:40 -0400)] 
sim: microblaze: convert to nrun

This port already was storing its cpu state in the sim_cpu structure, so
converting it over was pretty easy.  It is allocating memory itself still,
but we'll fix that up in the future at some point.

9 years agosim: mcore/microblaze: delete dead code
Mike Frysinger [Sun, 29 Mar 2015 21:20:37 +0000 (17:20 -0400)] 
sim: mcore/microblaze: delete dead code

The mcore port had a few structs/defines that were never used.

Similarly, the microblaze port, because it was copied from mcore, has
that same dead code, and more.  The watchpoint logic was never actually
used.  Punt it all.

9 years agosim: microblaze: start a testsuite
Mike Frysinger [Sun, 29 Mar 2015 20:43:48 +0000 (16:43 -0400)] 
sim: microblaze: start a testsuite

Since the sim doesn't have any debug support in it, we can only exit
cleanly.  But this is still better than nothing.

Change the default microblaze sim to not dump the debug load output
when running.  No other does this, and it breaks the testsuite.

9 years agosim; testsuite: allow tests to set no output
Mike Frysinger [Sun, 29 Mar 2015 20:41:59 +0000 (16:41 -0400)] 
sim; testsuite: allow tests to set no output

If a test doesn't write anything at all to stdout, the current test
framework can't support that.  Even if you put a blank output line:
# output:
the setup happily clobbers that with a default pass/fail string.

Tweak the parsing logic so we only set the output to pass/fail when
the test has no output marker.

9 years agosim: common: sim-arange: fix extern inline handling
Mike Frysinger [Sun, 29 Mar 2015 19:59:01 +0000 (15:59 -0400)] 
sim: common: sim-arange: fix extern inline handling

With newer versions of gcc (5.x), the extern inline we're using with the
sim-arange module no longer works.  Since this code really wants the gnu
inline semantics, use that attribute explicitly.

Reported-by: DJ Delorie <dj@redhat.com>
Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
9 years agosim: testsuite: make subdir unconditional
Mike Frysinger [Sun, 29 Mar 2015 15:48:46 +0000 (11:48 -0400)] 
sim: testsuite: make subdir unconditional

Since the testsuite subdir has to handle dynamic arch values already,
there's no real value in requiring arches to opt in to it.  Most have
a testsuite now anyways, and we're requiring it in the future.

9 years agosim: microblaze: use common configure options
Mike Frysinger [Sun, 29 Mar 2015 08:18:03 +0000 (04:18 -0400)] 
sim: microblaze: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This doesn't produce any new warnings, and the generated
code should be the same.

9 years agoAdd the missing opcodes/ChangeLog entry
H.J. Lu [Sun, 29 Mar 2015 14:46:30 +0000 (07:46 -0700)] 
Add the missing opcodes/ChangeLog entry

9 years agoRegenerate opcodes/Makefile.in
H.J. Lu [Sun, 15 Mar 2015 12:41:46 +0000 (05:41 -0700)] 
Regenerate opcodes/Makefile.in

* Makefile.in: Regenerated.

9 years agoFix a typo in bfd/ChangeLog
H.J. Lu [Sun, 29 Mar 2015 14:36:27 +0000 (07:36 -0700)] 
Fix a typo in bfd/ChangeLog

9 years agoAdd --with-system-zlib in bfd
H.J. Lu [Sun, 29 Mar 2015 14:12:38 +0000 (07:12 -0700)] 
Add --with-system-zlib in bfd

This patch adds --with-system-zlib and remove --with-zlib in bfd.

* Makefile.am (ZLIB): New.
(ZLIBINC): Likewise.
(AM_CFLAGS): Add $(ZLIBINC).
(libbfd_la_LIBADD): Add $(ZLIB).
* compress.c: Don't check HAVE_ZLIB_H to include <zlib.h>.
(decompress_contents): Don't check HAVE_ZLIB_H.
(decompress_contents): Likewise.
(bfd_compress_section_contents): Likewise.
(bfd_get_full_section_contents): Likewise.
(bfd_init_section_decompress_status): Likewise.
(bfd_init_section_compress_status): Likewise.
* configure.ac (AM_ZLIB): Removed
(zlibdir): New.  AC_SUBST.
(zlibinc): Likewise.
Add --with-system-zlib.
* Makefile.in: Regenerated.
* acinclude.m4: Likewise.
* config.in: Likewise.
* configure: Likewise.
* doc/Makefile.in: Likewise.

9 years agosim: mcore: convert to nrun
Mike Frysinger [Sun, 29 Mar 2015 07:53:01 +0000 (03:53 -0400)] 
sim: mcore: convert to nrun

A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point.  But at least this
is an improvement on the status quo.

9 years agosim: mcore: use common configure options
Mike Frysinger [Sun, 29 Mar 2015 07:39:01 +0000 (03:39 -0400)] 
sim: mcore: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This doesn't produce any new warnings, and the generated
code should be the same.

9 years agosim: mcore: add a basic testsuite
Mike Frysinger [Sun, 29 Mar 2015 07:35:29 +0000 (03:35 -0400)] 
sim: mcore: add a basic testsuite

9 years agosim: mcore: drop sbrk support
Mike Frysinger [Sun, 29 Mar 2015 07:29:29 +0000 (03:29 -0400)] 
sim: mcore: drop sbrk support

The sbrk syscall assumes the sbrk region starts after the bss and the
current implementation requires a bss section to exist.  Since there
is no requirement for programs to have a bss in general, we want to
drop this check.  However, there is still the sbrk syscall that wants
to know about the region.

Since libgloss doesn't actually use the sbrk syscall (it implements
sbrk in its own way), and the sim really shouldn't enforce a specific
memory layout on programs, lets simply delete sbrk support.  Now it
always returns an error.

9 years agosim: avr: fix _start testsuite symbol
Mike Frysinger [Sun, 29 Mar 2015 07:36:13 +0000 (03:36 -0400)] 
sim: avr: fix _start testsuite symbol

Make sure we use the symbol the linker expects by default, and we export
it so it can be found.

9 years agoAutomatic date update in version.in
GDB Administrator [Sun, 29 Mar 2015 00:00:08 +0000 (00:00 +0000)] 
Automatic date update in version.in

9 years agosim: sh: convert to nrun
Mike Frysinger [Sat, 28 Mar 2015 21:36:03 +0000 (17:36 -0400)] 
sim: sh: convert to nrun

A lot of cpu state is stored in global variables, as is memory handling.
The sim_size support needs unwinding at some point.  But at least this
is an improvement on the status quo.

9 years agosim: sh: clean up some warnings
Mike Frysinger [Sat, 28 Mar 2015 19:11:31 +0000 (15:11 -0400)] 
sim: sh: clean up some warnings

Mostly converting old style prototypes.  Also include a few missing
headers, and add static/casts where appropriate.

9 years agosim: sh: fix broken handling in DSR reg
Mike Frysinger [Sat, 28 Mar 2015 18:55:11 +0000 (14:55 -0400)] 
sim: sh: fix broken handling in DSR reg

A missing */ caused a case statement to be incorrect masked out which
also hide an error where the wrong value was being checked.  Fix both.

9 years agosim: sh: clean up gencode
Mike Frysinger [Sat, 28 Mar 2015 18:09:11 +0000 (14:09 -0400)] 
sim: sh: clean up gencode

The build line was missing the normal BUILD_xxx flags.  Once we added
that, we get warnings that weren't shown before.  As we fix those, we
notice that the -d option segfaults because it tries to write readonly
memory.  Fix that too as part of the const/prototype clean up.

9 years agosim: sh: use common configure options
Mike Frysinger [Sat, 28 Mar 2015 17:39:31 +0000 (13:39 -0400)] 
sim: sh: use common configure options

In preparation for converting to nrun, call the common functions that
are needed.  This also produces a bunch of warnings, but one thing at
a time.

9 years agoA zlib to tarball
H.J. Lu [Sat, 28 Mar 2015 13:48:43 +0000 (06:48 -0700)] 
A zlib to tarball

* src-release.sh (do_proto_toplev): Configure with --target
--with-target-subdir and --disable-multilib.
(BINUTILS_SUPPORT_DIRS): Add zlib.
(GAS_SUPPORT_DIRS): Likewise.
(GDB_SUPPORT_DIRS): Likewise.
(SIM_SUPPORT_DIRS): Likewise.

9 years agosim: avr: convert to nrun.o
Mike Frysinger [Sat, 28 Mar 2015 09:34:55 +0000 (05:34 -0400)] 
sim: avr: convert to nrun.o

Looks like a lot more work than actually was -- the main decode loop
was de-indented by dropping the loop as a step-once function.

9 years agosim: avr: start a basic testsuite
Mike Frysinger [Sat, 28 Mar 2015 08:28:46 +0000 (04:28 -0400)] 
sim: avr: start a basic testsuite

Just enough to know the sim isn't totally broken.

9 years agosim/erc32: Fix a few compiler warnings
Jiri Gaisler [Tue, 17 Mar 2015 21:02:42 +0000 (22:02 +0100)] 
sim/erc32: Fix a few compiler warnings

9 years agosim/erc32: Use memory_iread() function for instruction fetching.
Jiri Gaisler [Tue, 17 Mar 2015 21:02:41 +0000 (22:02 +0100)] 
sim/erc32: Use memory_iread() function for instruction fetching.

Use separate memory_iread() function for instruction fetching.
Speeds up execution and allows addition of an MMU at a later stage.

9 years agosim: erc32: strip paren from return statements
Mike Frysinger [Sat, 28 Mar 2015 06:46:48 +0000 (02:46 -0400)] 
sim: erc32: strip paren from return statements

9 years agogdb: ft32: new port
James Bowman [Mon, 23 Mar 2015 19:15:32 +0000 (19:15 +0000)] 
gdb: ft32: new port

FT32 is a new high performance 32-bit RISC core developed by FTDI for
embedded applications.

9 years agosim: ft32: new port
James Bowman [Mon, 23 Mar 2015 19:20:59 +0000 (19:20 +0000)] 
sim: ft32: new port

FT32 is a new high performance 32-bit RISC core developed by FTDI for
embedded applications.

9 years agoAutomatic date update in version.in
GDB Administrator [Sat, 28 Mar 2015 00:00:09 +0000 (00:00 +0000)] 
Automatic date update in version.in

9 years agoDon't run ld-x86-64/pr18160.d for x86_64-*-nacl*
H.J. Lu [Fri, 27 Mar 2015 21:39:39 +0000 (14:39 -0700)] 
Don't run ld-x86-64/pr18160.d for x86_64-*-nacl*

* ld-x86-64/pr18160.d: Don't run for x86_64-*-nacl* target.

9 years agoRevert: Code cleanup: Move print_command_1 expr variable scope
Jan Kratochvil [Fri, 27 Mar 2015 19:19:37 +0000 (20:19 +0100)] 
Revert: Code cleanup: Move print_command_1 expr variable scope

Simon Marchi:

I think this patch is wrong. Starting with that commit (f30d5c7),
some tests (e.g. mi-break.exp) started to fail for me, because
of gdb segfaulting.

The address of expr is passed to the cleanup. When the cleanup is ran,
expr is no longer in scope, so what is at that address is probably not
safe to use anymore. That's my guess.

gdb/ChangeLog
2015-03-27  Jan Kratochvil  <jan.kratochvil@redhat.com>

Revert:
2015-03-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
Code cleanup.
* printcmd.c (print_command_1): Move expr variable scope.

9 years agoRemove the unused cpu_flags_set
H.J. Lu [Fri, 27 Mar 2015 16:29:05 +0000 (09:29 -0700)] 
Remove the unused cpu_flags_set

* config/tc-i386.c (cpu_flags_set): Removed.

9 years agoInitialize EXPR in dtrace-probe::dtrace_process_dof_probe
Joel Brobecker [Fri, 27 Mar 2015 13:37:34 +0000 (06:37 -0700)] 
Initialize EXPR in dtrace-probe::dtrace_process_dof_probe

GCC 4.4.7 generates the following warning:

 | cc1: warnings being treated as errors
 | dtrace-probe.c: In function ‘dtrace_process_dof_probe’:
 | dtrace-probe.c:416: error: ‘expr’ may be used uninitialized in this function
 | make[2]: *** [dtrace-probe.o] Error 1

Later versions (GCC 5) do a better job and don't generate the warning,
but it does not hurt to pre-initialize "expr" to NULL.

gdb/ChangeLog:

        * dtrace-probe.c (dtrace_process_dof_probe): Initialize expr to NULL.

9 years agoAvoid looking up Input_merge_map multiple times.
Rafael Ávila de Espíndola [Fri, 27 Mar 2015 13:50:23 +0000 (09:50 -0400)] 
Avoid looking up Input_merge_map multiple times.

Avoid looking up Input_merge_map multiple times when we know were are
processing items from the same input section.

9 years agoFix gdb_bfd_section_index for special sections
Andrzej Kaczmarek [Fri, 27 Mar 2015 12:09:02 +0000 (12:09 +0000)] 
Fix gdb_bfd_section_index for special sections

Indexes returned for special sections are off by one, i.e. with N+4
sections last one has index N+4 returned which is outside allocated
obstack (at the same time index N is not used at all).

In worst case, if sections obstack is allocated up to end of chunk,
writing last section data will cause buffer overrun and some data
corruption.

Here's output from Valgrind::

==14630== Invalid write of size 8
==14630==    at 0x551B1A: add_to_objfile_sections_full (objfiles.c:225)
==14630==    by 0x552768: allocate_objfile (objfiles.c:324)
==14630==    by 0x4E8E2E: symbol_file_add_with_addrs (symfile.c:1171)
==14630==    by 0x4E9453: symbol_file_add_from_bfd (symfile.c:1280)
==14630==    by 0x4E9453: symbol_file_add (symfile.c:1295)
==14630==    by 0x4E94B7: symbol_file_add_main_1 (symfile.c:1320)
==14630==    by 0x514246: catch_command_errors_const (main.c:398)
==14630==    by 0x5150AA: captured_main (main.c:1061)
==14630==    by 0x51123C: catch_errors (exceptions.c:240)
==14630==    by 0x51569A: gdb_main (main.c:1164)
==14630==    by 0x408824: main (gdb.c:32)
==14630==  Address 0x635f3b8 is 8 bytes after a block of size 4,064 alloc'd
==14630==    at 0x4C2ABA0: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14630==    by 0x60F797: xmalloc (common-utils.c:41)
==14630==    by 0x5E787FB: _obstack_begin (obstack.c:184)
==14630==    by 0x552679: allocate_objfile (objfiles.c:294)
==14630==    by 0x4E8E2E: symbol_file_add_with_addrs (symfile.c:1171)
==14630==    by 0x4E9453: symbol_file_add_from_bfd (symfile.c:1280)
==14630==    by 0x4E9453: symbol_file_add (symfile.c:1295)
==14630==    by 0x4E94B7: symbol_file_add_main_1 (symfile.c:1320)
==14630==    by 0x514246: catch_command_errors_const (main.c:398)
==14630==    by 0x5150AA: captured_main (main.c:1061)
==14630==    by 0x51123C: catch_errors (exceptions.c:240)
==14630==    by 0x51569A: gdb_main (main.c:1164)
==14630==    by 0x408824: main (gdb.c:32)

gdb/ChangeLog:
* gdb_bfd.c (gdb_bfd_section_index): Fix off-by-one for special
sections.

9 years ago[Patch ]Fix bintest.s failure after previous AArch64 map symbol commit
Renlin Li [Fri, 27 Mar 2015 10:22:46 +0000 (10:22 +0000)] 
[Patch ]Fix bintest.s failure after previous AArch64 map symbol commit

2015-03-26  Renlin Li  <renlin.li@arm.com>

binutils/testsuite/
  * binutils-all/readelf.s-64: Support aarch64 case.
  * binutils-all/readelf.ss-64: Likewise.

9 years agoRelax PR 15228 protected visibility restriction
Alan Modra [Fri, 27 Mar 2015 05:11:05 +0000 (15:41 +1030)] 
Relax PR 15228 protected visibility restriction

Allows .dynbss copy of shared library protected visibility variables
if they are read-only.

To recap: Copying a variable from a shared library into an executable's
.dynbss is an old hack invented for non-PIC executables, to avoid the
text relocations you'd otherwise need to access a shared library
variable.  This works with ELF shared libraries because global
symbols can be overridden.  The trouble is that protected visibility
symbols can't be overridden.  A shared library will continue to access
it's own protected visibility variable while the executable accesses a
copy.  If either the shared library or the executable updates the
value then the copy diverges from the original.  This is wrong since
there is only one definition of the variable in the application.

So I made the linker report an error on attempting to copy protected
visibility variables into .dynbss.  However, you'll notice the above
paragraph contains an "If".  An application that does not modify the
variable value remains correct even though two copies of the variable
exist.  The linker can detect this situation if the variable was
defined in a read-only section.

PR ld/15228
PR ld/18167
* elflink.c (elf_merge_st_other): Add "sec" parameter.  Don't set
protected_def when symbol section is read-only.  Adjust all calls.
* elf-bfd.h (struct elf_link_hash_entry): Update protected_def comment.

This page took 0.046828 seconds and 4 git commands to generate.