binutils-gdb modified for the FreeChainXenon project
Find a file
Alan Modra b84171287f 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.
2015-03-27 16:20:32 +10:30
bfd Relax PR 15228 protected visibility restriction 2015-03-27 16:20:32 +10:30
binutils Add support for G13 and G14 flag bits in RL78 ELF binaries. 2015-03-19 15:37:43 +00:00
config Sync isl.m4 with GCC tree 2015-03-16 08:51:37 -07:00
cpu or1k: add missing l.msync, l.psync and l.psync instructions. 2014-07-20 20:26:09 +03:00
elfcpp [gold] Recognize DWARF5/GCC5 DW_LANG_Fortran03 and DW_LANG_Fortran08. 2015-02-17 08:08:24 +01:00
etc PR external/{16327,16328}: Remove etc/configure.texi and etc/standards.texi. 2014-06-27 11:33:25 +02:00
gas [AARCH64]Fix "align directive causes MAP_DATA symbol to be lost" 2015-03-25 12:33:07 +00:00
gdb testsuite: Don't set SYMBOL_PREFIX for x86_64_*_cygwin 2015-03-26 22:37:24 +00:00
gold PR18147, relocation overflow when --unresolved-symbols=ignore-all 2015-03-24 17:06:12 +10:30
gprof Regenerate Makeile.in file for copyright update 2015-01-02 22:27:27 +10:30
include Add ELFOSABI_CLOUDABI and SHF_COMPRESSED 2015-03-26 08:42:58 -07:00
intl merge from gcc 2010-09-27 21:01:18 +00:00
ld [AArch64] Fix branch stubs for BE 2015-03-26 16:20:38 +00:00
libdecnumber Another part of fixing "make TAGS". 2015-01-22 21:07:31 +02:00
libiberty strerror.c: Do not declare sys_nerr or sys_errlist if already macros 2015-01-19 16:29:07 +01:00
opcodes powerpc: Only initialise opcode indices once 2015-03-26 09:12:50 +11:00
readline Fix executable indicator in file name completion on Windows. 2014-12-30 21:14:25 +02:00
sim sim: m68hc11/mips/mn10300/v850: add basic sim_pc_get 2015-03-24 02:43:42 -04:00
texinfo * texinfo/texinfo.tex: Update to version 2009-03-28.05. 2009-04-21 12:36:46 +00:00
zlib Import zlib from GCC 2015-03-26 08:25:29 -07:00
.cvsignore add autom4te.cache to .cvsignore 2007-02-13 15:25:58 +00:00
.gitattributes Add a .gitattributes file for use with git-merge-changelog 2014-07-25 18:07:23 -04:00
.gitignore Sync the root .gitignore file with GCC's. 2013-01-11 15:17:35 +00:00
ChangeLog Exclude target-zlib if target-libjava isn't built 2015-03-17 17:07:22 -07:00
compile Update from upstream Automake 2014-11-16 13:43:48 +01:00
config-ml.in Sync config-ml.in with GCC trunk 2015-03-17 05:15:34 -07:00
config.guess config.sub, config.guess: Update from upstream, to 2015-01-01 version. 2015-01-02 10:40:57 +01:00
config.rpath Remove freebsd1 from libtool.m4 macros and config.rpath. 2011-02-13 21:00:14 +00:00
config.sub config.sub, config.guess: Update from upstream, to 2015-01-01 version. 2015-01-02 10:40:57 +01:00
configure Exclude target-zlib if target-libjava isn't built 2015-03-17 17:07:22 -07:00
configure.ac Exclude target-zlib if target-libjava isn't built 2015-03-17 17:07:22 -07:00
COPYING
COPYING.LIB 2005-07-16 Kelley Cook <kcook@gcc.gnu.org> 2005-07-16 02:41:34 +00:00
COPYING.LIBGLOSS 2013-01-07 Jeff Johnston <jjohnstn@redhat.com> 2013-01-07 21:39:26 +00:00
COPYING.NEWLIB 2013-10-01 Jeff Johnston <jjohnstn@redhat.com> 2013-10-01 18:14:04 +00:00
COPYING3 * COPYING3: New file. Contains version 3 of the GNU General Public License. 2007-07-17 13:50:23 +00:00
COPYING3.LIB * COPYING3: New file. Contains version 3 of the GNU General Public License. 2007-07-17 13:50:23 +00:00
depcomp Update from upstream Automake 2014-11-16 13:43:48 +01:00
djunpack.bat * djunpack.bat: Use ".." quoting in Sed command, for the sake of 2009-03-27 13:37:09 +00:00
install-sh Update from upstream Automake 2014-11-16 13:43:48 +01:00
libtool.m4 Update libtool.m4 from GCC trunk 2014-11-24 09:14:09 -08:00
ltgcc.m4 * libtool.m4: Update to libtool 2.2.6. 2008-09-29 15:28:14 +00:00
ltmain.sh PR target/59788 2014-02-06 11:01:57 +01:00
ltoptions.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
ltsugar.m4 * libtool.m4: Update to libtool 2.2.6. 2008-09-29 15:28:14 +00:00
ltversion.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
lt~obsolete.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
MAINTAINERS Update description of ownership of files in include/ 2014-11-04 16:14:14 -08:00
Makefile.def Update top-level files from GCC trunk 2015-03-16 09:12:37 -07:00
Makefile.in Update top-level files from GCC trunk 2015-03-16 09:12:37 -07:00
Makefile.tpl Update top-level files from GCC trunk 2015-03-16 09:12:37 -07:00
makefile.vms
missing Update from upstream Automake 2014-11-16 13:43:48 +01:00
mkdep
mkinstalldirs Update from upstream Automake 2014-11-16 13:43:48 +01:00
move-if-change Update `move-if-change' from gnulib 2014-11-16 17:04:02 +01:00
README
README-maintainer-mode Cleanups after the update to Autoconf 2.64, Automake 1.11. 2009-08-22 17:08:11 +00:00
setup.com 2009-09-01 Tristan Gingold <gingold@adacore.com> 2009-09-01 13:38:26 +00:00
src-release.sh src-release.sh: configure using --target. 2014-10-15 09:50:53 +02:00
symlink-tree
ylwrap Update from upstream Automake 2014-11-16 13:43:48 +01:00

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.