Go to file
Joel Brobecker 043b651001 build failure on IRIX when building with Python support.
This is a nasty interaction between Python and GDB. Basically,
Python causes some macros to be unilaterally defined in order
to turns some features on:

    /* Define to activate features from IEEE Stds 1003.1-2001 */
    #define _POSIX_C_SOURCE 200112L

    /* Define to the level of X/Open that your system supports */
    #define _XOPEN_SOURCE 600

But the problem is that they turn off defines provided by some
system headers on which we depend. Namely:

  * sys/siginfo.h:

        #if _SGIAPI
        #define siginfo __siginfo
        #endif

  * sys/ucontext.h:

        #if _SGIAPI && !defined(__SGI_NOUCONTEXT_COMPAT)
        [...]
        #define fp_r            __fp_r
        [...]
        #define fp_csr          __fp_csr
        [...]
        #endif

The important macro here is _SGIAPI, defined as follow in standards.h:

        #define _SGIAPI ((defined(_SGI_SOURCE) && \
                                _NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5) || \
                        (_ANSIMODE && _NO_POSIX && _NO_XOPEN4 && _NO_XOPEN5))

If one builds GDB without Python, then _SGIAPI is true, and all is fine.
But building with Python causes both _POSIX_C_SOURCE and _XOPEN_SOURCE
to trip all the _NO_[...] tests (_NO_POSIX, _NO_XOPEN4, _NO_XOPEN5).
And so we get build failures because we try to use undefined types, or
non-existent component names inside the regset structure.

The latter problem is observed only within irix5-nat.c, which means
that it is specific to IRIX.  So it's easy to write the code in a way
that it does not require the macros (just use the real component names,
rather than relying on the macros to do the translation).

The former, on the other hand, is a little trickier, because the problem
occurs inside a generic unit (procfs.c). The solution I chose was to
adjust the configure script to add -Dsiginfo=__siginfo to the CPPFLAGS
if building with python using GCC on IRIX.

We hadn't seen this sort of issue up to now because the affect units
have not been dependent on the python includes up to now.  Recent changes
have made them indirectly dependent on Python, thus triggering the issues.

gdb/ChangeLog:

        * irix5-nat.c: Replace fp_r, fp_regs and fp_scr by __fp_r, __fp_regs
        and __fp_scr respectively throughout.
        * configure.ac: Compile with -Dsiginfo=__siginfo if building with
        Python using GCC on IRIX.
        * configure: Regenerate.
2010-12-14 07:17:15 +00:00
bfd daily update 2010-12-13 23:00:06 +00:00
binutils Fix typos in elfedit documentation. 2010-12-12 15:29:31 +00:00
config PR target/40125 2010-12-06 01:40:20 +00:00
cpu Fix build with -DDEBUG=7 2010-10-08 14:00:50 +00:00
elfcpp * elfcpp.h (enum SHT): Add SHT_GNU_INCREMENTAL_GOT_PLT. 2010-08-12 22:18:14 +00:00
etc PR other/46202: implement install-strip. 2010-11-20 19:37:58 +00:00
gas Mark .gnu.lto_* sections with SHF_EXCLUDE. 2010-12-12 14:49:25 +00:00
gdb build failure on IRIX when building with Python support. 2010-12-14 07:17:15 +00:00
gold * layout.cc (Layout::layout_gnu_stack): Add warnings for executable 2010-12-09 23:19:50 +00:00
gprof bfd/binutils/gas/gprof/ld/libiberty/opcodes: add .gitignore 2010-12-09 09:03:18 +00:00
include 2010-11-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 2010-11-25 09:33:54 +00:00
intl merge from gcc 2010-09-27 21:01:18 +00:00
ld * ldlang.c (load_symbols): Correct last change. 2010-12-13 01:06:35 +00:00
libdecnumber merge from gcc 2010-11-29 16:34:15 +00:00
libiberty bfd/binutils/gas/gprof/ld/libiberty/opcodes: add .gitignore 2010-12-09 09:03:18 +00:00
opcodes opcodes/ 2010-12-11 10:48:55 +00:00
readline Regenerate tree using Autoconf 2.64 and Automake 1.11. 2009-08-22 16:56:56 +00:00
sim * Makefile.in: Use CC_FOR_BUILD to build opc2c. 2010-12-04 01:58:55 +00:00
texinfo * texinfo/texinfo.tex: Update to version 2009-03-28.05. 2009-04-21 12:36:46 +00:00
.cvsignore
.gitignore start a gitignore 2010-11-17 19:34:59 +00:00
ChangeLog PR bootstrap/46819 2010-12-10 14:50:10 +00:00
compile Update automake-provided files in the toplevel. 2009-08-22 11:48:33 +00:00
config-ml.in Merge from gcc top-level. 2010-11-19 22:06:27 +00:00
config.guess /: 2010-06-01 17:53:40 +00:00
config.rpath * config.rpath: Add AIX 6 support. 2008-03-13 19:27:44 +00:00
config.sub /: 2010-06-01 17:53:40 +00:00
configure PR bootstrap/46819 2010-12-10 14:50:10 +00:00
configure.ac PR bootstrap/46819 2010-12-10 14:50:10 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS Fix typo in microblaze license. 2010-11-05 14:09:25 +00:00
COPYING.NEWLIB 2010-12-02 Jeff Johnston <jjohnstn@redhat.com> 2010-12-02 20:05:11 +00:00
depcomp Update automake-provided files in the toplevel. 2009-08-22 11:48:33 +00: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 automake-provided files in the toplevel. 2009-08-22 11:48:33 +00:00
libtool.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
ltgcc.m4 * libtool.m4: Update to libtool 2.2.6. 2008-09-29 15:28:14 +00:00
ltmain.sh Sync Libtool from GCC. 2010-01-09 21:11:44 +00: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
MAINTAINERS * MAINTAINERS: Perform some obvious fixups. 2009-08-19 02:53:50 +00:00
Makefile.def PR other/46020 2010-11-26 04:56:39 +00:00
Makefile.in PR other/46020 2010-11-26 04:56:39 +00:00
Makefile.tpl PR other/46020 2010-11-26 04:56:39 +00:00
makefile.vms
missing Update automake-provided files in the toplevel. 2009-08-22 11:48:33 +00:00
mkdep
mkinstalldirs Update automake-provided files in the toplevel. 2009-08-22 11:48:33 +00:00
move-if-change
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 2010-12-10 Tristan Gingold <gingold@adacore.com> 2010-12-10 09:10:49 +00:00
symlink-tree
ylwrap Update automake-provided files in the toplevel. 2009-08-22 11:48:33 +00: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.