From 7467c5625969d38eb2d2cf8453023a508cb229b5 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sun, 16 Dec 2012 17:59:12 +0000 Subject: [PATCH] update patches and versions for devkitARM r42 --- build-devkit.sh | 2 +- dkarm-eabi/patches/binutils-2.22.patch | 162 -- dkarm-eabi/patches/binutils-2.23.1.patch | 13 + dkarm-eabi/patches/gcc-4.7.1.patch | 167 -- dkarm-eabi/patches/gcc-4.7.2.patch | 1269 ++++++++++++ dkarm-eabi/patches/gdb-7.4.1.patch | 32 - dkarm-eabi/patches/gdb-7.5.1.patch | 2224 ++++++++++++++++++++++ dkarm-eabi/scripts/build-gcc.sh | 2 +- select_toolchain.sh | 6 +- 9 files changed, 3511 insertions(+), 366 deletions(-) delete mode 100644 dkarm-eabi/patches/binutils-2.22.patch create mode 100644 dkarm-eabi/patches/binutils-2.23.1.patch delete mode 100644 dkarm-eabi/patches/gcc-4.7.1.patch create mode 100644 dkarm-eabi/patches/gcc-4.7.2.patch delete mode 100644 dkarm-eabi/patches/gdb-7.4.1.patch create mode 100644 dkarm-eabi/patches/gdb-7.5.1.patch diff --git a/build-devkit.sh b/build-devkit.sh index c6382ea..235d15e 100755 --- a/build-devkit.sh +++ b/build-devkit.sh @@ -1,7 +1,7 @@ #!/bin/bash #--------------------------------------------------------------------------------- # Build scripts for -# devkitARM release 41 +# devkitARM release 42 # devkitPPC release 26 # devkitPSP release 17 #--------------------------------------------------------------------------------- diff --git a/dkarm-eabi/patches/binutils-2.22.patch b/dkarm-eabi/patches/binutils-2.22.patch deleted file mode 100644 index 6de12c0..0000000 --- a/dkarm-eabi/patches/binutils-2.22.patch +++ /dev/null @@ -1,162 +0,0 @@ -diff -Nbaur binutils-2.22/bfd/bfd-in2.h binutils-2.22-arm/bfd/bfd-in2.h ---- binutils-2.22/bfd/bfd-in2.h 2011-09-16 02:15:18.000000000 +0100 -+++ binutils-2.22-arm/bfd/bfd-in2.h 2012-04-01 12:58:20.000000000 +0100 -@@ -38,6 +38,8 @@ - - #include "ansidecl.h" - #include "symcat.h" -+#include -+ - #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) - #ifndef SABER - /* This hack is to avoid a problem with some strict ANSI C preprocessors. -@@ -308,8 +310,6 @@ - && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \ - && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS) - --/* Forward define. */ --struct stat; - - typedef enum bfd_print_symbol - { -diff -Nbaur binutils-2.22/bfd/bfd-in.h binutils-2.22-arm/bfd/bfd-in.h ---- binutils-2.22/bfd/bfd-in.h 2011-09-16 02:15:18.000000000 +0100 -+++ binutils-2.22-arm/bfd/bfd-in.h 2012-04-01 12:58:20.000000000 +0100 -@@ -31,6 +31,8 @@ - - #include "ansidecl.h" - #include "symcat.h" -+#include -+ - #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE) - #ifndef SABER - /* This hack is to avoid a problem with some strict ANSI C preprocessors. -@@ -301,8 +303,6 @@ - && (sec)->sec_info_type != ELF_INFO_TYPE_MERGE \ - && (sec)->sec_info_type != ELF_INFO_TYPE_JUST_SYMS) - --/* Forward define. */ --struct stat; - - typedef enum bfd_print_symbol - { -diff -Nbaur binutils-2.22/bfd/config.in binutils-2.22-arm/bfd/config.in ---- binutils-2.22/bfd/config.in 2011-05-12 08:41:40.000000000 +0100 -+++ binutils-2.22-arm/bfd/config.in 2012-04-03 17:35:45.000000000 +0100 -@@ -245,6 +245,9 @@ - /* Define if has win32_pstatus_t. */ - #undef HAVE_WIN32_PSTATUS_T - -+/* Define to 1 if you have the header file. */ -+#undef HAVE_WINDOWS_H -+ - /* Define to 1 if you have the header file. */ - #undef HAVE_ZLIB_H - -diff -Nbaur binutils-2.22/bfd/configure binutils-2.22-arm/bfd/configure ---- binutils-2.22/bfd/configure 2011-11-21 11:55:48.000000000 +0000 -+++ binutils-2.22-arm/bfd/configure 2012-04-03 17:35:45.000000000 +0100 -@@ -13508,6 +13508,22 @@ - - fi - -+ -+for ac_header in windows.h dlfcn.h -+do : -+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -+eval as_val=\$$as_ac_Header -+ if test "x$as_val" = x""yes; then : -+ cat >>confdefs.h <<_ACEOF -+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -+_ACEOF -+ -+fi -+ -+done -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5 - $as_echo_n "checking whether string.h and strings.h may both be included... " >&6; } - if test "${gcc_cv_header_string+set}" = set; then : -diff -Nbaur binutils-2.22/bfd/configure.in binutils-2.22-arm/bfd/configure.in ---- binutils-2.22/bfd/configure.in 2011-11-21 11:55:46.000000000 +0000 -+++ binutils-2.22-arm/bfd/configure.in 2012-04-03 17:35:45.000000000 +0100 -@@ -190,6 +190,9 @@ - GCC_HEADER_STDINT(bfd_stdint.h) - AC_HEADER_TIME - AC_HEADER_DIRENT -+ -+AC_CHECK_HEADERS(windows.h dlfcn.h) -+ - ACX_HEADER_STRING - AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno) - AC_CHECK_FUNCS(strtoull) -diff -Nbaur binutils-2.22/bfd/plugin.c binutils-2.22-arm/bfd/plugin.c ---- binutils-2.22/bfd/plugin.c 2011-07-11 16:03:07.000000000 +0100 -+++ binutils-2.22-arm/bfd/plugin.c 2012-04-03 17:35:45.000000000 +0100 -@@ -25,7 +25,13 @@ - #if BFD_SUPPORTS_PLUGINS - - #include -+#ifdef HAVE_DLFCN_H - #include -+#elif defined (HAVE_WINDOWS_H) -+#include -+#else -+#error Unknown how to handle dynamic-load-libraries. -+#endif - #include - #include "plugin-api.h" - #include "sysdep.h" -@@ -34,6 +40,37 @@ - #include "libiberty.h" - #include - -+#if !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H) -+ -+#define RTLD_NOW 0 /* Dummy value. */ -+ -+static void * -+dlopen (const char *file, int mode ATTRIBUTE_UNUSED) -+{ -+ return LoadLibrary (file); -+} -+ -+static void * -+dlsym (void *handle, const char *name) -+{ -+ return GetProcAddress (handle, name); -+} -+ -+static int ATTRIBUTE_UNUSED -+dlclose (void *handle) -+{ -+ FreeLibrary (handle); -+ return 0; -+} -+ -+static const char * -+dlerror (void) -+{ -+ return "Unable to load DLL."; -+} -+ -+#endif /* !defined (HAVE_DLFCN_H) && defined (HAVE_WINDOWS_H) */ -+ - #define bfd_plugin_close_and_cleanup _bfd_generic_close_and_cleanup - #define bfd_plugin_bfd_free_cached_info _bfd_generic_bfd_free_cached_info - #define bfd_plugin_new_section_hook _bfd_generic_new_section_hook -diff -Nbaur binutils-2.22/include/opcode/arm.h binutils-2.22-arm/include/opcode/arm.h ---- binutils-2.22/include/opcode/arm.h 2011-05-31 15:12:55.000000000 +0100 -+++ binutils-2.22-arm/include/opcode/arm.h 2012-04-01 12:58:20.000000000 +0100 -@@ -109,7 +109,8 @@ - #define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K) - #define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC) - #define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC) --#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER) -+#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER \ -+ | ARM_EXT_OS ) - #define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A) - #define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV) - #define ARM_AEXT_NOTM \ diff --git a/dkarm-eabi/patches/binutils-2.23.1.patch b/dkarm-eabi/patches/binutils-2.23.1.patch new file mode 100644 index 0000000..2ec5217 --- /dev/null +++ b/dkarm-eabi/patches/binutils-2.23.1.patch @@ -0,0 +1,13 @@ +diff -Nbaur binutils-2.23.1/include/opcode/arm.h binutils-2.23.1-arm/include/opcode/arm.h +--- binutils-2.23.1/include/opcode/arm.h 2012-09-04 13:53:47.000000000 +0100 ++++ binutils-2.23.1-arm/include/opcode/arm.h 2012-12-16 02:24:15.000000000 +0000 +@@ -113,7 +113,8 @@ + #define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K) + #define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_SEC) + #define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_SEC) +-#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER) ++#define ARM_AEXT_V7_ARM (ARM_AEXT_V6KT2 | ARM_EXT_V7 | ARM_EXT_BARRIER \ ++ | ARM_EXT_OS ) + #define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A) + #define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV) + #define ARM_AEXT_NOTM \ diff --git a/dkarm-eabi/patches/gcc-4.7.1.patch b/dkarm-eabi/patches/gcc-4.7.1.patch deleted file mode 100644 index ff0133c..0000000 --- a/dkarm-eabi/patches/gcc-4.7.1.patch +++ /dev/null @@ -1,167 +0,0 @@ -diff -Nbaur gcc-4.7.1/gcc/config/arm/t-arm-elf gcc-4.7.1-arm/gcc/config/arm/t-arm-elf ---- gcc-4.7.1/gcc/config/arm/t-arm-elf 2011-11-02 15:23:48.000000000 +0000 -+++ gcc-4.7.1-arm/gcc/config/arm/t-arm-elf 2012-06-15 19:36:09.000000000 +0100 -@@ -26,22 +26,44 @@ - #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te - #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626 - --#MULTILIB_OPTIONS += march=armv7 --#MULTILIB_DIRNAMES += thumb2 --#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* --#MULTILIB_MATCHES += march?armv7=march?armv7-a --#MULTILIB_MATCHES += march?armv7=march?armv7-r --#MULTILIB_MATCHES += march?armv7=march?armv7-m --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 -+#mfloat-abi=hard|mfpu=fpv4-sp-d16 -+ -+MULTILIB_OPTIONS += march=armv7/march=armv6-m/mcpu=cortex-m4 -+MULTILIB_DIRNAMES += thumb2 armv6-m cortex-m4 -+MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* -+MULTILIB_EXCEPTIONS += march=armv6-m* marm/*march=armv6-m* -+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* marm/*mcpu=cortex-m4* -+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4 -+MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4/mbig-endian -+MULTILIB_MATCHES += march?armv7=march?armv7-a -+MULTILIB_MATCHES += march?armv7=march?armv7-r -+MULTILIB_MATCHES += march?armv7=march?armv7-m -+MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 -+MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 -+MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 -+MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0 -+MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1 -+ -+MULTILIB_OPTIONS += mfloat-abi=hard mfpu=fpv4-sp-d16 -+MULTILIB_DIRNAMES += float-abi-hard fpuv4-sp-d16 -+MULTILIB_EXCEPTIONS += mfloat* marm/mfloat* -+MULTILIB_EXCEPTIONS += mfloat* mthumb/mfloat* -+MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv6-m*mfloat* -+MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv7*mfloat* -+MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard -+MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard/mbig-endian -+MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv6-m*mfpu* -+MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv7*mfpu* -+MULTILIB_EXCEPTIONS += mfpu* mthumb/mcpu=cortex-m4/mfpu* -+MULTILIB_EXCEPTIONS += mfpu* mthumb/mfpu* -+MULTILIB_EXCEPTIONS += mfpu* marm/mfpu* - - # Not quite true. We can support hard-vfp calling in Thumb2, but how do we - # express that here? Also, we really need architecture v5e or later - # (mcrr etc). --MULTILIB_OPTIONS += mfloat-abi=hard --MULTILIB_DIRNAMES += fpu --MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* -+#MULTILIB_OPTIONS += mfloat-abi=hard -+#MULTILIB_DIRNAMES += fpu -+#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* - #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* - #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* - -@@ -49,9 +71,9 @@ - # MULTILIB_DIRNAMES += ep9312 - # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* - # --# MULTILIB_OPTIONS += mlittle-endian/mbig-endian --# MULTILIB_DIRNAMES += le be --# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle -+MULTILIB_OPTIONS += mlittle-endian/mbig-endian -+MULTILIB_DIRNAMES += le be -+MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle - # - # MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft - # MULTILIB_DIRNAMES += fpu soft -diff -Nbaur gcc-4.7.1/gcc/config/arm/unknown-elf.h gcc-4.7.1-arm/gcc/config/arm/unknown-elf.h ---- gcc-4.7.1/gcc/config/arm/unknown-elf.h 2011-03-31 13:13:13.000000000 +0100 -+++ gcc-4.7.1-arm/gcc/config/arm/unknown-elf.h 2012-06-15 19:36:09.000000000 +0100 -@@ -94,4 +94,4 @@ - udivmoddi4, which will depend on the exception unwind routines, - which will depend on abort, which is defined in libc. */ - #undef LINK_GCC_C_SEQUENCE_SPEC --#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group" -+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group" -diff -Nbaur gcc-4.7.1/gcc/gcc.c gcc-4.7.1-arm/gcc/gcc.c ---- gcc-4.7.1/gcc/gcc.c 2012-02-28 17:31:38.000000000 +0000 -+++ gcc-4.7.1-arm/gcc/gcc.c 2012-06-15 19:36:09.000000000 +0100 -@@ -548,6 +548,11 @@ - #endif - #endif - -+#ifndef LIBGLOSS_SPEC -+# define LIBGLOSS_SPEC "-lsysbase" -+#endif -+ -+ - /* config.h can define STARTFILE_SPEC to override the default crt0 files. */ - #ifndef STARTFILE_SPEC - #define STARTFILE_SPEC \ -@@ -717,6 +722,7 @@ - static const char *mflib_spec = MFLIB_SPEC; - static const char *link_gomp_spec = ""; - static const char *libgcc_spec = LIBGCC_SPEC; -+static const char *libgloss_spec = LIBGLOSS_SPEC; - static const char *endfile_spec = ENDFILE_SPEC; - static const char *startfile_spec = STARTFILE_SPEC; - static const char *linker_name_spec = LINKER_NAME; -@@ -1201,6 +1207,7 @@ - INIT_STATIC_SPEC ("mflib", &mflib_spec), - INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), - INIT_STATIC_SPEC ("libgcc", &libgcc_spec), -+ INIT_STATIC_SPEC ("libgloss", &libgloss_spec), - INIT_STATIC_SPEC ("startfile", &startfile_spec), - INIT_STATIC_SPEC ("cross_compile", &cross_compile), - INIT_STATIC_SPEC ("version", &compiler_version), -diff -Nbaur gcc-4.7.1/libcpp/Makefile.in gcc-4.7.1-arm/libcpp/Makefile.in ---- gcc-4.7.1/libcpp/Makefile.in 2012-06-14 09:48:08.000000000 +0100 -+++ gcc-4.7.1-arm/libcpp/Makefile.in 2012-06-15 19:36:11.000000000 +0100 -@@ -214,8 +214,7 @@ - # Note that we put the dependencies into a .Tpo file, then move them - # into place if the compile succeeds. We need this because gcc does - # not atomically write the dependency output file. --COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo --POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -+COMPILE = $(COMPILE.base) -o $@ - else - COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ - $(depcomp) $(COMPILE.base) -diff -Nbaur gcc-4.7.1/libgcc/Makefile.in gcc-4.7.1-arm/libgcc/Makefile.in ---- gcc-4.7.1/libgcc/Makefile.in 2012-05-24 15:59:38.000000000 +0100 -+++ gcc-4.7.1-arm/libgcc/Makefile.in 2012-06-16 13:58:38.000000000 +0100 -@@ -500,14 +500,14 @@ - lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS)) - $(lib2-divmod-o): %$(objext): $(srcdir)/libgcc2.c - $(gcc_compile) -DL$* -c $< \ -- -fexceptions -fnon-call-exceptions $(vis_hide) -+ -fno-exceptions -fno-non-call-exceptions $(vis_hide) - libgcc-objects += $(lib2-divmod-o) - - ifeq ($(enable_shared),yes) - lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS)) - $(lib2-divmod-s-o): %_s$(objext): $(srcdir)/libgcc2.c - $(gcc_s_compile) -DL$* -c $< \ -- -fexceptions -fnon-call-exceptions -+ -fno-exceptions -fno-non-call-exceptions - libgcc-s-objects += $(lib2-divmod-s-o) - endif - -@@ -810,7 +810,7 @@ - # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and - # LIB2ADDEHSHARED matter. (Usually all three are identical.) - --c_flags := -fexceptions -+c_flags := -fno-exceptions - - ifeq ($(enable_shared),yes) - -diff -Nbaur gcc-4.7.1/libgcc/crtstuff.c gcc-4.7.1-arm/libgcc/crtstuff.c ---- gcc-4.7.1/libgcc/crtstuff.c 2011-12-06 21:35:41.000000000 +0000 -+++ gcc-4.7.1-arm/libgcc/crtstuff.c 2012-06-15 19:36:11.000000000 +0100 -@@ -49,7 +49,7 @@ - - /* Target machine header files require this define. */ - #define IN_LIBGCC2 -- -+#define USED_FOR_TARGET - /* FIXME: Including auto-host is incorrect, but until we have - identified the set of defines that need to go into auto-target.h, - this will have to do. */ diff --git a/dkarm-eabi/patches/gcc-4.7.2.patch b/dkarm-eabi/patches/gcc-4.7.2.patch new file mode 100644 index 0000000..a701083 --- /dev/null +++ b/dkarm-eabi/patches/gcc-4.7.2.patch @@ -0,0 +1,1269 @@ +diff -NBaur gcc-4.7.2/gcc/config/arm/t-arm-elf gcc-4.7.2-arm/gcc/config/arm/t-arm-elf +--- gcc-4.7.2/gcc/config/arm/t-arm-elf 2012-08-06 15:34:27.000000000 +0100 ++++ gcc-4.7.2-arm/gcc/config/arm/t-arm-elf 2012-12-16 00:47:39.000000000 +0000 +@@ -26,22 +26,44 @@ + #MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626 + +-#MULTILIB_OPTIONS += march=armv7 +-#MULTILIB_DIRNAMES += thumb2 +-#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* +-#MULTILIB_MATCHES += march?armv7=march?armv7-a +-#MULTILIB_MATCHES += march?armv7=march?armv7-r +-#MULTILIB_MATCHES += march?armv7=march?armv7-m +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 +-#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 ++#mfloat-abi=hard|mfpu=fpv4-sp-d16 ++ ++MULTILIB_OPTIONS += march=armv7/march=armv6-m/mcpu=cortex-m4 ++MULTILIB_DIRNAMES += thumb2 armv6-m cortex-m4 ++MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* ++MULTILIB_EXCEPTIONS += march=armv6-m* marm/*march=armv6-m* ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* marm/*mcpu=cortex-m4* ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4 ++MULTILIB_EXCEPTIONS += mcpu=cortex-m4* mthumb/mcpu=cortex-m4/mbig-endian ++MULTILIB_MATCHES += march?armv7=march?armv7-a ++MULTILIB_MATCHES += march?armv7=march?armv7-r ++MULTILIB_MATCHES += march?armv7=march?armv7-m ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 ++MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m0 ++MULTILIB_MATCHES += march?armv6-m=mcpu?cortex-m1 ++ ++MULTILIB_OPTIONS += mfloat-abi=hard mfpu=fpv4-sp-d16 ++MULTILIB_DIRNAMES += float-abi-hard fpuv4-sp-d16 ++MULTILIB_EXCEPTIONS += mfloat* marm/mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv6-m*mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb*march=armv7*mfloat* ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard ++MULTILIB_EXCEPTIONS += mfloat* mthumb/mcpu=cortex-m4/mfloat-abi=hard/mbig-endian ++MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv6-m*mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb*march=armv7*mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb/mcpu=cortex-m4/mfpu* ++MULTILIB_EXCEPTIONS += mfpu* mthumb/mfpu* ++MULTILIB_EXCEPTIONS += mfpu* marm/mfpu* + + # Not quite true. We can support hard-vfp calling in Thumb2, but how do we + # express that here? Also, we really need architecture v5e or later + # (mcrr etc). +-MULTILIB_OPTIONS += mfloat-abi=hard +-MULTILIB_DIRNAMES += fpu +-MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* ++#MULTILIB_OPTIONS += mfloat-abi=hard ++#MULTILIB_DIRNAMES += fpu ++#MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* + #MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* + #MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* + +@@ -49,9 +71,9 @@ + # MULTILIB_DIRNAMES += ep9312 + # MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* + # +-# MULTILIB_OPTIONS += mlittle-endian/mbig-endian +-# MULTILIB_DIRNAMES += le be +-# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle ++MULTILIB_OPTIONS += mlittle-endian/mbig-endian ++MULTILIB_DIRNAMES += le be ++MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle + # + # MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft + # MULTILIB_DIRNAMES += fpu soft +diff -NBaur gcc-4.7.2/gcc/config/arm/unknown-elf.h gcc-4.7.2-arm/gcc/config/arm/unknown-elf.h +--- gcc-4.7.2/gcc/config/arm/unknown-elf.h 2011-03-31 13:13:13.000000000 +0100 ++++ gcc-4.7.2-arm/gcc/config/arm/unknown-elf.h 2012-12-16 00:47:39.000000000 +0000 +@@ -94,4 +94,4 @@ + udivmoddi4, which will depend on the exception unwind routines, + which will depend on abort, which is defined in libc. */ + #undef LINK_GCC_C_SEQUENCE_SPEC +-#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group" ++#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group" +diff -NBaur gcc-4.7.2/gcc/gcc.c gcc-4.7.2-arm/gcc/gcc.c +--- gcc-4.7.2/gcc/gcc.c 2012-08-06 15:34:27.000000000 +0100 ++++ gcc-4.7.2-arm/gcc/gcc.c 2012-12-16 00:47:39.000000000 +0000 +@@ -548,6 +548,11 @@ + #endif + #endif + ++#ifndef LIBGLOSS_SPEC ++# define LIBGLOSS_SPEC "-lsysbase" ++#endif ++ ++ + /* config.h can define STARTFILE_SPEC to override the default crt0 files. */ + #ifndef STARTFILE_SPEC + #define STARTFILE_SPEC \ +@@ -717,6 +722,7 @@ + static const char *mflib_spec = MFLIB_SPEC; + static const char *link_gomp_spec = ""; + static const char *libgcc_spec = LIBGCC_SPEC; ++static const char *libgloss_spec = LIBGLOSS_SPEC; + static const char *endfile_spec = ENDFILE_SPEC; + static const char *startfile_spec = STARTFILE_SPEC; + static const char *linker_name_spec = LINKER_NAME; +@@ -1201,6 +1207,7 @@ + INIT_STATIC_SPEC ("mflib", &mflib_spec), + INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), + INIT_STATIC_SPEC ("libgcc", &libgcc_spec), ++ INIT_STATIC_SPEC ("libgloss", &libgloss_spec), + INIT_STATIC_SPEC ("startfile", &startfile_spec), + INIT_STATIC_SPEC ("cross_compile", &cross_compile), + INIT_STATIC_SPEC ("version", &compiler_version), +diff -NBaur gcc-4.7.2/libcpp/Makefile.in gcc-4.7.2-arm/libcpp/Makefile.in +--- gcc-4.7.2/libcpp/Makefile.in 2012-09-20 08:23:55.000000000 +0100 ++++ gcc-4.7.2-arm/libcpp/Makefile.in 2012-12-16 00:47:39.000000000 +0000 +@@ -214,8 +214,7 @@ + # Note that we put the dependencies into a .Tpo file, then move them + # into place if the compile succeeds. We need this because gcc does + # not atomically write the dependency output file. +-COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo +-POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po ++COMPILE = $(COMPILE.base) -o $@ + else + COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ + $(depcomp) $(COMPILE.base) +diff -NBaur gcc-4.7.2/libgcc/Makefile.in gcc-4.7.2-arm/libgcc/Makefile.in +--- gcc-4.7.2/libgcc/Makefile.in 2012-09-05 13:19:47.000000000 +0100 ++++ gcc-4.7.2-arm/libgcc/Makefile.in 2012-12-16 00:47:39.000000000 +0000 +@@ -500,14 +500,14 @@ + lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS)) + $(lib2-divmod-o): %$(objext): $(srcdir)/libgcc2.c + $(gcc_compile) -DL$* -c $< \ +- -fexceptions -fnon-call-exceptions $(vis_hide) ++ -fno-exceptions -fno-non-call-exceptions $(vis_hide) + libgcc-objects += $(lib2-divmod-o) + + ifeq ($(enable_shared),yes) + lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS)) + $(lib2-divmod-s-o): %_s$(objext): $(srcdir)/libgcc2.c + $(gcc_s_compile) -DL$* -c $< \ +- -fexceptions -fnon-call-exceptions ++ -fno-exceptions -fno-non-call-exceptions + libgcc-s-objects += $(lib2-divmod-s-o) + endif + +@@ -814,7 +814,7 @@ + # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and + # LIB2ADDEHSHARED matter. (Usually all three are identical.) + +-c_flags := -fexceptions ++c_flags := -fno-exceptions + + ifeq ($(enable_shared),yes) + +diff -NBaur gcc-4.7.2/libgcc/Makefile.in.orig gcc-4.7.2-arm/libgcc/Makefile.in.orig +--- gcc-4.7.2/libgcc/Makefile.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.7.2-arm/libgcc/Makefile.in.orig 2012-09-05 13:19:47.000000000 +0100 +@@ -0,0 +1,1098 @@ ++# Makefile.in ++ ++# Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify it under the ++# terms of the GNU Library General Public License as published by the Free ++# Software Foundation; either version 3 of the License, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS ++# FOR A PARTICULAR PURPOSE. See the GNU General Public License for ++# more details. ++# ++# You should have received a copy of the GNU General Public License along ++# with GCC; see the file COPYING3. If not see ++# . ++# ++ ++libgcc_topdir = @libgcc_topdir@ ++host_subdir = @host_subdir@ ++ ++gcc_objdir = $(MULTIBUILDTOP)../../$(host_subdir)/gcc ++ ++srcdir = @srcdir@ ++ ++prefix = @prefix@ ++ ++exec_prefix = @exec_prefix@ ++libdir = @libdir@ ++shlib_slibdir = @slibdir@ ++ ++SHELL = @SHELL@ ++ ++cpu_type = @cpu_type@ ++enable_shared = @enable_shared@ ++double_type_size = @double_type_size@ ++long_double_type_size = @long_double_type_size@ ++decimal_float = @decimal_float@ ++enable_decimal_float = @enable_decimal_float@ ++fixed_point = @fixed_point@ ++ ++host_noncanonical = @host_noncanonical@ ++target_noncanonical = @target_noncanonical@ ++ ++# List of extra object files that should be compiled for this target machine. ++# The rules for compiling them should be in the t-* file for the machine. ++EXTRA_PARTS = @extra_parts@ ++ ++extra-parts = libgcc-extra-parts ++ ++# Multilib support variables. ++MULTISRCTOP = ++MULTIBUILDTOP = ++MULTIDIRS = ++MULTISUBDIR = ++MULTIDO = true ++MULTICLEAN = true ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++mkinstalldirs = $(SHELL) $(libgcc_topdir)/mkinstalldirs ++INSTALL_PARTS = $(EXTRA_PARTS) ++ ++objext = .o ++ ++AR = @AR@ ++AR_FLAGS = rc ++ ++CC = @CC@ ++CFLAGS = @CFLAGS@ ++RANLIB = @RANLIB@ ++LN_S = @LN_S@ ++ ++PWD_COMMAND = $${PWDCMD-pwd} ++ ++# Flags to pass to a recursive make. ++FLAGS_TO_PASS = \ ++ "AR=$(AR)" \ ++ "AR_FLAGS=$(AR_FLAGS)" \ ++ "CC=$(CC)" \ ++ "CFLAGS=$(CFLAGS)" \ ++ "DESTDIR=$(DESTDIR)" \ ++ "EXTRA_OFILES=$(EXTRA_OFILES)" \ ++ "HDEFINES=$(HDEFINES)" \ ++ "INSTALL=$(INSTALL)" \ ++ "INSTALL_DATA=$(INSTALL_DATA)" \ ++ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ ++ "LDFLAGS=$(LDFLAGS)" \ ++ "LOADLIBES=$(LOADLIBES)" \ ++ "RANLIB=$(RANLIB)" \ ++ "SHELL=$(SHELL)" \ ++ "prefix=$(prefix)" \ ++ "exec_prefix=$(exec_prefix)" \ ++ "libdir=$(libdir)" \ ++ "libsubdir=$(libsubdir)" \ ++ "tooldir=$(tooldir)" ++ ++# Dependencies for "all" are set later in the file. ++all: all-multi ++ # Now that we have built all the objects, we need to copy ++ # them back to the GCC directory. Too many things (other ++ # in-tree libraries, and DejaGNU) know about the layout ++ # of the build tree, for now. ++ $(MAKE) install-leaf DESTDIR=$(gcc_objdir) \ ++ slibdir= libsubdir= MULTIOSDIR=$(MULTIDIR) ++ ++.PHONY: all-multi ++all-multi: ++ # If this is the top-level multilib, build all the other ++ # multilibs. ++ @: $(MAKE) ; exec $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=all ++ ++.PHONY: check installcheck ++check: ++installcheck: ++ ++.PHONY: all clean ++ ++clean: ++ -rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map ++ -rm -f *$(objext) ++ -rm -f *.dep ++ -rm -f *.a ++ -rm -f libunwind$(SHLIB_EXT) ++ -rm -f libgcc_s* ++ @$(MULTICLEAN) multi-clean DO=clean ++distclean: clean ++ @$(MULTICLEAN) multi-clean DO=distclean ++ -rm -f *~ Makefile config.cache config.status multilib.out ++ -rm -f config.log ++maintainer-clean realclean: distclean ++ ++Makefile: $(srcdir)/Makefile.in config.status ++ CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status ++ ++# Depending on Makefile makes sure that config.status has been re-run ++# if needed. This prevents problems with parallel builds. ++config.h: stamp-h ; @true ++stamp-h: $(srcdir)/config.in config.status Makefile ++ CONFIG_FILES= CONFIG_HEADERS=config.h:$(srcdir)/config.in $(SHELL) ./config.status ++ ++config.status: $(srcdir)/configure $(srcdir)/config.host ++ $(SHELL) ./config.status --recheck ++ ++AUTOCONF = autoconf ++configure_deps = \ ++ $(srcdir)/../config/enable.m4 \ ++ $(srcdir)/../config/tls.m4 \ ++ $(srcdir)/../config/acx.m4 \ ++ $(srcdir)/../config/no-executables.m4 \ ++ $(srcdir)/../config/override.m4 \ ++ $(srcdir)/../config/dfp.m4 \ ++ ++$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++ ++include $(gcc_objdir)/libgcc.mvars ++ ++# Flags to pass to recursive makes. ++ ++AR_FOR_TARGET = $(AR) ++AR_FLAGS_FOR_TARGET = ++AR_CREATE_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) rc ++AR_EXTRACT_FOR_TARGET = $(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET) x ++AWK = @AWK@ ++GCC_FOR_TARGET = $(CC) ++LIPO = @LIPO@ ++LIPO_FOR_TARGET = $(LIPO) ++MACHMODE_H = machmode.h mode-classes.def insn-modes.h ++NM = @NM@ ++NM_FOR_TARGET = $(NM) ++RANLIB_FOR_TARGET = $(RANLIB) ++STRIP = @STRIP@ ++STRIP_FOR_TARGET = $(STRIP) ++ ++# Directory in which the compiler finds libraries etc. ++libsubdir = $(libdir)/gcc/$(host_noncanonical)/$(version) ++# Used to install the shared libgcc. ++slibdir = @slibdir@ ++# Maybe used for DLLs on Windows targets. ++toolexecdir = @toolexecdir@ ++toolexeclibdir = @toolexeclibdir@ ++ ++export AR_FOR_TARGET ++export AR_CREATE_FOR_TARGET ++export AR_FLAGS_FOR_TARGET ++export AR_EXTRACT_FOR_TARGET ++export AWK ++export DESTDIR ++export GCC_FOR_TARGET ++export INCLUDES ++export INSTALL_DATA ++export LIB1ASMSRC ++export LIBGCC2_CFLAGS ++export LIPO_FOR_TARGET ++export MACHMODE_H ++export NM_FOR_TARGET ++export STRIP_FOR_TARGET ++export RANLIB_FOR_TARGET ++export libsubdir ++export slibdir ++export toolexecdir ++export toolexeclibdir ++ ++version := $(shell $(CC) -dumpversion) ++ ++ifeq ($(decimal_float),yes) ++ifeq ($(enable_decimal_float),bid) ++DECNUMINC = -I$(srcdir)/config/libbid -DENABLE_DECIMAL_BID_FORMAT ++else ++DECNUMINC = -I$(srcdir)/../libdecnumber/$(enable_decimal_float) \ ++ -I$(srcdir)/../libdecnumber ++endif ++else ++DECNUMINC = ++endif ++ ++# Options to use when compiling libgcc2.a. ++# ++LIBGCC2_DEBUG_CFLAGS = -g ++LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ ++ $(LIBGCC2_DEBUG_CFLAGS) -DIN_LIBGCC2 \ ++ -fbuilding-libgcc -fno-stack-protector \ ++ $(INHIBIT_LIBC_CFLAGS) ++ ++# Additional options to use when compiling libgcc2.a. ++# Some targets override this to -isystem include ++LIBGCC2_INCLUDES = ++ ++# Additional target-dependent options for compiling libgcc2.a. ++HOST_LIBGCC2_CFLAGS = ++ ++PICFLAG = @PICFLAG@ ++ ++# Defined in libgcc2.c, included only in the static library. ++LIB2FUNCS_ST = _eprintf __gcc_bcmp ++ ++# List of functions not to build from libgcc2.c. ++LIB2FUNCS_EXCLUDE = ++ ++# These might cause a divide overflow trap and so are compiled with ++# unwinder info. ++LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 ++ ++# List of extra C and assembler files to add to static and shared libgcc2. ++# Assembler files should have names ending in `.S'. ++LIB2ADD = ++ ++# List of extra C and assembler files to add to static libgcc2. ++# Assembler files should have names ending in `.S'. ++LIB2ADD_ST = ++ ++# Specify the directories to be searched for header files. ++# Both . and srcdir are used, in that order, ++# so that *config.h will be found in the compilation ++# subdirectory rather than in the source directory. ++# -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file ++# currently being compiled, in both source trees, to be examined as well. ++INCLUDES = -I. -I$(@D) -I$(gcc_objdir) \ ++ -I$(srcdir) -I$(srcdir)/$(@D) -I$(srcdir)/../gcc \ ++ -I$(srcdir)/../include $(DECNUMINC) ++ ++# Forcibly remove any profiling-related flags. There is no point ++# in supporting profiled bootstrap in this library. ++override CFLAGS := $(filter-out -fprofile-generate -fprofile-use,$(CFLAGS)) ++ ++# CFLAGS first is not perfect; normally setting CFLAGS should override any ++# options in LIBGCC2_CFLAGS. But LIBGCC2_CFLAGS may contain -g0, and CFLAGS ++# will usually contain -g, so for the moment CFLAGS goes first. We must ++# include CFLAGS - that's where multilib options live. ++INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \ ++ $(INCLUDES) @set_have_cc_tls@ @set_use_emutls@ ++ ++# Options to use when compiling crtbegin/end. ++CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ ++ -finhibit-size-directive -fno-inline -fno-exceptions \ ++ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ ++ -fno-stack-protector \ ++ $(INHIBIT_LIBC_CFLAGS) ++ ++# Extra flags to use when compiling crt{begin,end}.o. ++CRTSTUFF_T_CFLAGS = ++ ++MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory) ++MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory) ++ ++MULTIOSSUBDIR := $(shell if test $(MULTIOSDIR) != .; then echo /$(MULTIOSDIR); fi) ++inst_libdir = $(libsubdir)$(MULTISUBDIR) ++inst_slibdir = $(slibdir)$(MULTIOSSUBDIR) ++ ++gcc_compile_bare = $(CC) $(INTERNAL_CFLAGS) ++compile_deps = -MT $@ -MD -MP -MF $(basename $@).dep ++gcc_compile = $(gcc_compile_bare) -o $@ $(compile_deps) ++gcc_s_compile = $(gcc_compile) -DSHARED ++ ++objects = $(filter %$(objext),$^) ++ ++# Collect any host-specific information from Makefile fragments. ++ ++LIBGCC_VER_GNU_PREFIX = __ ++LIBGCC_VER_FIXEDPOINT_GNU_PREFIX = __ ++LIBGCC_VER_SYMBOLS_PREFIX = ++ ++FPBIT_FUNCS = _pack_sf _unpack_sf _addsub_sf _mul_sf _div_sf \ ++ _fpcmp_parts_sf _compare_sf _eq_sf _ne_sf _gt_sf _ge_sf \ ++ _lt_sf _le_sf _unord_sf _si_to_sf _sf_to_si _negate_sf _make_sf \ ++ _sf_to_df _sf_to_tf _thenan_sf _sf_to_usi _usi_to_sf ++ ++DPBIT_FUNCS = _pack_df _unpack_df _addsub_df _mul_df _div_df \ ++ _fpcmp_parts_df _compare_df _eq_df _ne_df _gt_df _ge_df \ ++ _lt_df _le_df _unord_df _si_to_df _df_to_si _negate_df _make_df \ ++ _df_to_sf _df_to_tf _thenan_df _df_to_usi _usi_to_df ++ ++TPBIT_FUNCS = _pack_tf _unpack_tf _addsub_tf _mul_tf _div_tf \ ++ _fpcmp_parts_tf _compare_tf _eq_tf _ne_tf _gt_tf _ge_tf \ ++ _lt_tf _le_tf _unord_tf _si_to_tf _tf_to_si _negate_tf _make_tf \ ++ _tf_to_df _tf_to_sf _thenan_tf _tf_to_usi _usi_to_tf ++ ++# Additional sources to handle exceptions; overridden by targets as needed. ++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ ++ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c ++LIB2ADDEHSTATIC = $(LIB2ADDEH) ++LIB2ADDEHSHARED = $(LIB2ADDEH) ++ ++# nm flags to list global symbols in libgcc object files. ++SHLIB_NM_FLAGS = -pg ++ ++# Don't build libunwind by default. ++LIBUNWIND = ++SHLIBUNWIND_LINK = ++SHLIBUNWIND_INSTALL = ++ ++tmake_file = @tmake_file@ ++include $(srcdir)/empty.mk $(tmake_file) ++ ++# Collect target defines and headers from config.host. ++libgcc_tm_defines = @tm_defines@ ++libgcc_tm_file = @tm_file@ ++libgcc_tm.h: libgcc_tm.stamp; @true ++libgcc_tm.stamp: ++ DEFINES='$(libgcc_tm_defines)' HEADERS='$(libgcc_tm_file)' \ ++ $(srcdir)/mkheader.sh > tmp-libgcc_tm.h ++ $(SHELL) $(srcdir)/../move-if-change tmp-libgcc_tm.h libgcc_tm.h ++ echo timestamp > $@ ++ ++# Only handle shared libraries if both: ++# - the user requested them ++# - we know how to build them ++ifeq ($(SHLIB_LINK),) ++ enable_shared := no ++endif ++ ++ifeq ($(enable_shared),yes) ++ iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/shared-object.mk,$(iter-items)) ++ ++ install-shared = install-shared ++ ++ ifneq ($(LIBUNWIND),) ++ install-libunwind = install-libunwind ++ endif ++ ++# For -fvisibility=hidden. We need both a -fvisibility=hidden on ++# the command line, and a #define to prevent libgcc2.h etc from ++# overriding that with #pragmas. ++vis_hide = @vis_hide@ ++ ++ifneq (,$(vis_hide)) ++ ++# If we have -fvisibility=hidden, then we need to generate hide ++# lists for object files implemented in assembly. ++ASM_HIDDEN_OP = @asm_hidden_op@ ++ ++define gen-hide-list ++$(NM) -pg $< | \ ++ $(AWK) 'NF == 3 && $$2 !~ /^[UN]$$/ && $$3 !~ /.*_compat/ \ ++ && $$3 !~ /.*@.*/ \ ++ { print "\t$(ASM_HIDDEN_OP)", $$3 }' > $@T ++mv -f $@T $@ ++endef ++else ++gen-hide-list = echo > $@ ++endif ++ ++else ++# Not enable_shared. ++iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items)) ++vis_hide = ++gen-hide-list = echo > \$@ ++endif ++ ++LIB2ADD += enable-execute-stack.c ++ ++# While emutls.c has nothing to do with EH, it is in LIB2ADDEH* ++# instead of LIB2ADD because that's the way to be sure on some targets ++# (e.g. *-*-darwin*) only one copy of it is linked. ++LIB2ADDEH += $(srcdir)/emutls.c ++LIB2ADDEHSTATIC += $(srcdir)/emutls.c ++LIB2ADDEHSHARED += $(srcdir)/emutls.c ++ ++# Library members defined in libgcc2.c. ++lib2funcs = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2 \ ++ _clear_cache _trampoline __main _absvsi2 \ ++ _absvdi2 _addvsi3 _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 \ ++ _negvsi2 _negvdi2 _ctors _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 \ ++ _ctzsi2 _ctzdi2 _popcount_tab _popcountsi2 _popcountdi2 \ ++ _paritysi2 _paritydi2 _powisf2 _powidf2 _powixf2 _powitf2 \ ++ _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 _divxc3 \ ++ _divtc3 _bswapsi2 _bswapdi2 _clrsbsi2 _clrsbdi2 ++ ++# The floating-point conversion routines that involve a single-word integer. ++# XX stands for the integer mode. ++swfloatfuncs = $(patsubst %,_fixuns%XX,sf df xf) ++ ++# Likewise double-word routines. ++dwfloatfuncs = $(patsubst %,_fix%XX,sf df xf tf) \ ++ $(patsubst %,_fixuns%XX,sf df xf tf) \ ++ $(patsubst %,_floatXX%,sf df xf tf) \ ++ $(patsubst %,_floatunXX%,sf df xf tf) ++ ++ifeq ($(LIB2_SIDITI_CONV_FUNCS),) ++ lib2funcs += $(subst XX,si,$(swfloatfuncs)) ++ lib2funcs += $(subst XX,di,$(dwfloatfuncs)) ++endif ++ ++# These might cause a divide overflow trap and so are compiled with ++# unwinder info. ++LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4 ++ ++# Remove any objects from lib2funcs and LIB2_DIVMOD_FUNCS that are ++# defined as optimized assembly code in LIB1ASMFUNCS or as C code ++# in LIB2FUNCS_EXCLUDE. ++lib2funcs := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS),$(lib2funcs)) ++LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE) $(LIB1ASMFUNCS), \ ++ $(LIB2_DIVMOD_FUNCS)) ++ ++# Build "libgcc1" (assembly) components. ++ifeq ($(enable_shared),yes) ++ ++lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS)) ++$(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) %.vis ++ $(gcc_compile) -DL$* -xassembler-with-cpp -c $< -include $*.vis ++$(patsubst %,%.vis,$(LIB1ASMFUNCS)): %.vis: %_s$(objext) ++ $(gen-hide-list) ++libgcc-objects += $(lib1asmfuncs-o) ++ ++lib1asmfuncs-s-o = $(patsubst %,%_s$(objext),$(LIB1ASMFUNCS)) ++$(lib1asmfuncs-s-o): %_s$(objext): $(srcdir)/config/$(LIB1ASMSRC) ++ $(gcc_s_compile) -DL$* -xassembler-with-cpp -c $< ++libgcc-s-objects += $(lib1asmfuncs-s-o) ++ ++else ++ ++lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS)) ++$(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) ++ $(gcc_compile) -DL$* -xassembler-with-cpp -c $< ++libgcc-objects += $(lib1asmfuncs-o) ++ ++endif ++ ++# Build lib2funcs. For the static library also include LIB2FUNCS_ST. ++lib2funcs-o = $(patsubst %,%$(objext),$(lib2funcs) $(LIB2FUNCS_ST)) ++$(lib2funcs-o): %$(objext): $(srcdir)/libgcc2.c ++ $(gcc_compile) -DL$* -c $< $(vis_hide) ++libgcc-objects += $(lib2funcs-o) ++ ++ifeq ($(enable_shared),yes) ++lib2funcs-s-o = $(patsubst %,%_s$(objext),$(lib2funcs)) ++$(lib2funcs-s-o): %_s$(objext): $(srcdir)/libgcc2.c ++ $(gcc_s_compile) -DL$* -c $< ++libgcc-s-objects += $(lib2funcs-s-o) ++endif ++ ++ifneq ($(LIB2_SIDITI_CONV_FUNCS),) ++# Build libgcc2.c for each conversion function, with a specific ++# L definition and LIBGCC2_UNITS_PER_WORD setting. The DImode ++# functions are built with a wordsize of 4; the TImode functions are ++# built with the same labels, but a wordsize of 8. ++ ++sifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,si,$(swfloatfuncs))) ++difuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,di,$(dwfloatfuncs))) ++tifuncs := $(filter-out $(LIB2FUNCS_EXCLUDE),$(subst XX,ti,$(dwfloatfuncs))) ++ ++iter-items := $(sifuncs) $(difuncs) $(tifuncs) ++iter-labels := $(sifuncs) $(difuncs) $(difuncs) ++iter-sizes := $(patsubst %,4,$(sifuncs) $(difuncs)) $(patsubst %,8,$(tifuncs)) ++ ++include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/siditi-object.mk,$(iter-items)) ++ ++libgcc-objects += $(patsubst %,%$(objext),$(sifuncs) $(difuncs) $(tifuncs)) ++ifeq ($(enable_shared),yes) ++libgcc-s-objects += $(patsubst %,%_s$(objext),$(sifuncs) $(difuncs) $(tifuncs)) ++endif ++endif ++ ++# Build LIB2_DIVMOD_FUNCS. ++lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS)) ++$(lib2-divmod-o): %$(objext): $(srcdir)/libgcc2.c ++ $(gcc_compile) -DL$* -c $< \ ++ -fexceptions -fnon-call-exceptions $(vis_hide) ++libgcc-objects += $(lib2-divmod-o) ++ ++ifeq ($(enable_shared),yes) ++lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS)) ++$(lib2-divmod-s-o): %_s$(objext): $(srcdir)/libgcc2.c ++ $(gcc_s_compile) -DL$* -c $< \ ++ -fexceptions -fnon-call-exceptions ++libgcc-s-objects += $(lib2-divmod-s-o) ++endif ++ ++ifeq ($(TPBIT),) ++# _sf_to_tf and _df_to_tf require tp-bit.c being compiled in. ++FPBIT_FUNCS := $(filter-out _sf_to_tf,$(FPBIT_FUNCS)) ++DPBIT_FUNCS := $(filter-out _df_to_tf,$(DPBIT_FUNCS)) ++endif ++ ++FPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(FPBIT_FUNCS)) ++DPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(DPBIT_FUNCS)) ++TPBIT_FUNCS := $(filter-out $(LIB2FUNCS_EXCLUDE),$(TPBIT_FUNCS)) ++ ++fpbit-src := $(srcdir)/fp-bit.c ++ ++# Build FPBIT. ++ifneq ($(FPBIT),) ++fpbit-o = $(patsubst %,%$(objext),$(FPBIT_FUNCS)) ++$(fpbit-o): %$(objext): $(fpbit-src) ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DFLOAT $(FPBIT_CFLAGS) -c $< $(vis_hide) ++libgcc-objects += $(fpbit-o) ++ ++ifeq ($(enable_shared),yes) ++fpbit-s-o = $(patsubst %,%_s$(objext),$(FPBIT_FUNCS)) ++$(fpbit-s-o): %_s$(objext): $(fpbit-src) ++ $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DFLOAT $(FPBIT_CFLAGS) -c $< ++libgcc-s-objects += $(fpbit-s-o) ++endif ++endif ++ ++# Build DPBIT. ++ifneq ($(DPBIT),) ++dpbit-o = $(patsubst %,%$(objext),$(DPBIT_FUNCS)) ++$(dpbit-o): %$(objext): $(fpbit-src) ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* $(DPBIT_CFLAGS) -c $< $(vis_hide) ++libgcc-objects += $(dpbit-o) ++ ++ifeq ($(enable_shared),yes) ++dpbit-s-o = $(patsubst %,%_s$(objext),$(DPBIT_FUNCS)) ++$(dpbit-s-o): %_s$(objext): $(fpbit-src) ++ $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* $(DPBIT_CFLAGS) -c $< ++libgcc-s-objects += $(dpbit-s-o) ++endif ++endif ++ ++# Build TPBIT. ++ifneq ($(TPBIT),) ++tpbit-o = $(patsubst %,%$(objext),$(TPBIT_FUNCS)) ++$(tpbit-o): %$(objext): $(fpbit-src) ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DTFLOAT $(TPBIT_CFLAGS) -c $< $(vis_hide) ++libgcc-objects += $(tpbit-o) ++ ++ifeq ($(enable_shared),yes) ++tpbit-s-o = $(patsubst %,%_s$(objext),$(TPBIT_FUNCS)) ++$(tpbit-s-o): %_s$(objext): $(fpbit-src) ++ $(gcc_s_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DTFLOAT $(TPBIT_CFLAGS) -c $< ++libgcc-s-objects += $(tpbit-s-o) ++endif ++endif ++ ++# Build decimal floating point support. ++ifeq ($(decimal_float),yes) ++ ++# If $DFP_ENABLE is set, then we want all data type sizes. ++ifneq ($(DFP_ENABLE),) ++D32PBIT = 1 ++D64PBIT = 1 ++D128PBIT = 1 ++endif ++ ++dfp-filenames = ++ifneq ($(D32PBIT)$(D64PBIT)$(D128PBIT),) ++ifeq ($(enable_decimal_float),bid) ++dfp-filenames += bid_decimal_globals bid_decimal_data \ ++ bid_binarydecimal bid_convert_data \ ++ _isinfd32 _isinfd64 _isinfd128 bid64_noncomp \ ++ bid128_noncomp bid128_fma bid_round bid_from_int \ ++ bid64_add bid128_add bid64_div bid128_div \ ++ bid64_mul bid128_mul bid64_compare bid128_compare \ ++ bid128 bid32_to_bid64 bid32_to_bid128 bid64_to_bid128 \ ++ bid64_to_int32 bid64_to_int64 \ ++ bid64_to_uint32 bid64_to_uint64 \ ++ bid128_to_int32 bid128_to_int64 \ ++ bid128_to_uint32 bid128_to_uint64 ++else ++dfp-filenames += decContext decNumber decExcept decRound decLibrary decDouble decPacked decQuad decSingle ++endif ++endif ++ ++dfp-objects = $(patsubst %,%$(objext),$(dfp-filenames)) ++ifeq ($(enable_decimal_float),bid) ++$(dfp-objects): %$(objext): $(srcdir)/config/libbid/%.c ++else ++$(dfp-objects): %$(objext): $(srcdir)/../libdecnumber/%.c ++endif ++ $(gcc_compile) -c $< ++libgcc-objects += $(dfp-objects) ++ ++decbits-filenames = ++ifneq ($(enable_decimal_float),bid) ++ifneq ($(D32PBIT),) ++decbits-filenames += decimal32 ++endif ++ ++ifneq ($(D64PBIT),) ++decbits-filenames += decimal64 ++endif ++ ++ifneq ($(D128PBIT),) ++decbits-filenames += decimal128 ++endif ++endif ++ ++decbits-objects = $(patsubst %,%$(objext),$(decbits-filenames)) ++ifeq ($(enable_decimal_float),bid) ++$(decbits-objects): %$(objext): $(srcdir)/config/libbid/%.c ++else ++$(decbits-objects): %$(objext): $(srcdir)/../libdecnumber/$(enable_decimal_float)/%.c ++endif ++ $(gcc_compile) -c $< ++libgcc-objects += $(decbits-objects) ++ ++# Next build individual support functions. ++D32PBIT_FUNCS = _addsub_sd _div_sd _mul_sd _plus_sd _minus_sd \ ++ _eq_sd _ne_sd _lt_sd _gt_sd _le_sd _ge_sd \ ++ _sd_to_si _sd_to_di _sd_to_usi _sd_to_udi \ ++ _si_to_sd _di_to_sd _usi_to_sd _udi_to_sd \ ++ _sd_to_sf _sd_to_df _sd_to_xf _sd_to_tf \ ++ _sf_to_sd _df_to_sd _xf_to_sd _tf_to_sd \ ++ _sd_to_dd _sd_to_td _unord_sd _conv_sd ++ ++D64PBIT_FUNCS = _addsub_dd _div_dd _mul_dd _plus_dd _minus_dd \ ++ _eq_dd _ne_dd _lt_dd _gt_dd _le_dd _ge_dd \ ++ _dd_to_si _dd_to_di _dd_to_usi _dd_to_udi \ ++ _si_to_dd _di_to_dd _usi_to_dd _udi_to_dd \ ++ _dd_to_sf _dd_to_df _dd_to_xf _dd_to_tf \ ++ _sf_to_dd _df_to_dd _xf_to_dd _tf_to_dd \ ++ _dd_to_sd _dd_to_td _unord_dd _conv_dd ++ ++D128PBIT_FUNCS = _addsub_td _div_td _mul_td _plus_td _minus_td \ ++ _eq_td _ne_td _lt_td _gt_td _le_td _ge_td \ ++ _td_to_si _td_to_di _td_to_usi _td_to_udi \ ++ _si_to_td _di_to_td _usi_to_td _udi_to_td \ ++ _td_to_sf _td_to_df _td_to_xf _td_to_tf \ ++ _sf_to_td _df_to_td _xf_to_td _tf_to_td \ ++ _td_to_sd _td_to_dd _unord_td _conv_td ++ ++ifeq ($(enable_decimal_float),bid) ++ifneq ($(D32PBIT),) ++D32PBIT_FUNCS:=$(filter-out _plus_sd _minus_sd _conv_sd, $(D32PBIT_FUNCS)) ++endif ++ ++ifneq ($(D64PBIT),) ++D64PBIT_FUNCS:=$(filter-out _plus_dd _minus_dd _conv_dd, $(D64PBIT_FUNCS)) ++endif ++ ++ifneq ($(D128PBIT),) ++D128PBIT_FUNCS:=$(filter-out _plus_td _minus_td _conv_td, $(D128PBIT_FUNCS)) ++endif ++endif ++ ++ifneq ($(D32PBIT),) ++d32pbit-o = $(patsubst %,%$(objext),$(D32PBIT_FUNCS)) ++ifeq ($(enable_decimal_float),bid) ++$(d32pbit-o): %$(objext): $(srcdir)/config/libbid/%.c ++else ++$(d32pbit-o): %$(objext): $(srcdir)/dfp-bit.c ++endif ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=32 -c $< ++libgcc-objects += $(d32pbit-o) ++endif ++ ++ifneq ($(D64PBIT),) ++d64pbit-o = $(patsubst %,%$(objext),$(D64PBIT_FUNCS)) ++ifeq ($(enable_decimal_float),bid) ++$(d64pbit-o): %$(objext): $(srcdir)/config/libbid/%.c ++else ++$(d64pbit-o): %$(objext): $(srcdir)/dfp-bit.c ++endif ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=64 -c $< ++libgcc-objects += $(d64pbit-o) ++endif ++ ++ifneq ($(D128PBIT),) ++d128pbit-o = $(patsubst %,%$(objext),$(D128PBIT_FUNCS)) ++ifeq ($(enable_decimal_float),bid) ++$(d128pbit-o): %$(objext): $(srcdir)/config/libbid/%.c ++else ++$(d128pbit-o): %$(objext): $(srcdir)/dfp-bit.c ++endif ++ $(gcc_compile) -DFINE_GRAINED_LIBRARIES -DL$* -DWIDTH=128 -c $< ++libgcc-objects += $(d128pbit-o) ++endif ++ ++endif ++ ++ifeq ($(SYNC),yes) ++libgcc-sync-size-funcs := $(foreach op, add sub or and xor nand, \ ++ sync_fetch_and_$(op) \ ++ sync_$(op)_and_fetch) \ ++ sync_bool_compare_and_swap \ ++ sync_val_compare_and_swap \ ++ sync_lock_test_and_set ++ ++libgcc-sync-size-funcs := $(foreach prefix, $(libgcc-sync-size-funcs), \ ++ $(foreach suffix, 1 2 4 8 16, \ ++ $(prefix)_$(suffix))) ++ ++libgcc-sync-size-funcs-o = $(patsubst %,%$(objext),$(libgcc-sync-size-funcs)) ++$(libgcc-sync-size-funcs-o): %$(objext): $(srcdir)/sync.c ++ $(gcc_compile) $(SYNC_CFLAGS) \ ++ -DFN=`echo "$*" | sed 's/_[^_]*$$//'` \ ++ -DSIZE=`echo "$*" | sed 's/.*_//'` \ ++ -c $< $(vis_hide) ++libgcc-objects += $(libgcc-sync-size-funcs-o) ++ ++libgcc-sync-funcs := sync_synchronize ++ ++libgcc-sync-funcs-o = $(patsubst %,%$(objext),$(libgcc-sync-funcs)) ++$(libgcc-sync-funcs-o): %$(objext): $(srcdir)/sync.c ++ $(gcc_compile) $(SYNC_CFLAGS) \ ++ -DL$* \ ++ -c $< $(vis_hide) ++libgcc-objects += $(libgcc-sync-funcs-o) ++ ++ifeq ($(enable_shared),yes) ++libgcc-sync-size-funcs-s-o = $(patsubst %,%_s$(objext), \ ++ $(libgcc-sync-size-funcs)) ++$(libgcc-sync-size-funcs-s-o): %_s$(objext): $(srcdir)/sync.c ++ $(gcc_s_compile) $(SYNC_CFLAGS) \ ++ -DFN=`echo "$*" | sed 's/_[^_]*$$//'` \ ++ -DSIZE=`echo "$*" | sed 's/.*_//'` \ ++ -c $< ++libgcc-s-objects += $(libgcc-sync-size-funcs-s-o) ++ ++libgcc-sync-funcs-s-o = $(patsubst %,%_s$(objext),$(libgcc-sync-funcs)) ++$(libgcc-sync-funcs-s-o): %_s$(objext): $(srcdir)/sync.c ++ $(gcc_s_compile) $(SYNC_CFLAGS) \ ++ -DL$* \ ++ -c $< ++libgcc-s-objects += $(libgcc-sync-funcs-s-o) ++endif ++endif ++ ++# Build fixed-point support. ++ifeq ($(fixed_point),yes) ++ ++# Generate permutations of function name and mode ++fixed-labels := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith labels) ++fixed-funcs := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith funcs) ++fixed-modes := $(shell $(SHELL) $(srcdir)/gen-fixed.sh arith modes) ++ ++# Generate the rules for each arithmetic function ++iter-items := $(fixed-funcs) ++iter-labels := $(fixed-labels) ++iter-from := $(fixed-modes) ++iter-to := $(fixed-modes) ++include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items)) ++ ++# Add arithmetic functions to list of objects to be built ++libgcc-objects += $(patsubst %,%$(objext),$(fixed-funcs)) ++ifeq ($(enable_shared),yes) ++libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-funcs)) ++endif ++ ++# Convert from or to fractional ++fixed-conv-funcs := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv funcs) ++fixed-conv-labels := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv labels) ++fixed-conv-from := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv from) ++fixed-conv-to := $(shell $(SHELL) $(srcdir)/gen-fixed.sh conv to) ++ ++# Generate the make rules for each conversion function ++iter-items := $(fixed-conv-funcs) ++iter-labels := $(fixed-conv-labels) ++iter-from := $(fixed-conv-from) ++iter-to := $(fixed-conv-to) ++include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items)) ++ ++# Add conversion functions to list of objects to be built ++libgcc-objects += $(patsubst %,%$(objext),$(fixed-conv-funcs)) ++ifeq ($(enable_shared),yes) ++libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-conv-funcs)) ++endif ++ ++endif ++ ++# Build LIB2ADD and LIB2ADD_ST. ++ifneq ($(filter-out %.c %.S %.asm,$(LIB2ADD) $(LIB2ADD_ST)),) ++$(error Unsupported files in LIB2ADD or LIB2ADD_ST.) ++endif ++ ++libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADD)))) ++libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADD_ST)))) ++ ++c_flags := ++iter-items := $(LIB2ADD) $(LIB2ADD_ST) ++include $(iterator) ++ ++ifeq ($(enable_shared),yes) ++libgcc-s-objects += $(addsuffix _s$(objext),$(basename $(notdir $(LIB2ADD)))) ++endif ++ ++# Build LIB2ADDEH, LIB2ADDEHSTATIC, and LIB2ADDEHSHARED. If we don't have ++# libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and ++# LIB2ADDEHSHARED matter. (Usually all three are identical.) ++ ++c_flags := -fexceptions ++ ++ifeq ($(enable_shared),yes) ++ ++libgcc-eh-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADDEHSTATIC)))) ++libgcc-s-objects += $(addsuffix _s$(objext),$(basename $(notdir $(LIB2ADDEHSHARED)))) ++ ++iter-items := $(sort $(LIB2ADDEHSTATIC) $(LIB2ADDEHSHARED)) ++include $(iterator) ++ ++else ++# Not shared. LIB2ADDEH are added to libgcc.a. ++ ++libgcc-objects += $(addsuffix $(objext),$(basename $(notdir $(LIB2ADDEH)))) ++ ++iter-items := $(LIB2ADDEH) ++include $(iterator) ++ ++endif ++ ++# Build LIBUNWIND. Use -fno-exceptions so that the unwind library does ++# not generate calls to __gcc_personality_v0. ++ ++c_flags := -fno-exceptions ++ ++libunwind-objects += $(addsuffix $(objext),$(basename $(notdir $(LIBUNWIND)))) ++ ++ifeq ($(enable_shared),yes) ++libunwind-s-objects += $(addsuffix _s$(objext),$(basename $(notdir $(LIBUNWIND)))) ++endif ++ ++iter-items := $(LIBUNWIND) ++include $(iterator) ++ ++# Build libgcov components. ++ ++# Defined in libgcov.c, included only in gcov library ++LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \ ++ _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \ ++ _gcov_execv _gcov_execvp _gcov_execve \ ++ _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler \ ++ _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \ ++ _gcov_merge_ior ++ ++libgcov-objects = $(patsubst %,%$(objext),$(LIBGCOV)) ++ ++$(libgcov-objects): %$(objext): $(srcdir)/libgcov.c ++ $(gcc_compile) -DL$* -c $(srcdir)/libgcov.c ++ ++ ++# Static libraries. ++libgcc.a: $(libgcc-objects) ++libgcov.a: $(libgcov-objects) ++libunwind.a: $(libunwind-objects) ++libgcc_eh.a: $(libgcc-eh-objects) ++ ++libgcc.a libgcov.a libunwind.a libgcc_eh.a: ++ -rm -f $@ ++ ++ objects="$(objects)"; \ ++ if test -z "$$objects"; then \ ++ echo 'int __libgcc_eh_dummy;' > eh_dummy.c; \ ++ $(gcc_compile_bare) $(vis_hide) -c eh_dummy.c \ ++ -o eh_dummy$(objext); \ ++ objects=eh_dummy$(objext); \ ++ fi; \ ++ $(AR_CREATE_FOR_TARGET) $@ $$objects ++ ++ $(RANLIB) $@ ++ ++all: libgcc.a libgcov.a ++ ++ifneq ($(LIBUNWIND),) ++all: libunwind.a ++libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) ++endif ++ ++ifeq ($(enable_shared),yes) ++all: libgcc_eh.a libgcc_s$(SHLIB_EXT) ++ifneq ($(LIBUNWIND),) ++all: libunwind$(SHLIB_EXT) ++endif ++endif ++ ++ifeq ($(enable_shared),yes) ++ ++# Map-file generation. ++ifneq ($(SHLIB_MKMAP),) ++libgcc.map: $(SHLIB_MKMAP) $(SHLIB_MAPFILES) $(libgcc-s-objects) ++ { $(NM) $(SHLIB_NM_FLAGS) $(libgcc-s-objects); echo %%; \ ++ cat $(SHLIB_MAPFILES) \ ++ | sed -e '/^[ ]*#/d' \ ++ -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \ ++ | $(gcc_compile_bare) -E -xassembler-with-cpp -; \ ++ } | $(AWK) -f $(SHLIB_MKMAP) $(SHLIB_MKMAP_OPTS) > tmp-$@ ++ mv tmp-$@ $@ ++libgcc_s$(SHLIB_EXT): libgcc.map ++mapfile = libgcc.map ++endif ++ ++libgcc-std.ver: $(srcdir)/libgcc-std.ver.in ++ sed -e 's/__PFX__/$(LIBGCC_VER_GNU_PREFIX)/g' \ ++ -e 's/__FIXPTPFX__/$(LIBGCC_VER_FIXEDPOINT_GNU_PREFIX)/g' < $< > $@ ++ ++libgcc_s$(SHLIB_EXT): $(libgcc-s-objects) $(extra-parts) ++ # @multilib_flags@ is still needed because this may use ++ # $(GCC_FOR_TARGET) and $(LIBGCC2_CFLAGS) directly. ++ # @multilib_dir@ is not really necessary, but sometimes it has ++ # more uses than just a directory name. ++ $(mkinstalldirs) $(MULTIDIR) ++ $(subst @multilib_flags@,$(CFLAGS) -B./,$(subst \ ++ @multilib_dir@,$(MULTIDIR),$(subst \ ++ @shlib_objs@,$(objects),$(subst \ ++ @shlib_base_name@,libgcc_s,$(subst \ ++ @shlib_map_file@,$(mapfile),$(subst \ ++ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(subst \ ++ @shlib_slibdir@,$(shlib_slibdir),$(SHLIB_LINK)))))))) ++ ++libunwind$(SHLIB_EXT): $(libunwind-s-objects) $(extra-parts) ++ # @multilib_flags@ is still needed because this may use ++ # $(GCC_FOR_TARGET) and $(LIBGCC2_CFLAGS) directly. ++ # @multilib_dir@ is not really necessary, but sometimes it has ++ # more uses than just a directory name. ++ $(mkinstalldirs) $(MULTIDIR) ++ $(subst @multilib_flags@,$(CFLAGS) -B./,$(subst \ ++ @multilib_dir@,$(MULTIDIR),$(subst \ ++ @shlib_objs@,$(objects),$(subst \ ++ @shlib_base_name@,libunwind,$(subst \ ++ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIBUNWIND_LINK)))))) ++ ++endif ++ ++# Build the standard GCC startfiles and endfiles. ++ALL_CRT_CFLAGS = $(CFLAGS) $(CRTSTUFF_CFLAGS) $(INCLUDES) ++crt_compile = $(CC) $(ALL_CRT_CFLAGS) -o $@ $(compile_deps) ++ ++ifeq ($(CUSTOM_CRTSTUFF),) ++# Compile two additional files that are linked with every program ++# linked using GCC on systems using COFF or ELF, for the sake of C++ ++# constructors. ++crtbegin$(objext): $(srcdir)/crtstuff.c ++ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_BEGIN ++ ++crtend$(objext): $(srcdir)/crtstuff.c ++ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_END ++ ++# These are versions of crtbegin and crtend for shared libraries. ++crtbeginS$(objext): $(srcdir)/crtstuff.c ++ $(crt_compile) $(CRTSTUFF_T_CFLAGS_S) -c $< -DCRT_BEGIN -DCRTSTUFFS_O ++ ++crtendS$(objext): $(srcdir)/crtstuff.c ++ $(crt_compile) $(CRTSTUFF_T_CFLAGS_S) -c $< -DCRT_END -DCRTSTUFFS_O ++ ++# This is a version of crtbegin for -static links. ++crtbeginT$(objext): $(srcdir)/crtstuff.c ++ $(crt_compile) $(CRTSTUFF_T_CFLAGS) -c $< -DCRT_BEGIN -DCRTSTUFFT_O ++endif ++ ++ifeq ($(CUSTOM_CRTIN),) ++# -x assembler-with-cpp is only needed on case-insensitive filesystem. ++crti$(objext): $(srcdir)/config/$(cpu_type)/crti.S ++ $(crt_compile) -c -x assembler-with-cpp $< ++ ++crtn$(objext): $(srcdir)/config/$(cpu_type)/crtn.S ++ $(crt_compile) -c -x assembler-with-cpp $< ++endif ++ ++# Build extra startfiles in the libgcc directory. ++.PHONY: libgcc-extra-parts ++libgcc-extra-parts: $(EXTRA_PARTS) ++ ++ # Early copyback; see "all" above for the rationale. The ++ # early copy is necessary so that the gcc -B options find ++ # the right startup files when linking shared libgcc. ++ $(mkinstalldirs) $(gcc_objdir)$(MULTISUBDIR) ++ parts="$(EXTRA_PARTS)"; \ ++ for file in $$parts; do \ ++ rm -f $(gcc_objdir)$(MULTISUBDIR)/$$file; \ ++ $(INSTALL_DATA) $$file $(gcc_objdir)$(MULTISUBDIR)/; \ ++ case $$file in \ ++ *.a) \ ++ $(RANLIB) $(gcc_objdir)$(MULTISUBDIR)/$$file ;; \ ++ esac; \ ++ done ++ ++all: $(extra-parts) ++ ++$(libgcc-objects) $(libgcc-s-objects) $(libgcc-eh-objects) \ ++ $(libgcov-objects) \ ++ $(libunwind-objects) $(libunwind-s-objects) \ ++ $(EXTRA_PARTS): libgcc_tm.h ++ ++# Copy unwind.h to the place where gcc will look for it at build-time ++install-unwind_h-forbuild: ++ dest=$(gcc_objdir)/include/tmp$$$$-unwind.h; \ ++ cp unwind.h $$dest; \ ++ chmod a+r $$dest; \ ++ sh $(srcdir)/../move-if-change $$dest $(gcc_objdir)/include/unwind.h ++ ++# Copy unwind.h to the place where gcc will look at run-time, once installed ++# ++# This is redundant with the internal copy above when using a regular toplevel ++# "install" target, because gcc's install will copy to the destination as well. ++# ++# This is however useful for "install-no-fixincludes" case, when only the gcc ++# internal headers are copied by gcc's install. ++install-unwind_h: ++ $(mkinstalldirs) $(DESTDIR)$(libsubdir)/include ++ $(INSTALL_DATA) unwind.h $(DESTDIR)$(libsubdir)/include ++ ++all: install-unwind_h-forbuild ++ ++# Documentation targets (empty). ++.PHONY: info html dvi pdf install-info install-html install-pdf ++ ++info: ++install-info: ++html: ++install-html: ++dvi: ++pdf: ++install-pdf: ++ ++# Install rules. These do not depend on "all", so that they can be invoked ++# recursively from it. ++install-libunwind: ++ $(mkinstalldirs) $(DESTDIR)$(inst_slibdir) ++ ++ # NOTE: Maybe this should go into $(inst_libdir), but this ++ # is where the old mklibgcc.in put it. ++ $(INSTALL_DATA) libunwind.a $(DESTDIR)$(inst_slibdir)/ ++ chmod 644 $(DESTDIR)$(inst_slibdir)/libunwind.a ++ $(RANLIB) $(DESTDIR)$(inst_slibdir)/libunwind.a ++ ++ $(subst @multilib_dir@,$(MULTIDIR),$(subst \ ++ @shlib_base_name@,libunwind,$(subst \ ++ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIBUNWIND_INSTALL)))) ++ ++install-shared: ++ $(mkinstalldirs) $(DESTDIR)$(inst_libdir) ++ ++ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a ++ ++ $(subst @multilib_dir@,$(MULTIDIR),$(subst \ ++ @shlib_base_name@,libgcc_s,$(subst \ ++ @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) ++ ++install-leaf: $(install-shared) $(install-libunwind) ++ $(mkinstalldirs) $(DESTDIR)$(inst_libdir) ++ ++ $(INSTALL_DATA) libgcc.a $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc.a ++ $(INSTALL_DATA) libgcov.a $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a ++ ++ parts="$(INSTALL_PARTS)"; \ ++ for file in $$parts; do \ ++ rm -f $(DESTDIR)$(inst_libdir)/$$file; \ ++ $(INSTALL_DATA) $$file $(DESTDIR)$(inst_libdir)/; \ ++ case $$file in \ ++ *.a) \ ++ $(RANLIB) $(gcc_objdir)$(MULTISUBDIR)/$$file ;; \ ++ esac; \ ++ done ++ ++install: install-leaf install-unwind_h ++ @: $(MAKE) ; $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install ++ ++install-strip: install ++ ++.PHONY: install install-shared install-libunwind install-strip ++.PHONY: install-unwind_h install-unwind_h-forbuild ++ ++# Don't export variables to the environment, in order to not confuse ++# configure. ++.NOEXPORT: ++ ++include $(srcdir)/empty.mk $(wildcard *.dep) +diff -NBaur gcc-4.7.2/libgcc/crtstuff.c gcc-4.7.2-arm/libgcc/crtstuff.c +--- gcc-4.7.2/libgcc/crtstuff.c 2011-12-06 21:35:41.000000000 +0000 ++++ gcc-4.7.2-arm/libgcc/crtstuff.c 2012-12-16 00:47:39.000000000 +0000 +@@ -49,7 +49,7 @@ + + /* Target machine header files require this define. */ + #define IN_LIBGCC2 +- ++#define USED_FOR_TARGET + /* FIXME: Including auto-host is incorrect, but until we have + identified the set of defines that need to go into auto-target.h, + this will have to do. */ diff --git a/dkarm-eabi/patches/gdb-7.4.1.patch b/dkarm-eabi/patches/gdb-7.4.1.patch deleted file mode 100644 index f36f628..0000000 --- a/dkarm-eabi/patches/gdb-7.4.1.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -Nbaur gdb-7.4.1/gdb/Makefile.in gdb-7.4.1-arm/gdb/Makefile.in ---- gdb-7.4.1/gdb/Makefile.in 2012-01-06 04:43:01.000000000 +0000 -+++ gdb-7.4.1-arm/gdb/Makefile.in 2012-06-18 11:40:57.000000000 +0100 -@@ -2195,10 +2195,8 @@ - # Note that we put the dependencies into a .Tpo file, then move them - # into place if the compile succeeds. We need this because gcc does - # not atomically write the dependency output file. --@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ --@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo --@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ --@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po -+@GMAKE_TRUE@override COMPILE.post = -c -o $@ -+@GMAKE_TRUE@override POSTCOMPILE = - @GMAKE_TRUE@else - @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ - @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) -diff -Nbaur gdb-7.4.1/sim/common/Make-common.in gdb-7.4.1-arm/sim/common/Make-common.in ---- gdb-7.4.1/sim/common/Make-common.in 2012-01-06 04:54:38.000000000 +0000 -+++ gdb-7.4.1-arm/sim/common/Make-common.in 2012-06-18 11:25:26.000000000 +0100 -@@ -417,10 +417,8 @@ - # Note that we put the dependencies into a .Tpo file, then move them - # into place if the compile succeeds. We need this because gcc does - # not atomically write the dependency output file. --@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ --@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo --@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ --@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po -+@GMAKE_TRUE@override COMPILE.post = -c -o $@ -+@GMAKE_TRUE@override POSTCOMPILE = - @GMAKE_TRUE@else - @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ - @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) diff --git a/dkarm-eabi/patches/gdb-7.5.1.patch b/dkarm-eabi/patches/gdb-7.5.1.patch new file mode 100644 index 0000000..6311406 --- /dev/null +++ b/dkarm-eabi/patches/gdb-7.5.1.patch @@ -0,0 +1,2224 @@ +diff -Nbaur gdb-7.5.1/gdb/Makefile.in gdb-7.5.1-arm/gdb/Makefile.in +--- gdb-7.5.1/gdb/Makefile.in 2012-07-02 16:29:33.000000000 +0100 ++++ gdb-7.5.1-arm/gdb/Makefile.in 2012-12-16 02:41:22.000000000 +0000 +@@ -2156,10 +2156,8 @@ + # Note that we put the dependencies into a .Tpo file, then move them + # into place if the compile succeeds. We need this because gcc does + # not atomically write the dependency output file. +-@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ +-@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo +-@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ +-@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po ++@GMAKE_TRUE@override COMPILE.post = -c -o $@ ++@GMAKE_TRUE@override POSTCOMPILE = + @GMAKE_TRUE@else + @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ + @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) +diff -Nbaur gdb-7.5.1/gdb/Makefile.in.orig gdb-7.5.1-arm/gdb/Makefile.in.orig +--- gdb-7.5.1/gdb/Makefile.in.orig 1970-01-01 01:00:00.000000000 +0100 ++++ gdb-7.5.1-arm/gdb/Makefile.in.orig 2012-07-02 16:29:33.000000000 +0100 +@@ -0,0 +1,2188 @@ ++# Copyright (C) 1989-2012 Free Software Foundation, Inc. ++ ++# This file is part of GDB. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program. If not, see . ++ ++prefix = @prefix@ ++exec_prefix = @exec_prefix@ ++ ++host_alias = @host_alias@ ++target_alias = @target_alias@ ++program_transform_name = @program_transform_name@ ++bindir = @bindir@ ++libdir = @libdir@ ++tooldir = $(libdir)/$(target_alias) ++ ++datadir = @datadir@ ++localedir = @localedir@ ++mandir = @mandir@ ++man1dir = $(mandir)/man1 ++man2dir = $(mandir)/man2 ++man3dir = $(mandir)/man3 ++man4dir = $(mandir)/man4 ++man5dir = $(mandir)/man5 ++man6dir = $(mandir)/man6 ++man7dir = $(mandir)/man7 ++man8dir = $(mandir)/man8 ++man9dir = $(mandir)/man9 ++infodir = @infodir@ ++datarootdir = @datarootdir@ ++docdir = @docdir@ ++htmldir = @htmldir@ ++pdfdir = @pdfdir@ ++includedir = @includedir@ ++ ++# This can be referenced by `LIBINTL' as computed by ++# ZW_GNU_GETTEXT_SISTER_DIR. ++top_builddir = . ++ ++SHELL = @SHELL@ ++EXEEXT = @EXEEXT@ ++ ++AWK = @AWK@ ++LN_S = @LN_S@ ++ ++INSTALL = @INSTALL@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_DATA = @INSTALL_DATA@ ++ ++DESTDIR = ++ ++AR = @AR@ ++AR_FLAGS = qv ++RANLIB = @RANLIB@ ++DLLTOOL = @DLLTOOL@ ++WINDRES = @WINDRES@ ++MIG = @MIG@ ++ ++XGETTEXT = @XGETTEXT@ ++GMSGFMT = @GMSGFMT@ ++MSGMERGE = msgmerge ++ ++PACKAGE = @PACKAGE@ ++CATALOGS = @CATALOGS@ ++ ++# If you are compiling with GCC, make sure that either 1) You have the ++# fixed include files where GCC can reach them, or 2) You use the ++# -traditional flag. Otherwise the ioctl calls in inflow.c ++# will be incorrectly compiled. The "fixincludes" script in the gcc ++# distribution will fix your include files up. ++CC=@CC@ ++ ++# Dependency tracking information. ++DEPMODE = @CCDEPMODE@ ++DEPDIR = @DEPDIR@ ++depcomp = $(SHELL) $(srcdir)/../depcomp ++ ++# Note that these are overridden by GNU make-specific code below if ++# GNU make is used. The overrides implement dependency tracking. ++COMPILE.pre = $(CC) ++COMPILE.post = -c -o $@ ++COMPILE = $(COMPILE.pre) $(INTERNAL_CFLAGS) $(COMPILE.post) ++POSTCOMPILE = @true ++ ++# Directory containing source files. ++srcdir = @srcdir@ ++VPATH = @srcdir@ ++ ++YACC=@YACC@ ++ ++# This is used to rebuild ada-lex.c from ada-lex.l. If the program is ++# not defined, but ada-lex.c is present, compilation will continue, ++# possibly with a warning. ++FLEX = flex ++ ++YLWRAP = $(srcdir)/../ylwrap ++ ++# where to find makeinfo, preferably one designed for texinfo-2 ++MAKEINFO = @MAKEINFO@ ++MAKEINFOFLAGS = @MAKEINFOFLAGS@ ++MAKEINFO_EXTRA_FLAGS = @MAKEINFO_EXTRA_FLAGS@ ++MAKEINFO_CMD = $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFO_EXTRA_FLAGS) ++ ++MAKEHTML = $(MAKEINFO_CMD) --html ++MAKEHTMLFLAGS = ++ ++# Set this up with gcc if you have gnu ld and the loader will print out ++# line numbers for undefined references. ++#CC_LD=gcc -static ++CC_LD=$(CC) ++ ++# Where is our "include" directory? Typically $(srcdir)/../include. ++# This is essentially the header file directory for the library ++# routines in libiberty. ++INCLUDE_DIR = $(srcdir)/../include ++INCLUDE_CFLAGS = -I$(INCLUDE_DIR) ++ ++# Where is the "-liberty" library? Typically in ../libiberty. ++LIBIBERTY = ../libiberty/libiberty.a ++ ++# Where is the BFD library? Typically in ../bfd. ++BFD_DIR = ../bfd ++BFD = $(BFD_DIR)/libbfd.a ++BFD_SRC = $(srcdir)/$(BFD_DIR) ++BFD_CFLAGS = -I$(BFD_DIR) -I$(BFD_SRC) ++ ++# Where is the decnumber library? Typically in ../libdecnumber. ++LIBDECNUMBER_DIR = ../libdecnumber ++LIBDECNUMBER = $(LIBDECNUMBER_DIR)/libdecnumber.a ++LIBDECNUMBER_SRC = $(srcdir)/$(LIBDECNUMBER_DIR) ++LIBDECNUMBER_CFLAGS = -I$(LIBDECNUMBER_DIR) -I$(LIBDECNUMBER_SRC) ++ ++# Where is the READLINE library? Typically in ../readline. ++READLINE_DIR = ../readline ++READLINE_SRC = $(srcdir)/$(READLINE_DIR) ++READLINE = @READLINE@ ++READLINE_DEPS = @READLINE_DEPS@ ++READLINE_CFLAGS = @READLINE_CFLAGS@ ++ ++# Where is expat? This will be empty if expat was not available. ++LIBEXPAT = @LIBEXPAT@ ++ ++WARN_CFLAGS = @WARN_CFLAGS@ ++WERROR_CFLAGS = @WERROR_CFLAGS@ ++GDB_WARN_CFLAGS = $(WARN_CFLAGS) ++GDB_WERROR_CFLAGS = $(WERROR_CFLAGS) ++ ++GDB_WARN_CFLAGS_NO_FORMAT = `echo " $(GDB_WARN_CFLAGS) " \ ++ | sed "s/ -Wformat-nonliteral / -Wno-format-nonliteral /g"` ++ ++RDYNAMIC = @RDYNAMIC@ ++ ++# Where is the INTL library? Typically in ../intl. ++INTL = @LIBINTL@ ++INTL_DEPS = @LIBINTL_DEP@ ++INTL_CFLAGS = @INCINTL@ ++ ++# Did the user give us a --with-gdb-datadir option? ++GDB_DATADIR = @GDB_DATADIR@ ++ ++# Helper code from gnulib. ++GNULIB_BUILDDIR = build-gnulib ++LIBGNU = $(GNULIB_BUILDDIR)/import/libgnu.a ++INCGNU = -I$(srcdir)/gnulib/import -I$(GNULIB_BUILDDIR)/import ++ ++# Generated headers in the gnulib directory. These must be listed ++# so that they are generated before other files are compiled. ++GNULIB_H = $(GNULIB_BUILDDIR)/import/string.h @GNULIB_STDINT_H@ ++ ++# ++# CLI sub directory definitons ++# ++SUBDIR_CLI_OBS = \ ++ cli-dump.o \ ++ cli-decode.o cli-script.o cli-cmds.o cli-setshow.o \ ++ cli-logging.o \ ++ cli-interp.o cli-utils.o ++SUBDIR_CLI_SRCS = \ ++ cli/cli-dump.c \ ++ cli/cli-decode.c cli/cli-script.c cli/cli-cmds.c cli/cli-setshow.c \ ++ cli/cli-logging.c \ ++ cli/cli-interp.c cli/cli-utils.c ++SUBDIR_CLI_DEPS = ++SUBDIR_CLI_LDFLAGS= ++SUBDIR_CLI_CFLAGS= ++ ++# ++# MI sub directory definitons ++# ++SUBDIR_MI_OBS = \ ++ mi-out.o mi-console.o \ ++ mi-cmds.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \ ++ mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o \ ++ mi-cmd-info.o mi-interp.o \ ++ mi-main.o mi-parse.o mi-getopt.o ++SUBDIR_MI_SRCS = \ ++ mi/mi-out.c mi/mi-console.c \ ++ mi/mi-cmds.c mi/mi-cmd-env.c \ ++ mi/mi-cmd-var.c mi/mi-cmd-break.c mi/mi-cmd-stack.c \ ++ mi/mi-cmd-file.c mi/mi-cmd-disas.c mi/mi-symbol-cmds.c \ ++ mi/mi-cmd-target.c mi/mi-cmd-info.c mi/mi-interp.c \ ++ mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c ++SUBDIR_MI_DEPS = ++SUBDIR_MI_LDFLAGS= ++SUBDIR_MI_CFLAGS= ++ ++# ++# TUI sub directory definitions ++# ++ ++SUBDIR_TUI_OBS = \ ++ tui-command.o \ ++ tui-data.o \ ++ tui-disasm.o \ ++ tui-file.o \ ++ tui-hooks.o \ ++ tui-interp.o \ ++ tui-io.o \ ++ tui-layout.o \ ++ tui-out.o \ ++ tui-regs.o \ ++ tui-source.o \ ++ tui-stack.o \ ++ tui-win.o \ ++ tui-windata.o \ ++ tui-wingeneral.o \ ++ tui-winsource.o \ ++ tui.o ++ ++SUBDIR_TUI_SRCS = \ ++ tui/tui-command.c \ ++ tui/tui-data.c \ ++ tui/tui-disasm.c \ ++ tui/tui-file.c \ ++ tui/tui-hooks.c \ ++ tui/tui-interp.c \ ++ tui/tui-io.c \ ++ tui/tui-layout.c \ ++ tui/tui-out.c \ ++ tui/tui-regs.c \ ++ tui/tui-source.c \ ++ tui/tui-stack.c \ ++ tui/tui-win.c \ ++ tui/tui-windata.c \ ++ tui/tui-wingeneral.c \ ++ tui/tui-winsource.c \ ++ tui/tui.c ++ ++SUBDIR_TUI_DEPS = ++SUBDIR_TUI_LDFLAGS= ++SUBDIR_TUI_CFLAGS= \ ++ -DTUI=1 ++ ++# ++# python sub directory definitons ++# ++SUBDIR_PYTHON_OBS = \ ++ python.o \ ++ py-auto-load.o \ ++ py-block.o \ ++ py-bpevent.o \ ++ py-breakpoint.o \ ++ py-cmd.o \ ++ py-continueevent.o \ ++ py-event.o \ ++ py-evtregistry.o \ ++ py-evts.o \ ++ py-exitedevent.o \ ++ py-finishbreakpoint.o \ ++ py-frame.o \ ++ py-function.o \ ++ py-inferior.o \ ++ py-infthread.o \ ++ py-lazy-string.o \ ++ py-newobjfileevent.o \ ++ py-objfile.o \ ++ py-param.o \ ++ py-prettyprint.o \ ++ py-progspace.o \ ++ py-signalevent.o \ ++ py-stopevent.o \ ++ py-symbol.o \ ++ py-symtab.o \ ++ py-threadevent.o \ ++ py-type.o \ ++ py-utils.o \ ++ py-value.o ++ ++SUBDIR_PYTHON_SRCS = \ ++ python/python.c \ ++ python/py-auto-load.c \ ++ python/py-block.c \ ++ python/py-bpevent.c \ ++ python/py-breakpoint.c \ ++ python/py-cmd.c \ ++ python/py-continueevent.c \ ++ python/py-event.c \ ++ python/py-evtregistry.c \ ++ python/py-evts.c \ ++ python/py-exitedevent.c \ ++ python/py-finishbreakpoint.c \ ++ python/py-frame.c \ ++ python/py-function.c \ ++ python/py-inferior.c \ ++ python/py-infthread.c \ ++ python/py-lazy-string.c \ ++ python/py-newobjfileevent.c \ ++ python/py-objfile.c \ ++ python/py-param.c \ ++ python/py-prettyprint.c \ ++ python/py-progspace.c \ ++ python/py-signalevent.c \ ++ python/py-stopevent.c \ ++ python/py-symbol.c \ ++ python/py-symtab.c \ ++ python/py-threadevent.c \ ++ python/py-type.c \ ++ python/py-utils.c \ ++ python/py-value.c ++SUBDIR_PYTHON_DEPS = ++SUBDIR_PYTHON_LDFLAGS= ++SUBDIR_PYTHON_CFLAGS= ++ ++# Opcodes currently live in one of two places. Either they are in the ++# opcode library, typically ../opcodes, or they are in a header file ++# in INCLUDE_DIR. ++# Where is the "-lopcodes" library, with (some of) the opcode tables and ++# disassemblers? ++OPCODES_DIR = ../opcodes ++OPCODES_SRC = $(srcdir)/$(OPCODES_DIR) ++OPCODES = $(OPCODES_DIR)/libopcodes.a ++# Where are the other opcode tables which only have header file ++# versions? ++OP_INCLUDE = $(INCLUDE_DIR)/opcode ++# Some source files like to use #include "opcodes/file.h" ++OPCODES_CFLAGS = -I$(OP_INCLUDE) -I$(OPCODES_SRC)/.. ++ ++# The simulator is usually nonexistent; targets that include one ++# should set this to list all the .o or .a files to be linked in. ++SIM = @SIM@ ++ ++WIN32LIBS = @WIN32LIBS@ ++ ++# Tcl et al cflags and libraries ++TCL = @TCL_LIBRARY@ ++TCL_CFLAGS = @TCL_INCLUDE@ ++GDBTKLIBS = @GDBTKLIBS@ ++# Extra flags that the GDBTK files need: ++GDBTK_CFLAGS = @GDBTK_CFLAGS@ ++ ++TK = @TK_LIBRARY@ ++TK_CFLAGS = @TK_INCLUDE@ ++ ++X11_CFLAGS = @TK_XINCLUDES@ ++X11_LDFLAGS = ++X11_LIBS = ++ ++WIN32LDAPP = @WIN32LDAPP@ ++ ++LIBGUI = @LIBGUI@ ++GUI_CFLAGS_X = @GUI_CFLAGS_X@ ++IDE_CFLAGS=$(GUI_CFLAGS_X) $(IDE_CFLAGS_X) ++ ++ALL_TCL_CFLAGS = $(TCL_CFLAGS) $(TK_CFLAGS) ++ ++# The version of gdbtk we're building. This should be kept ++# in sync with GDBTK_VERSION and friends in gdbtk.h. ++GDBTK_VERSION = 1.0 ++GDBTK_LIBRARY = $(datadir)/insight$(GDBTK_VERSION) ++ ++# Gdbtk requires an absolute path to the source directory or ++# the testsuite won't run properly. ++GDBTK_SRC_DIR = @GDBTK_SRC_DIR@ ++ ++SUBDIR_GDBTK_OBS = \ ++ gdbtk.o gdbtk-bp.o gdbtk-cmds.o gdbtk-hooks.o gdbtk-interp.o \ ++ gdbtk-register.o gdbtk-stack.o gdbtk-varobj.o gdbtk-wrapper.o ++SUBDIR_GDBTK_SRCS = \ ++ gdbtk/generic/gdbtk.c gdbtk/generic/gdbtk-bp.c \ ++ gdbtk/generic/gdbtk-cmds.c gdbtk/generic/gdbtk-hooks.c \ ++ gdbtk/generic/gdbtk-interp.c \ ++ gdbtk/generic/gdbtk-register.c gdbtk/generic/gdbtk-stack.c \ ++ gdbtk/generic/gdbtk-varobj.c gdbtk/generic/gdbtk-wrapper.c \ ++ gdbtk/generic/gdbtk-main.c ++SUBDIR_GDBTK_DEPS = $(LIBGUI) $(TCL_DEPS) $(TK_DEPS) ++SUBDIR_GDBTK_LDFLAGS= ++SUBDIR_GDBTK_CFLAGS= -DGDBTK ++ ++CONFIG_OBS= @CONFIG_OBS@ ++CONFIG_SRCS= @CONFIG_SRCS@ ++CONFIG_DEPS= @CONFIG_DEPS@ ++CONFIG_LDFLAGS = @CONFIG_LDFLAGS@ ++ENABLE_CFLAGS= @ENABLE_CFLAGS@ ++CONFIG_ALL= @CONFIG_ALL@ ++CONFIG_CLEAN= @CONFIG_CLEAN@ ++CONFIG_INSTALL = @CONFIG_INSTALL@ ++CONFIG_UNINSTALL = @CONFIG_UNINSTALL@ ++ ++# -I. for config files. ++# -I$(srcdir) for gdb internal headers. ++# -I$(srcdir)/config for more generic config files. ++ ++# It is also possible that you will need to add -I/usr/include/sys if ++# your system doesn't have fcntl.h in /usr/include (which is where it ++# should be according to Posix). ++DEFS = @DEFS@ ++GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/common -I$(srcdir)/config \ ++ -DLOCALEDIR="\"$(localedir)\"" $(DEFS) ++ ++# MH_CFLAGS, if defined, has host-dependent CFLAGS from the config directory. ++GLOBAL_CFLAGS = $(MH_CFLAGS) ++ ++PROFILE_CFLAGS = @PROFILE_CFLAGS@ ++ ++# CFLAGS is specifically reserved for setting from the command line ++# when running make. I.E. "make CFLAGS=-Wmissing-prototypes". ++CFLAGS = @CFLAGS@ ++ ++# Set by configure, for e.g. expat. Python installations are such that ++# C headers are included using their basename (for example, we #include ++# rather than, say, ). Since the file names ++# are sometimes a little generic, we think that the risk of collision ++# with other header files is high. If that happens, we try to mitigate ++# a bit the consequences by putting the Python includes last in the list. ++INTERNAL_CPPFLAGS = @CPPFLAGS@ @PYTHON_CPPFLAGS@ ++ ++# Need to pass this to testsuite for "make check". Probably should be ++# consistent with top-level Makefile.in and gdb/testsuite/Makefile.in ++# so "make check" has the same result no matter where it is run. ++CXXFLAGS = -g -O ++ ++# INTERNAL_CFLAGS is the aggregate of all other *CFLAGS macros. ++INTERNAL_CFLAGS_BASE = \ ++ $(CFLAGS) $(GLOBAL_CFLAGS) $(PROFILE_CFLAGS) \ ++ $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \ ++ $(BFD_CFLAGS) $(INCLUDE_CFLAGS) $(LIBDECNUMBER_CFLAGS) \ ++ $(INTL_CFLAGS) $(INCGNU) $(ENABLE_CFLAGS) $(INTERNAL_CPPFLAGS) ++INTERNAL_WARN_CFLAGS = $(INTERNAL_CFLAGS_BASE) $(GDB_WARN_CFLAGS) ++INTERNAL_CFLAGS = $(INTERNAL_WARN_CFLAGS) $(GDB_WERROR_CFLAGS) ++ ++# LDFLAGS is specifically reserved for setting from the command line ++# when running make. ++LDFLAGS = @LDFLAGS@ ++ ++# Profiling options need to go here to work. ++# I think it's perfectly reasonable for a user to set -pg in CFLAGS ++# and have it work; that's why CFLAGS is here. ++# PROFILE_CFLAGS is _not_ included, however, because we use monstartup. ++INTERNAL_LDFLAGS = $(CFLAGS) $(GLOBAL_CFLAGS) $(MH_LDFLAGS) $(LDFLAGS) $(CONFIG_LDFLAGS) ++ ++# If your system is missing alloca(), or, more likely, it's there but ++# it doesn't work, then refer to libiberty. ++ ++# Libraries and corresponding dependencies for compiling gdb. ++# XM_CLIBS, defined in *config files, have host-dependent libs. ++# LIBIBERTY appears twice on purpose. ++CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \ ++ $(XM_CLIBS) $(NAT_CLIBS) $(GDBTKLIBS) @LIBS@ @PYTHON_LIBS@ \ ++ $(LIBEXPAT) \ ++ $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) ++CDEPS = $(XM_CDEPS) $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \ ++ $(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU) ++ ++ADD_FILES = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ++ADD_DEPS = $(XM_ADD_FILES) $(TM_ADD_FILES) $(NAT_ADD_FILES) ++ ++DIST=gdb ++ ++LINT=/usr/5bin/lint ++LINTFLAGS= $(GDB_CFLAGS) $(OPCODES_CFLAGS) $(READLINE_CFLAGS) \ ++ $(BFD_CFLAGS) $(INCLUDE_CFLAGS) \ ++ $(INTL_CFLAGS) ++ ++RUNTEST = runtest ++RUNTESTFLAGS= ++ ++# XML files to build in to GDB. ++XMLFILES = $(srcdir)/features/gdb-target.dtd $(srcdir)/features/xinclude.dtd \ ++ $(srcdir)/features/library-list.dtd \ ++ $(srcdir)/features/library-list-svr4.dtd $(srcdir)/features/osdata.dtd \ ++ $(srcdir)/features/threads.dtd $(srcdir)/features/traceframe-info.dtd ++ ++# This is ser-unix.o for any system which supports a v7/BSD/SYSV/POSIX ++# interface to the serial port. Hopefully if get ported to OS/2, VMS, ++# etc., then there will be (as part of the C library or perhaps as ++# part of libiberty) a POSIX interface. But at least for now the ++# host-dependent makefile fragment might need to use something else ++# besides ser-unix.o ++SER_HARDWIRE = @SER_HARDWIRE@ ++ ++# The `remote' debugging target is supported for most architectures, ++# but not all (e.g. 960) ++REMOTE_OBS = remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o ++ ++# This is remote-sim.o if a simulator is to be linked in. ++SIM_OBS = @SIM_OBS@ ++ ++# Target-dependent object files. ++TARGET_OBS = @TARGET_OBS@ ++ ++# All target-dependent objects files that require 64-bit CORE_ADDR ++# (used with --enable-targets=all --enable-64-bit-bfd). ++ALL_64_TARGET_OBS = \ ++ alphabsd-tdep.o alphafbsd-tdep.o alpha-linux-tdep.o alpha-mdebug-tdep.o \ ++ alphanbsd-tdep.o alphaobsd-tdep.o alpha-osf1-tdep.o alpha-tdep.o \ ++ amd64fbsd-tdep.o amd64-darwin-tdep.o amd64-dicos-tdep.o \ ++ amd64-linux-tdep.o amd64nbsd-tdep.o \ ++ amd64obsd-tdep.o amd64-sol2-tdep.o amd64-tdep.o amd64-windows-tdep.o \ ++ ia64-hpux-tdep.o ia64-linux-tdep.o ia64-vms-tdep.o ia64-tdep.o \ ++ mips64obsd-tdep.o \ ++ sparc64fbsd-tdep.o sparc64-linux-tdep.o sparc64nbsd-tdep.o \ ++ sparc64obsd-tdep.o sparc64-sol2-tdep.o sparc64-tdep.o ++ ++# All other target-dependent objects files (used with --enable-targets=all). ++ALL_TARGET_OBS = \ ++ armbsd-tdep.o arm-linux-tdep.o arm-symbian-tdep.o \ ++ armnbsd-tdep.o armobsd-tdep.o \ ++ arm-tdep.o arm-wince-tdep.o \ ++ avr-tdep.o \ ++ bfin-linux-tdep.o bfin-tdep.o \ ++ cris-tdep.o \ ++ dicos-tdep.o \ ++ frv-linux-tdep.o frv-tdep.o \ ++ h8300-tdep.o \ ++ hppabsd-tdep.o hppanbsd-tdep.o hppaobsd-tdep.o \ ++ hppa-hpux-tdep.o hppa-linux-tdep.o hppa-tdep.o \ ++ i386bsd-tdep.o i386-cygwin-tdep.o i386fbsd-tdep.o i386gnu-tdep.o \ ++ i386-linux-tdep.o i386nbsd-tdep.o i386-nto-tdep.o i386obsd-tdep.o \ ++ i386-sol2-tdep.o i386-tdep.o i387-tdep.o \ ++ i386-dicos-tdep.o i386-darwin-tdep.o \ ++ iq2000-tdep.o \ ++ linux-tdep.o \ ++ lm32-tdep.o \ ++ m32c-tdep.o \ ++ m32r-linux-tdep.o m32r-tdep.o \ ++ m68hc11-tdep.o \ ++ m68kbsd-tdep.o m68klinux-tdep.o m68k-tdep.o \ ++ m88k-tdep.o \ ++ mep-tdep.o \ ++ microblaze-tdep.o microblaze-linux-tdep.o \ ++ mips-irix-tdep.o mips-linux-tdep.o \ ++ mipsnbsd-tdep.o mips-tdep.o \ ++ mn10300-linux-tdep.o mn10300-tdep.o \ ++ moxie-tdep.o \ ++ mt-tdep.o \ ++ nto-tdep.o \ ++ ppc-linux-tdep.o ppcnbsd-tdep.o ppcobsd-tdep.o ppc-sysv-tdep.o \ ++ rl78-tdep.o \ ++ rs6000-aix-tdep.o rs6000-tdep.o \ ++ rx-tdep.o \ ++ s390-tdep.o \ ++ score-tdep.o \ ++ sh64-tdep.o sh-linux-tdep.o shnbsd-tdep.o sh-tdep.o \ ++ sparc-linux-tdep.o sparcnbsd-tdep.o sparcobsd-tdep.o \ ++ sparc-sol2-tdep.o sparc-tdep.o \ ++ spu-tdep.o spu-multiarch.o solib-spu.o \ ++ tic6x-tdep.o tic6x-linux-tdep.o \ ++ tilegx-tdep.o tilegx-linux-tdep.o \ ++ v850-tdep.o \ ++ vaxnbsd-tdep.o vaxobsd-tdep.o vax-tdep.o \ ++ xstormy16-tdep.o \ ++ xtensa-config.o xtensa-tdep.o xtensa-linux-tdep.o \ ++ glibc-tdep.o \ ++ bsd-uthread.o \ ++ nbsd-tdep.o obsd-tdep.o \ ++ sol2-tdep.o \ ++ solib-frv.o solib-irix.o solib-svr4.o \ ++ solib-som.o solib-pa64.o solib-darwin.o solib-dsbt.o \ ++ dbug-rom.o dink32-rom.o ppcbug-rom.o m32r-rom.o dsrec.o monitor.o \ ++ remote-m32r-sdi.o remote-mips.o \ ++ xcoffread.o \ ++ symfile-mem.o \ ++ windows-tdep.o \ ++ linux-record.o ++ ++# Host-dependent makefile fragment comes in here. ++@host_makefile_frag@ ++# End of host-dependent makefile fragment ++ ++FLAGS_TO_PASS = \ ++ "prefix=$(prefix)" \ ++ "exec_prefix=$(exec_prefix)" \ ++ "infodir=$(infodir)" \ ++ "datarootdir=$(datarootdir)" \ ++ "docdir=$(docdir)" \ ++ "htmldir=$(htmldir)" \ ++ "pdfdir=$(pdfdir)" \ ++ "libdir=$(libdir)" \ ++ "mandir=$(mandir)" \ ++ "datadir=$(datadir)" \ ++ "includedir=$(includedir)" \ ++ "against=$(against)" \ ++ "DESTDIR=$(DESTDIR)" \ ++ "AR=$(AR)" \ ++ "AR_FLAGS=$(AR_FLAGS)" \ ++ "CC=$(CC)" \ ++ "CFLAGS=$(CFLAGS)" \ ++ "CXX=$(CXX)" \ ++ "CXXFLAGS=$(CXXFLAGS)" \ ++ "DLLTOOL=$(DLLTOOL)" \ ++ "LDFLAGS=$(LDFLAGS)" \ ++ "RANLIB=$(RANLIB)" \ ++ "MAKEINFO=$(MAKEINFO)" \ ++ "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \ ++ "MAKEINFO_EXTRA_FLAGS=$(MAKEINFO_EXTRA_FLAGS)" \ ++ "MAKEHTML=$(MAKEHTML)" \ ++ "MAKEHTMLFLAGS=$(MAKEHTMLFLAGS)" \ ++ "INSTALL=$(INSTALL)" \ ++ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ ++ "INSTALL_DATA=$(INSTALL_DATA)" \ ++ "RUNTEST=$(RUNTEST)" \ ++ "RUNTESTFLAGS=$(RUNTESTFLAGS)" ++ ++# Flags that we pass when building the testsuite. ++ ++# empty for native, $(target_alias)/ for cross ++target_subdir = @target_subdir@ ++ ++CC_FOR_TARGET = ` \ ++ if [ -f $${rootme}/../gcc/xgcc ] ; then \ ++ if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \ ++ echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \ ++ else \ ++ echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \ ++ fi; \ ++ else \ ++ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ ++ echo $(CC); \ ++ else \ ++ t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ ++ fi; \ ++ fi` ++ ++CXX = gcc ++CXX_FOR_TARGET = ` \ ++ if [ -f $${rootme}/../gcc/xgcc ] ; then \ ++ if [ -f $${rootme}/../$(target_subdir)newlib/Makefile ] ; then \ ++ echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/ -idirafter $${rootme}/$(target_subdir)newlib/targ-include -idirafter $${rootsrc}/../$(target_subdir)newlib/libc/include -nostdinc -B$${rootme}/../$(target_subdir)newlib/; \ ++ else \ ++ echo $${rootme}/../gcc/xgcc -B$${rootme}/../gcc/; \ ++ fi; \ ++ else \ ++ if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \ ++ echo $(CXX); \ ++ else \ ++ t='$(program_transform_name)'; echo gcc | sed -e '' $$t; \ ++ fi; \ ++ fi` ++ ++# The use of $$(x_FOR_TARGET) reduces the command line length by not ++# duplicating the lengthy definition. ++TARGET_FLAGS_TO_PASS = \ ++ "prefix=$(prefix)" \ ++ "exec_prefix=$(exec_prefix)" \ ++ "against=$(against)" \ ++ 'CC=$$(CC_FOR_TARGET)' \ ++ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ ++ "CFLAGS=$(CFLAGS)" \ ++ 'CXX=$$(CXX_FOR_TARGET)' \ ++ "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ ++ "CXXFLAGS=$(CXXFLAGS)" \ ++ "INSTALL=$(INSTALL)" \ ++ "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ ++ "INSTALL_DATA=$(INSTALL_DATA)" \ ++ "MAKEINFO=$(MAKEINFO)" \ ++ "MAKEHTML=$(MAKEHTML)" \ ++ "RUNTEST=$(RUNTEST)" \ ++ "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ ++ "FORCE_PARALLEL=$(FORCE_PARALLEL)" ++ ++# All source files that go into linking GDB. ++# Links made at configuration time should not be specified here, since ++# SFILES is used in building the distribution archive. ++ ++SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \ ++ ada-varobj.c \ ++ addrmap.c auto-load.c \ ++ auxv.c ax-general.c ax-gdb.c \ ++ agent.c \ ++ bcache.c \ ++ bfd-target.c \ ++ block.c blockframe.c breakpoint.c buildsym.c \ ++ c-exp.y c-lang.c c-typeprint.c c-valprint.c \ ++ charset.c cleanups.c cli-out.c coffread.c coff-pe-read.c \ ++ complaints.c completer.c continuations.c corefile.c corelow.c \ ++ cp-abi.c cp-support.c cp-namespace.c cp-valprint.c \ ++ d-lang.c d-valprint.c \ ++ cp-name-parser.y \ ++ dbxread.c demangle.c dictionary.c disasm.c doublest.c dummy-frame.c \ ++ dwarf2expr.c dwarf2loc.c dwarf2read.c dwarf2-frame.c \ ++ dwarf2-frame-tailcall.c \ ++ elfread.c environ.c eval.c event-loop.c event-top.c \ ++ exceptions.c expprint.c \ ++ f-exp.y f-lang.c f-typeprint.c f-valprint.c filesystem.c \ ++ findcmd.c findvar.c frame.c frame-base.c frame-unwind.c \ ++ gdbarch.c arch-utils.c gdbtypes.c gnu-v2-abi.c gnu-v3-abi.c \ ++ go-exp.y go-lang.c go-typeprint.c go-valprint.c \ ++ inf-loop.c \ ++ infcall.c \ ++ infcmd.c inflow.c infrun.c \ ++ inline-frame.c \ ++ interps.c \ ++ jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \ ++ language.c linespec.c \ ++ m2-exp.y m2-lang.c m2-typeprint.c m2-valprint.c \ ++ macrotab.c macroexp.c macrocmd.c macroscope.c main.c maint.c \ ++ mdebugread.c memattr.c mem-break.c minsyms.c mipsread.c memory-map.c \ ++ memrange.c mi/mi-common.c \ ++ objc-exp.y objc-lang.c \ ++ objfiles.c osabi.c observer.c osdata.c \ ++ opencl-lang.c \ ++ p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c printcmd.c \ ++ proc-service.list progspace.c \ ++ prologue-value.c psymtab.c \ ++ regcache.c reggroups.c remote.c remote-fileio.c reverse.c \ ++ sentinel-frame.c \ ++ serial.c ser-base.c ser-unix.c skip.c \ ++ solib.c solib-target.c source.c \ ++ stabsread.c stack.c probe.c stap-probe.c std-regs.c \ ++ symfile.c symfile-mem.c symmisc.c symtab.c \ ++ target.c target-descriptions.c target-memory.c \ ++ thread.c top.c tracepoint.c \ ++ trad-frame.c \ ++ tramp-frame.c \ ++ typeprint.c \ ++ ui-out.c utils.c ui-file.h ui-file.c \ ++ user-regs.c \ ++ valarith.c valops.c valprint.c value.c varobj.c common/vec.c \ ++ xml-tdesc.c xml-support.c \ ++ inferior.c gdb_usleep.c \ ++ record.c gcore.c \ ++ jit.c \ ++ xml-syscall.c \ ++ annotate.c common/signals.c copying.c dfp.c gdb.c inf-child.c \ ++ regset.c sol-thread.c windows-termcap.c \ ++ common/common-utils.c common/xml-utils.c \ ++ common/ptid.c common/buffer.c gdb-dlfcn.c common/agent.c \ ++ common/format.c ++ ++LINTFILES = $(SFILES) $(YYFILES) $(CONFIG_SRCS) init.c ++ ++# Header files that need to have srcdir added. Note that in the cases ++# where we use a macro like $(gdbcmd_h), things are carefully arranged ++# so that each .h file is listed exactly once (M-x tags-search works ++# wrong if TAGS has files twice). Because this is tricky to get ++# right, it is probably easiest just to list .h files here directly. ++ ++HFILES_NO_SRCDIR = osf-share/cma_debug_client.h \ ++osf-share/HP800/cma_thread_io.h osf-share/cma_sequence.h \ ++osf-share/cma_mutex.h osf-share/cma_semaphore_defs.h \ ++osf-share/cma_list.h osf-share/cma_handle.h osf-share/cma_stack.h \ ++osf-share/cma_util.h osf-share/RIOS/cma_thread_io.h \ ++osf-share/cma_errors.h osf-share/cma_tcb_defs.h osf-share/cma_attr.h \ ++osf-share/cma_stack_int.h osf-share/cma_init.h \ ++osf-share/cma_deb_core.h osf-share/AT386/cma_thread_io.h \ ++osf-share/cma_sched.h \ ++common/gdb_signals.h common/gdb_thread_db.h common/i386-xstate.h \ ++common/linux-ptrace.h \ ++proc-utils.h arm-tdep.h ax-gdb.h ppcnbsd-tdep.h \ ++cli-out.h gdb_expat.h breakpoint.h infcall.h obsd-tdep.h \ ++exec.h m32r-tdep.h osabi.h gdbcore.h solib-som.h amd64bsd-nat.h \ ++i386bsd-nat.h xml-support.h xml-tdesc.h alphabsd-tdep.h gdb_obstack.h \ ++ia64-tdep.h ada-lang.h ada-varobj.h varobj.h frv-tdep.h nto-tdep.h serial.h \ ++c-lang.h d-lang.h golang.h frame.h event-loop.h block.h cli/cli-setshow.h \ ++cli/cli-decode.h cli/cli-cmds.h cli/cli-dump.h cli/cli-utils.h \ ++cli/cli-script.h macrotab.h symtab.h version.h \ ++gnulib/import/string.in.h gnulib/import/str-two-way.h \ ++gnulib/import/stdint.in.h remote.h gdb.h sparc-nat.h \ ++gdbthread.h dwarf2-frame.h dwarf2-frame-tailcall.h nbsd-nat.h dcache.h \ ++amd64-nat.h s390-tdep.h arm-linux-tdep.h exceptions.h macroscope.h \ ++gdbarch.h bsd-uthread.h gdb_stat.h memory-map.h memrange.h \ ++mdebugread.h m88k-tdep.h stabsread.h hppa-linux-offsets.h linux-fork.h \ ++ser-unix.h inf-ptrace.h terminal.h ui-out.h frame-base.h \ ++f-lang.h dwarf2loc.h value.h sparc-tdep.h defs.h target-descriptions.h \ ++objfiles.h common/vec.h disasm.h mips-tdep.h ser-base.h \ ++gdb_curses.h bfd-target.h memattr.h inferior.h ax.h dummy-frame.h \ ++inflow.h fbsd-nat.h ia64-libunwind-tdep.h completer.h inf-ttrace.h \ ++solib-target.h gdb_vfork.h alpha-tdep.h dwarf2expr.h \ ++m2-lang.h stack.h charset.h cleanups.h addrmap.h command.h solist.h source.h \ ++target.h prologue-value.h cp-abi.h tui/tui-hooks.h tui/tui.h \ ++tui/tui-file.h tui/tui-command.h tui/tui-disasm.h tui/tui-wingeneral.h \ ++tui/tui-windata.h tui/tui-data.h tui/tui-win.h tui/tui-stack.h \ ++tui/tui-winsource.h tui/tui-regs.h tui/tui-io.h tui/tui-layout.h \ ++tui/tui-source.h xcoffsolib.h sol2-tdep.h gregset.h sh-tdep.h sh64-tdep.h \ ++expression.h score-tdep.h gdb_select.h ser-tcp.h buildsym.h valprint.h \ ++call-cmds.h typeprint.h mi/mi-getopt.h mi/mi-parse.h mi/mi-console.h \ ++mi/mi-out.h mi/mi-main.h mi/mi-common.h mi/mi-cmds.h linux-nat.h \ ++complaints.h gdb_proc_service.h gdb_regex.h xtensa-tdep.h inf-loop.h \ ++gdb_wait.h common/gdb_assert.h solib.h ppc-tdep.h cp-support.h glibc-tdep.h \ ++interps.h auxv.h gdbcmd.h tramp-frame.h mipsnbsd-tdep.h \ ++amd64-linux-tdep.h linespec.h i387-tdep.h mn10300-tdep.h \ ++sparc64-tdep.h monitor.h ppcobsd-tdep.h srec.h solib-pa64.h \ ++coff-pe-read.h parser-defs.h gdb_ptrace.h mips-linux-tdep.h \ ++m68k-tdep.h spu-tdep.h jv-lang.h environ.h solib-irix.h amd64-tdep.h \ ++doublest.h regset.h hppa-tdep.h ppc-linux-tdep.h rs6000-tdep.h \ ++common/gdb_locale.h common/gdb_dirent.h arch-utils.h trad-frame.h gnu-nat.h \ ++language.h nbsd-tdep.h solib-svr4.h \ ++macroexp.h ui-file.h regcache.h gdb_string.h tracepoint.h i386-tdep.h \ ++inf-child.h p-lang.h event-top.h gdbtypes.h user-regs.h \ ++regformats/regdef.h config/alpha/nm-osf3.h config/i386/nm-i386gnu.h \ ++config/i386/nm-fbsd.h \ ++config/nm-nto.h config/sparc/nm-sol2.h config/nm-linux.h \ ++config/rs6000/nm-rs6000.h top.h bsd-kvm.h gdb-stabs.h reggroups.h \ ++annotate.h sim-regno.h dictionary.h dfp.h main.h frame-unwind.h \ ++remote-fileio.h i386-linux-tdep.h vax-tdep.h objc-lang.h \ ++sentinel-frame.h bcache.h symfile.h windows-tdep.h linux-tdep.h \ ++gdb_usleep.h jit.h xml-syscall.h microblaze-tdep.h \ ++psymtab.h psympriv.h progspace.h bfin-tdep.h ia64-hpux-tdep.h \ ++amd64-darwin-tdep.h charset-list.h \ ++config/djgpp/langinfo.h config/djgpp/nl_types.h darwin-nat.h \ ++dicos-tdep.h filesystem.h gcore.h gdb_wchar.h hppabsd-tdep.h \ ++i386-darwin-tdep.h i386-nat.h linux-record.h moxie-tdep.h \ ++osdata.h procfs.h python/py-event.h python/py-events.h python/py-stopevent.h \ ++python/python-internal.h python/python.h ravenscar-thread.h record.h \ ++solib-darwin.h solib-ia64-hpux.h solib-spu.h windows-nat.h xcoffread.h \ ++gnulib/import/extra/snippet/arg-nonnull.h gnulib/import/extra/snippet/c++defs.h \ ++gnulib/import/extra/snippet/warn-on-use.h \ ++gnulib/import/stddef.in.h gnulib/import/inttypes.in.h inline-frame.h skip.h \ ++common/common-utils.h common/xml-utils.h common/buffer.h common/ptid.h \ ++common/format.h \ ++common/linux-osdata.h gdb-dlfcn.h auto-load.h probe.h stap-probe.h ++ ++# Header files that already have srcdir in them, or which are in objdir. ++ ++HFILES_WITH_SRCDIR = ../bfd/bfd.h jit-reader.h ++ ++ ++# GDB "info" files, which should be included in their entirety ++INFOFILES = gdb.info* ++ ++REMOTE_EXAMPLES = m68k-stub.c i386-stub.c sparc-stub.c rem-multi.shar ++ ++# {X,T,NAT}DEPFILES are something of a pain in that it's hard to ++# default their values the way we do for SER_HARDWIRE; in the future ++# maybe much of the stuff now in {X,T,NAT}DEPFILES will go into other ++# variables analogous to SER_HARDWIRE which get defaulted in this ++# Makefile.in ++ ++DEPFILES = $(TARGET_OBS) $(SER_HARDWIRE) $(NATDEPFILES) \ ++ $(REMOTE_OBS) $(SIM_OBS) ++ ++SOURCES = $(SFILES) $(ALLDEPFILES) $(YYFILES) $(CONFIG_SRCS) ++# Don't include YYFILES (*.c) because we already include *.y in SFILES, ++# and it's more useful to see it in the .y file. ++TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \ ++ $(CONFIG_SRCS) ++TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR) ++ ++COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ ++ version.o \ ++ annotate.o \ ++ addrmap.o \ ++ auto-load.o auxv.o \ ++ agent.o \ ++ bfd-target.o \ ++ blockframe.o breakpoint.o findvar.o regcache.o cleanups.o \ ++ charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o \ ++ source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o \ ++ block.o symtab.o psymtab.o symfile.o symmisc.o linespec.o dictionary.o \ ++ infcall.o \ ++ infcmd.o infrun.o \ ++ expprint.o environ.o stack.o thread.o \ ++ exceptions.o \ ++ filesystem.o \ ++ inf-child.o \ ++ interps.o \ ++ main.o \ ++ macrotab.o macrocmd.o macroexp.o macroscope.o \ ++ mi-common.o \ ++ event-loop.o event-top.o inf-loop.o completer.o \ ++ gdbarch.o arch-utils.o gdbtypes.o osabi.o copying.o \ ++ memattr.o mem-break.o target.o parse.o language.o buildsym.o \ ++ findcmd.o \ ++ std-regs.o \ ++ signals.o \ ++ exec.o reverse.o \ ++ bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o \ ++ dbxread.o coffread.o coff-pe-read.o \ ++ dwarf2read.o mipsread.o stabsread.o corefile.o \ ++ dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o \ ++ ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o \ ++ ada-tasks.o ada-varobj.o \ ++ ui-out.o cli-out.o \ ++ varobj.o vec.o \ ++ go-lang.o go-valprint.o go-typeprint.o \ ++ jv-lang.o jv-valprint.o jv-typeprint.o \ ++ m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o \ ++ sentinel-frame.o \ ++ complaints.o typeprint.o \ ++ ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o \ ++ ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o \ ++ m2-valprint.o \ ++ serial.o mdebugread.o top.o utils.o \ ++ ui-file.o \ ++ user-regs.o \ ++ frame.o frame-unwind.o doublest.o \ ++ frame-base.o \ ++ inline-frame.o \ ++ gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \ ++ cp-namespace.o \ ++ reggroups.o regset.o \ ++ trad-frame.o \ ++ tramp-frame.o \ ++ solib.o solib-target.o \ ++ prologue-value.o memory-map.o memrange.o \ ++ xml-support.o xml-syscall.o xml-utils.o \ ++ target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o \ ++ inferior.o osdata.o gdb_usleep.o record.o gcore.o \ ++ jit.o progspace.o skip.o probe.o \ ++ common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o \ ++ format.o ++ ++TSOBS = inflow.o ++ ++SUBDIRS = doc @subdirs@ data-directory $(GNULIB_BUILDDIR) ++CLEANDIRS = $(SUBDIRS) ++ ++# List of subdirectories in the build tree that must exist. ++# This is used to force build failures in existing trees when ++# a new directory is added. ++# The format here is for the `case' shell command. ++REQUIRED_SUBDIRS = doc | testsuite | $(GNULIB_BUILDDIR) | data-directory ++ ++# For now, shortcut the "configure GDB for fewer languages" stuff. ++YYFILES = c-exp.c \ ++ cp-name-parser.c \ ++ objc-exp.c \ ++ ada-lex.c \ ++ ada-exp.c \ ++ jv-exp.c \ ++ f-exp.c go-exp.c m2-exp.c p-exp.c ++YYOBJ = c-exp.o \ ++ cp-name-parser.o \ ++ objc-exp.o \ ++ ada-exp.o \ ++ jv-exp.o \ ++ f-exp.o go-exp.o m2-exp.o p-exp.o ++ ++# Things which need to be built when making a distribution. ++ ++DISTSTUFF = $(YYFILES) ++ ++ ++# All generated files which can be included by another file. ++generated_files = config.h observer.h observer.inc ada-lex.c jit-reader.h \ ++ $(GNULIB_H) $(NAT_GENERATED_FILES) ++ ++.c.o: ++ $(COMPILE) $< ++ $(POSTCOMPILE) ++ ++all: gdb$(EXEEXT) $(CONFIG_ALL) ++ @$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do ++ ++installcheck: ++ ++# The check target can not use subdir_do, because subdir_do does not ++# use TARGET_FLAGS_TO_PASS. ++check: force ++ @if [ -f testsuite/Makefile ]; then \ ++ rootme=`pwd`; export rootme; \ ++ rootsrc=`cd $(srcdir); pwd`; export rootsrc; \ ++ cd testsuite; \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check; \ ++ else true; fi ++ ++# The idea is to parallelize testing of multilibs, for example: ++# make -j3 check//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu} ++# will run 3 concurrent sessions of check, eventually testing all 10 ++# combinations. GNU make is required for the % pattern to work, as is ++# a shell that expands alternations within braces. If GNU make is not ++# used, this rule will harmlessly fail to match. Used FORCE_PARALLEL to ++# prevent serialized checking due to the passed RUNTESTFLAGS. ++# FIXME: use config.status --config not --version, when available. ++check//%: force ++ @if [ -f testsuite/config.status ]; then \ ++ rootme=`pwd`; export rootme; \ ++ rootsrc=`cd $(srcdir); pwd`; export rootsrc; \ ++ target=`echo "$@" | sed 's,//.*,,'`; \ ++ variant=`echo "$@" | sed 's,^[^/]*//,,'`; \ ++ vardots=`echo "$$variant" | sed 's,/,.,g'`; \ ++ testdir=testsuite.$$vardots; \ ++ if [ ! -f $$testdir/Makefile ] && [ -f testsuite/config.status ]; then \ ++ configargs=`cd testsuite && ./config.status --version | \ ++ sed -n -e 's,"$$,,' -e 's,^ *with options ",,p'`; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $$testdir && \ ++ (cd $$testdir && \ ++ eval $(SHELL) "\"\$$rootsrc/testsuite/configure\" $$configargs" \ ++ "\"--srcdir=\$$rootsrc/testsuite\"" \ ++ ); \ ++ else :; fi && cd $$testdir && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) \ ++ RUNTESTFLAGS="--target_board=$$variant $(RUNTESTFLAGS)" \ ++ FORCE_PARALLEL=$(if $(FORCE_PARALLEL),1,$(if $(RUNTESTFLAGS),,1)) \ ++ "$$target"; \ ++ else true; fi ++ ++info install-info clean-info dvi pdf install-pdf html install-html: force ++ @$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do ++ ++gdb.z:gdb.1 ++ nroff -man $(srcdir)/gdb.1 | col -b > gdb.t ++ pack gdb.t ; rm -f gdb.t ++ mv gdb.t.z gdb.z ++ ++# Traditionally "install" depends on "all". But it may be useful ++# not to; for example, if the user has made some trivial change to a ++# source file and doesn't care about rebuilding or just wants to save the ++# time it takes for make to check that all is up to date. ++# install-only is intended to address that need. ++install: all ++ @$(MAKE) $(FLAGS_TO_PASS) install-only ++ ++install-only: $(CONFIG_INSTALL) ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo gdb | sed -e "$$t"` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=gdb ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir) ; \ ++ $(INSTALL_PROGRAM) gdb$(EXEEXT) \ ++ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(man1dir) ; \ ++ $(INSTALL_DATA) $(srcdir)/gdb.1 \ ++ $(DESTDIR)$(man1dir)/$$transformed_name.1 ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(includedir)/gdb ; \ ++ $(INSTALL_DATA) jit-reader.h $(DESTDIR)$(includedir)/gdb/jit-reader.h ++ @$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do ++ ++install-python: ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(GDB_DATADIR)/python/gdb ++ ++uninstall: force $(CONFIG_UNINSTALL) ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo gdb | sed -e $$t` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=gdb ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) \ ++ $(DESTDIR)$(man1dir)/$$transformed_name.1 ++ @$(MAKE) DO=uninstall "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do ++ ++# The C++ name parser can be built standalone for testing. ++test-cp-name-parser.o: cp-name-parser.c ++ $(COMPILE) -DTEST_CPNAMES cp-name-parser.c ++ $(POSTCOMPILE) ++ ++test-cp-name-parser$(EXEEXT): test-cp-name-parser.o $(LIBIBERTY) ++ $(CC_LD) $(INTERNAL_LDFLAGS) -o test-cp-name-parser$(EXEEXT) \ ++ test-cp-name-parser.o $(LIBIBERTY) ++ ++# We do this by grepping through sources. If that turns out to be too slow, ++# maybe we could just require every .o file to have an initialization routine ++# of a given name (top.o -> _initialize_top, etc.). ++# ++# Formatting conventions: The name of the _initialize_* routines must start ++# in column zero, and must not be inside #if. ++# ++# Note that the set of files with init functions might change, or the names ++# of the functions might change, so this files needs to depend on all the ++# object files that will be linked into gdb. ++ ++# FIXME: There is a problem with this approach - init.c may force ++# unnecessary files to be linked in. ++ ++# FIXME: cagney/2002-06-09: gdb/564: gdb/563: Force the order so that ++# the first call is to _initialize_gdbtypes (implemented by explicitly ++# putting that function's name first in the init.l-tmp file). This is ++# a hack to ensure that all the architecture dependant global ++# builtin_type_* variables are initialized before anything else ++# (per-architecture code is called in the same order that it is ++# registered). The ``correct fix'' is to have all the builtin types ++# made part of the architecture and initialize them on-demand (using ++# gdbarch_data) just like everything else. The catch is that other ++# modules still take the address of these builtin types forcing them ++# to be variables, sigh! ++ ++# NOTE: cagney/2003-03-18: The sed pattern ``s|^\([^ /]...'' is ++# anchored on the first column and excludes the ``/'' character so ++# that it doesn't add the $(srcdir) prefix to any file that already ++# has an absolute path. It turns out that $(DEC)'s True64 make ++# automatically adds the $(srcdir) prefixes when it encounters files ++# in sub-directories such as cli/ and mi/. ++ ++# NOTE: cagney/2004-02-08: The ``case "$$fs" in'' eliminates ++# duplicates. Files in the gdb/ directory can end up appearing in ++# COMMON_OBS (as a .o file) and CONFIG_SRCS (as a .c file). ++ ++INIT_FILES = $(COMMON_OBS) $(TSOBS) $(CONFIG_SRCS) ++init.c: $(INIT_FILES) ++ @echo Making init.c ++ @rm -f init.c-tmp init.l-tmp ++ @touch init.c-tmp ++ @echo gdbtypes > init.l-tmp ++ @-LANG=C ; export LANG ; \ ++ LC_ALL=C ; export LC_ALL ; \ ++ echo $(INIT_FILES) | \ ++ tr ' ' '\012' | \ ++ sed \ ++ -e '/^gdbtypes.[co]$$/d' \ ++ -e '/^init.[co]$$/d' \ ++ -e '/xdr_ld.[co]$$/d' \ ++ -e '/xdr_ptrace.[co]$$/d' \ ++ -e '/xdr_rdb.[co]$$/d' \ ++ -e '/udr.[co]$$/d' \ ++ -e '/udip2soc.[co]$$/d' \ ++ -e '/udi2go32.[co]$$/d' \ ++ -e '/version.[co]$$/d' \ ++ -e '/^[a-z0-9A-Z_]*_[SU].[co]$$/d' \ ++ -e '/[a-z0-9A-Z_]*-exp.tab.[co]$$/d' \ ++ -e 's/\.[co]$$/.c/' \ ++ -e 's,signals\.c,common/signals\.c,' \ ++ -e 's|^\([^ /][^ ]*\)|$(srcdir)/\1|g' | \ ++ while read f; do \ ++ sed -n -e 's/^_initialize_\([a-z_0-9A-Z]*\).*/\1/p' $$f 2>/dev/null; \ ++ done | \ ++ while read f; do \ ++ case " $$fs " in \ ++ *" $$f "* ) ;; \ ++ * ) echo $$f ; fs="$$fs $$f";; \ ++ esac; \ ++ done >> init.l-tmp ++ @echo '/* Do not modify this file. */' >>init.c-tmp ++ @echo '/* It is created automatically by the Makefile. */'>>init.c-tmp ++ @echo '#include "defs.h" /* For initialize_file_ftype. */' >>init.c-tmp ++ @echo '#include "call-cmds.h" /* For initialize_all_files. */' >>init.c-tmp ++ @sed -e 's/\(.*\)/extern initialize_file_ftype _initialize_\1;/' >init.c-tmp ++ @echo 'void' >>init.c-tmp ++ @echo 'initialize_all_files (void)' >>init.c-tmp ++ @echo '{' >>init.c-tmp ++ @sed -e 's/\(.*\)/ _initialize_\1 ();/' >init.c-tmp ++ @echo '}' >>init.c-tmp ++ @rm init.l-tmp ++ @mv init.c-tmp init.c ++ ++.PRECIOUS: init.c ++ ++# Create a library of the gdb object files and build GDB by linking ++# against that. ++# ++# init.o is very important. It pulls in the rest of GDB. ++LIBGDB_OBS= $(COMMON_OBS) $(TSOBS) $(ADD_FILES) init.o ++libgdb.a: $(LIBGDB_OBS) ++ -rm -f libgdb.a ++ $(AR) q libgdb.a $(LIBGDB_OBS) ++ $(RANLIB) libgdb.a ++ ++# Removing the old gdb first works better if it is running, at least on SunOS. ++gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS) ++ rm -f gdb$(EXEEXT) ++ $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \ ++ -o gdb$(EXEEXT) gdb.o $(LIBGDB_OBS) \ ++ $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES) ++ ++# Convenience rule to handle recursion. ++$(LIBGNU) $(GNULIB_H): all-lib ++all-lib: $(GNULIB_BUILDDIR)/Makefile ++ @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do ++.PHONY: all-lib ++ ++# Convenience rule to handle recursion. ++.PHONY: all-data-directory ++all-data-directory: data-directory/Makefile ++ @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=data-directory subdir_do ++ ++# This is useful when debugging GDB, because some Unix's don't let you run GDB ++# on itself without copying the executable. So "make gdb1" will make ++# gdb and put a copy in gdb1, and you can run it with "gdb gdb1". ++# Removing gdb1 before the copy is the right thing if gdb1 is open ++# in another process. ++gdb1$(EXEEXT): gdb$(EXEEXT) ++ rm -f gdb1$(EXEEXT) ++ cp gdb$(EXEEXT) gdb1$(EXEEXT) ++ ++# Put the proper machine-specific files first, so M-. on a machine ++# specific routine gets the one for the correct machine. (FIXME: those ++# files go in twice; we should be removing them from the main list). ++ ++# TAGS depends on all the files that go into it so you can rebuild TAGS ++# with `make TAGS' and not have to say `rm TAGS' first. ++ ++GDB_NM_FILE = @GDB_NM_FILE@ ++TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR) ++ @echo Making TAGS ++ @etags $(srcdir)/$(GDB_NM_FILE) \ ++ `(for i in $(DEPFILES) $(TAGFILES_NO_SRCDIR); do \ ++ echo $(srcdir)/$$i ; \ ++ done ; for i in $(TAGFILES_WITH_SRCDIR); do \ ++ echo $$i ; \ ++ done) | sed -e 's/\.o$$/\.c/'` \ ++ `find $(srcdir)/config -name '*.h' -print` ++ ++tags: TAGS ++ ++clean mostlyclean: $(CONFIG_CLEAN) ++ @$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(CLEANDIRS)" subdir_do ++ rm -f *.o *.a $(ADD_FILES) *~ init.c-tmp init.l-tmp version.c-tmp ++ rm -f init.c version.c observer.h observer.inc ++ rm -f gdb$(EXEEXT) core make.log ++ rm -f gdb[0-9]$(EXEEXT) ++ rm -f test-cp-name-parser$(EXEEXT) ++ rm -f xml-builtin.c stamp-xml ++ rm -f $(DEPDIR)/* ++ ++# This used to depend on c-exp.c m2-exp.c TAGS ++# I believe this is wrong; the makefile standards for distclean just ++# describe removing files; the only sort of "re-create a distribution" ++# functionality described is if the distributed files are unmodified. ++# NB: While GDBSERVER might be configured on native systems, it isn't ++# always included in SUBDIRS. Remove the gdbserver files explicitly. ++distclean: clean ++ @$(MAKE) $(FLAGS_TO_PASS) DO=distclean "DODIRS=$(CLEANDIRS)" subdir_do ++ rm -rf $(GNULIB_BUILDDIR) ++ rm -f gdbserver/config.status gdbserver/config.log ++ rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h ++ rm -f gdbserver/Makefile gdbserver/config.cache ++ rm -f nm.h config.status config.h stamp-h gdb-gdb.gdb jit-reader.h ++ rm -f y.output yacc.acts yacc.tmp y.tab.h ++ rm -f config.log config.cache ++ rm -f Makefile ++ rm -rf $(DEPDIR) ++ ++maintainer-clean: local-maintainer-clean do-maintainer-clean distclean ++realclean: maintainer-clean ++ ++local-maintainer-clean: ++ @echo "This command is intended for maintainers to use;" ++ @echo "it deletes files that may require special tools to rebuild." ++ rm -f c-exp.c \ ++ cp-name-parser.c \ ++ ada-lex.c ada-exp.c \ ++ objc-exp.c \ ++ jv-exp.tab \ ++ f-exp.c go-exp.c m2-exp.c p-exp.c ++ rm -f TAGS $(INFOFILES) ++ rm -f $(YYFILES) ++ rm -f nm.h config.status ++ ++do-maintainer-clean: ++ @$(MAKE) $(FLAGS_TO_PASS) DO=maintainer-clean "DODIRS=$(CLEANDIRS)" \ ++ subdir_do ++ ++diststuff: $(DISTSTUFF) $(PACKAGE).pot $(CATALOGS) ++ cd doc; $(MAKE) $(MFLAGS) diststuff ++ ++subdir_do: force ++ @for i in $(DODIRS); do \ ++ case $$i in \ ++ $(REQUIRED_SUBDIRS)) \ ++ if [ ! -f ./$$i/Makefile ] ; then \ ++ echo "Missing $$i/Makefile" >&2 ; \ ++ exit 1 ; \ ++ fi ;; \ ++ esac ; \ ++ if [ -f ./$$i/Makefile ] ; then \ ++ if (cd ./$$i; \ ++ $(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \ ++ else exit 1 ; fi ; \ ++ else true ; fi ; \ ++ done ++ ++Makefile: Makefile.in config.status @frags@ ++ # Regenerate the Makefile and the tm.h / nm.h links. ++ CONFIG_FILES="Makefile" \ ++ CONFIG_COMMANDS= \ ++ CONFIG_HEADERS= \ ++ $(SHELL) config.status ++ ++$(GNULIB_BUILDDIR)/Makefile: gnulib/Makefile.in config.status @frags@ ++ @cd $(GNULIB_BUILDDIR); CONFIG_FILES="Makefile" \ ++ CONFIG_COMMANDS="depfiles" \ ++ CONFIG_HEADERS= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++data-directory/Makefile: data-directory/Makefile.in config.status @frags@ ++ CONFIG_FILES="data-directory/Makefile" \ ++ CONFIG_COMMANDS="depfiles" \ ++ CONFIG_HEADERS= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++jit-reader.h: $(srcdir)/jit-reader.in ++ $(SHELL) config.status $@ ++ ++config.h: stamp-h ; @true ++stamp-h: $(srcdir)/config.in config.status ++ CONFIG_HEADERS=config.h:config.in \ ++ CONFIG_COMMANDS="default depdir" \ ++ CONFIG_FILES= \ ++ CONFIG_LINKS= \ ++ $(SHELL) config.status ++ ++config.status: $(srcdir)/configure configure.tgt configure.host ++ $(SHELL) config.status --recheck ++ ++ACLOCAL = aclocal ++ACLOCAL_AMFLAGS = -I ../config ++aclocal_m4_deps = \ ++ configure.ac \ ++ acx_configure_dir.m4 \ ++ ../config/extensions.m4 \ ++ ../config/lead-dot.m4 \ ++ ../config/proginstall.m4 \ ++ ../bfd/bfd.m4 \ ++ ../config/acinclude.m4 \ ++ ../config/override.m4 \ ++ ../config/gettext-sister.m4 \ ++ ../config/lib-ld.m4 \ ++ ../config/lib-prefix.m4 \ ++ ../config/lib-link.m4 \ ++ ../config/acx.m4 \ ++ ../config/tcl.m4 \ ++ ../config/depstand.m4 \ ++ ../config/lcmessage.m4 \ ++ ../config/codeset.m4 ++ ++$(srcdir)/aclocal.m4: @MAINTAINER_MODE_TRUE@ $(aclocal_m4_deps) ++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) ++ ++AUTOCONF = autoconf ++configure_deps = $(srcdir)/configure.ac $(srcdir)/aclocal.m4 ++$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++ ++AUTOHEADER = autoheader ++$(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(configure_deps) ++ cd $(srcdir) && $(AUTOHEADER) ++ rm -f stamp-h ++ touch $@ ++ ++# automatic rebuilding in automake-generated Makefiles requires ++# this rule in the toplevel Makefile, which, with GNU make, causes ++# the desired updates through the implicit regeneration of the Makefile ++# and all of its prerequisites. ++am--refresh: ++ @: ++ ++force: ++ ++# Documentation! ++# GDB QUICK REFERENCE (TeX dvi file, CM fonts) ++doc/refcard.dvi: ++ cd doc; $(MAKE) refcard.dvi $(FLAGS_TO_PASS) ++ ++# GDB QUICK REFERENCE (PostScript output, common PS fonts) ++doc/refcard.ps: ++ cd doc; $(MAKE) refcard.ps $(FLAGS_TO_PASS) ++ ++# GDB MANUAL: TeX dvi file ++doc/gdb.dvi: ++ cd doc; $(MAKE) gdb.dvi $(FLAGS_TO_PASS) ++ ++# GDB MANUAL: info file ++doc/gdb.info: ++ cd doc; $(MAKE) gdb.info $(FLAGS_TO_PASS) ++ ++# Make copying.c from COPYING ++$(srcdir)/copying.c: @MAINTAINER_MODE_TRUE@ $(srcdir)/../COPYING3 $(srcdir)/copying.awk ++ awk -f $(srcdir)/copying.awk \ ++ < $(srcdir)/../COPYING3 > $(srcdir)/copying.tmp ++ mv $(srcdir)/copying.tmp $(srcdir)/copying.c ++ ++version.c: Makefile version.in ++ rm -f version.c-tmp version.c ++ echo '#include "version.h"' >> version.c-tmp ++ echo 'const char version[] = "'"`sed q ${srcdir}/version.in`"'";' >> version.c-tmp ++ echo 'const char host_name[] = "$(host_alias)";' >> version.c-tmp ++ echo 'const char target_name[] = "$(target_alias)";' >> version.c-tmp ++ mv version.c-tmp version.c ++ ++observer.h: observer.sh doc/observer.texi ++ ${srcdir}/observer.sh h ${srcdir}/doc/observer.texi observer.h ++ ++observer.inc: observer.sh doc/observer.texi ++ ${srcdir}/observer.sh inc ${srcdir}/doc/observer.texi observer.inc ++ ++lint: $(LINTFILES) ++ $(LINT) $(INCLUDE_CFLAGS) $(LINTFLAGS) $(LINTFILES) \ ++ `echo $(DEPFILES) $(CONFIG_OBS) | sed 's/\.o /\.c /g'` ++ ++gdb.cxref: $(SFILES) ++ cxref -I. $(SFILES) >gdb.cxref ++ ++force_update: ++ ++# GNU Make has an annoying habit of putting *all* the Makefile variables ++# into the environment, unless you include this target as a circumvention. ++# Rumor is that this will be fixed (and this target can be removed) ++# in GNU Make 4.0. ++.NOEXPORT: ++ ++# GNU Make 3.63 has a different problem: it keeps tacking command line ++# overrides onto the definition of $(MAKE). This variable setting ++# will remove them. ++MAKEOVERRIDES= ++ ++ALLDEPFILES = \ ++ aix-thread.c \ ++ alpha-nat.c alphabsd-nat.c alpha-linux-nat.c \ ++ alpha-tdep.c alpha-mdebug-tdep.c \ ++ alpha-linux-tdep.c alpha-osf1-tdep.c \ ++ alphabsd-tdep.c alphafbsd-tdep.c alphanbsd-tdep.c alphaobsd-tdep.c \ ++ amd64-nat.c amd64-tdep.c \ ++ amd64bsd-nat.c amd64fbsd-nat.c amd64fbsd-tdep.c \ ++ amd64nbsd-nat.c amd64nbsd-tdep.c \ ++ amd64obsd-nat.c amd64obsd-tdep.c \ ++ amd64-darwin-tdep.c \ ++ amd64-dicos-tdep.c \ ++ amd64-linux-nat.c amd64-linux-tdep.c \ ++ amd64-sol2-tdep.c \ ++ arm-linux-nat.c arm-linux-tdep.c arm-symbian-tdep.c arm-tdep.c \ ++ armnbsd-nat.c armbsd-tdep.c armnbsd-tdep.c armobsd-tdep.c \ ++ avr-tdep.c \ ++ bfin-linux-tdep.c bfin-tdep.c \ ++ bsd-uthread.c bsd-kvm.c \ ++ core-regset.c \ ++ dcache.c dicos-tdep.c darwin-nat.c \ ++ exec.c \ ++ fbsd-nat.c \ ++ fork-child.c \ ++ glibc-tdep.c \ ++ go32-nat.c h8300-tdep.c \ ++ hppa-tdep.c hppa-hpux-tdep.c hppa-hpux-nat.c \ ++ hppa-linux-tdep.c hppa-linux-nat.c \ ++ hppabsd-nat.c hppabsd-tdep.c \ ++ hppaobsd-tdep.c \ ++ hppanbsd-nat.c hppanbsd-tdep.c \ ++ i386-tdep.c i386-linux-nat.c \ ++ i386v4-nat.c i386-cygwin-tdep.c \ ++ i386bsd-nat.c i386bsd-tdep.c i386fbsd-nat.c i386fbsd-tdep.c \ ++ i386nbsd-nat.c i386nbsd-tdep.c i386obsd-nat.c i386obsd-tdep.c \ ++ i387-tdep.c \ ++ i386-darwin-tdep.c i386-darwin-nat.c \ ++ i386-dicos-tdep.c \ ++ i386-linux-tdep.c i386-nat.c \ ++ i386-sol2-nat.c i386-sol2-tdep.c \ ++ i386gnu-nat.c i386gnu-tdep.c \ ++ ia64-hpux-nat.c ia64-hpux-tdep.c \ ++ ia64-linux-nat.c ia64-linux-tdep.c ia64-tdep.c ia64-vms-tdep.c \ ++ inf-ptrace.c inf-ttrace.c \ ++ irix5-nat.c \ ++ ia64-libunwind-tdep.c \ ++ linux-fork.c \ ++ linux-tdep.c \ ++ linux-record.c \ ++ lm32-tdep.c \ ++ m68hc11-tdep.c \ ++ m32r-tdep.c \ ++ m32r-linux-nat.c m32r-linux-tdep.c \ ++ m68k-tdep.c \ ++ m68kbsd-nat.c m68kbsd-tdep.c \ ++ m68klinux-nat.c m68klinux-tdep.c \ ++ m88k-tdep.c m88kbsd-nat.c \ ++ microblaze-tdep.c microblaze-linux-tdep.c \ ++ mingw-hdep.c \ ++ mips-linux-nat.c mips-linux-tdep.c \ ++ mips-irix-tdep.c \ ++ mips-tdep.c \ ++ mipsnbsd-nat.c mipsnbsd-tdep.c \ ++ mips64obsd-nat.c mips64obsd-tdep.c \ ++ nbsd-nat.c nbsd-tdep.c obsd-tdep.c \ ++ solib-osf.c \ ++ somread.c solib-som.c \ ++ posix-hdep.c \ ++ ppc-sysv-tdep.c ppc-linux-nat.c ppc-linux-tdep.c \ ++ ppcnbsd-nat.c ppcnbsd-tdep.c \ ++ ppcobsd-nat.c ppcobsd-tdep.c \ ++ procfs.c \ ++ remote-m32r-sdi.c remote-mips.c \ ++ remote-sim.c \ ++ dcache.c \ ++ rl78-tdep.c \ ++ rs6000-nat.c rs6000-tdep.c \ ++ rx-tdep.c \ ++ s390-tdep.c s390-nat.c \ ++ score-tdep.c \ ++ ser-go32.c ser-pipe.c ser-tcp.c ser-mingw.c \ ++ sh-tdep.c sh64-tdep.c shnbsd-tdep.c shnbsd-nat.c \ ++ sol2-tdep.c \ ++ solib-irix.c solib-svr4.c solib-sunos.c \ ++ sparc-linux-nat.c sparc-linux-tdep.c \ ++ sparc-sol2-nat.c sparc-sol2-tdep.c sparc64-sol2-tdep.c \ ++ sparc-nat.c sparc-tdep.c sparc64-linux-nat.c sparc64-linux-tdep.c \ ++ sparc64-nat.c sparc64-tdep.c sparc64fbsd-nat.c sparc64fbsd-tdep.c \ ++ sparc64nbsd-nat.c sparc64nbsd-tdep.c sparc64obsd-tdep.c \ ++ sparcnbsd-nat.c sparcnbsd-tdep.c sparcobsd-tdep.c \ ++ spu-linux-nat.c spu-tdep.c spu-multiarch.c solib-spu.c \ ++ tilegx-linux-nat.c tilegx-tdep.c tilegx-linux-tdep.c \ ++ v850-tdep.c \ ++ vax-nat.c vax-tdep.c vaxbsd-nat.c vaxnbsd-tdep.c \ ++ windows-nat.c windows-tdep.c \ ++ xcoffread.c xcoffsolib.c \ ++ xstormy16-tdep.c \ ++ xtensa-tdep.c xtensa-config.c \ ++ xtensa-linux-tdep.c xtensa-linux-nat.c xtensa-xtregs.c ++ ++# Some files need explicit build rules (due to -Werror problems) or due ++# to sub-directory fun 'n' games. ++ ++# FIXME: cagney/2003-08-10: "monitor.c" gets -Wformat-nonliteral ++# errors. It turns out that that is the least of monitor.c's ++# problems. The function print_vsprintf appears to be using ++# va_arg(long) to extract CORE_ADDR parameters - something that ++# definitly will not work. "monitor.c" needs to be rewritten so that ++# it doesn't use format strings and instead uses callbacks. ++monitor.o: $(srcdir)/monitor.c ++ $(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \ ++ $(COMPILE.post) $(srcdir)/monitor.c ++ $(POSTCOMPILE) ++ ++# Do not try to build "printcmd.c" with -Wformat-nonliteral. It manually ++# checks format strings. ++printcmd.o: $(srcdir)/printcmd.c ++ $(COMPILE.pre) $(INTERNAL_CFLAGS) $(GDB_WARN_CFLAGS_NO_FORMAT) \ ++ $(COMPILE.post) $(srcdir)/printcmd.c ++ $(POSTCOMPILE) ++ ++# Message files. Based on code in gcc/Makefile.in. ++ ++# Rules for generating translated message descriptions. Disabled by ++# autoconf if the tools are not available. ++ ++.SUFFIXES: .po .gmo .pox .pot ++.PHONY: all-po install-po uninstall-po clean-po update-po $(PACKAGE).pot ++ ++all-po: $(CATALOGS) ++ ++# This notation should be acceptable to all Make implementations used ++# by people who are interested in updating .po files. ++update-po: $(CATALOGS:.gmo=.pox) ++ ++# N.B. We do not attempt to copy these into $(srcdir). The snapshot ++# script does that. ++.po.gmo: ++ -test -d po || mkdir po ++ $(GMSGFMT) --statistics -o $@ $< ++ ++# The new .po has to be gone over by hand, so we deposit it into ++# build/po with a different extension. If build/po/$(PACKAGE).pot ++# exists, use it (it was just created), else use the one in srcdir. ++.po.pox: ++ -test -d po || mkdir po ++ $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ ++ then echo po/$(PACKAGE).pot; \ ++ else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ ++ ++# This rule has to look for .gmo modules in both srcdir and the cwd, ++# and has to check that we actually have a catalog for each language, ++# in case they weren't built or included with the distribution. ++install-po: ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(datadir) ++ cats="$(CATALOGS)"; for cat in $$cats; do \ ++ lang=`basename $$cat | sed 's/\.gmo$$//'`; \ ++ if [ -f $$cat ]; then :; \ ++ elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ ++ else continue; \ ++ fi; \ ++ dir=$(localedir)/$$lang/LC_MESSAGES; \ ++ echo $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$$dir || exit 1; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ done ++uninstall-po: ++ cats="$(CATALOGS)"; for cat in $$cats; do \ ++ lang=`basename $$cat | sed 's/\.gmo$$//'`; \ ++ if [ -f $$cat ]; then :; \ ++ elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ ++ else continue; \ ++ fi; \ ++ dir=$(localedir)/$$lang/LC_MESSAGES; \ ++ rm -f $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ done ++# Delete po/*.gmo only if we are not building in the source directory. ++clean-po: ++ -if [ ! -f Makefile.in ]; then rm -f po/*.gmo; fi ++ ++# Rule for regenerating the message template (gdb.pot). Instead of ++# forcing everyone to edit POTFILES.in, which proved impractical, this ++# rule has no dependencies and always regenerates gdb.pot. This is ++# relatively harmless since the .po files do not directly depend on ++# it. The .pot file is left in the build directory. Since GDB's ++# Makefile lacks a cannonical list of sources (missing xm, tm and nm ++# files) force this rule. ++$(PACKAGE).pot: po/$(PACKAGE).pot ++po/$(PACKAGE).pot: force ++ -test -d po || mkdir po ++ sh -e $(srcdir)/po/gdbtext $(XGETTEXT) $(PACKAGE) . $(srcdir) ++ ++ ++# ++# YACC/LEX dependencies ++# ++# LANG-exp.c is generated in objdir from LANG-exp.y if it doesn't ++# exist in srcdir, then compiled in objdir to LANG-exp.o. If we ++# said LANG-exp.c rather than ./c-exp.c some makes would ++# sometimes re-write it into $(srcdir)/c-exp.c. Remove bogus ++# decls for malloc/realloc/free which conflict with everything else. ++# Strictly speaking c-exp.c should therefore depend on ++# Makefile.in, but that was a pretty big annoyance. ++ ++.SUFFIXES: .y .l ++.y.c: ++ rm -f $@ $@.tmp ++ $(SHELL) $(YLWRAP) $< y.tab.c $@ -- $(YACC) $(YFLAGS) && mv $@ $@.tmp \ ++ || (rm -f $@; false) ++ sed -e '/extern.*malloc/d' \ ++ -e '/extern.*realloc/d' \ ++ -e '/extern.*free/d' \ ++ -e '/include.*malloc.h/d' \ ++ -e 's/\([^x]\)malloc/\1xmalloc/g' \ ++ -e 's/\([^x]\)realloc/\1xrealloc/g' \ ++ -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \ ++ -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ ++ -e '/^#line.*y.tab.c/d' \ ++ -e "s/^\(#line.*\)`basename $<`/\1`echo $<|sed 's/\//\\\\\//g'`/" \ ++ < $@.tmp > $@ ++ rm -f $@.tmp ++.l.c: ++ if [ "$(FLEX)" ] && $(FLEX) --version >/dev/null 2>&1; then \ ++ $(FLEX) -o$@ $< && \ ++ rm -f $@.new && \ ++ sed -e '/extern.*malloc/d' \ ++ -e '/extern.*realloc/d' \ ++ -e '/extern.*free/d' \ ++ -e '/include.*malloc.h/d' \ ++ -e 's/\([^x]\)malloc/\1xmalloc/g' \ ++ -e 's/\([^x]\)realloc/\1xrealloc/g' \ ++ -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \ ++ -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ ++ -e 's/yy_flex_xrealloc/yyxrealloc/g' \ ++ < $@ > $@.new && \ ++ rm -f $@ && \ ++ mv $@.new $@; \ ++ elif [ -f $@ ]; then \ ++ echo "Warning: $*.c older than $*.l and flex not available."; \ ++ else \ ++ echo "$@ missing and flex not available."; \ ++ false; \ ++ fi ++ ++.PRECIOUS: ada-lex.c ++ ++# XML rules ++ ++xml-builtin.c: stamp-xml; @true ++stamp-xml: $(srcdir)/features/feature_to_c.sh Makefile $(XMLFILES) ++ rm -f xml-builtin.tmp ++ AWK="$(AWK)" \ ++ $(SHELL) $(srcdir)/features/feature_to_c.sh \ ++ xml-builtin.tmp $(XMLFILES) ++ $(SHELL) $(srcdir)/../move-if-change xml-builtin.tmp xml-builtin.c ++ echo stamp > stamp-xml ++ ++.PRECIOUS: xml-builtin.c ++ ++# ++# gdb/cli/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++cli-cmds.o: $(srcdir)/cli/cli-cmds.c ++ $(COMPILE) $(srcdir)/cli/cli-cmds.c ++ $(POSTCOMPILE) ++ ++cli-decode.o: $(srcdir)/cli/cli-decode.c ++ $(COMPILE) $(srcdir)/cli/cli-decode.c ++ $(POSTCOMPILE) ++ ++cli-dump.o: $(srcdir)/cli/cli-dump.c ++ $(COMPILE) $(srcdir)/cli/cli-dump.c ++ $(POSTCOMPILE) ++ ++cli-interp.o: $(srcdir)/cli/cli-interp.c ++ $(COMPILE) $(srcdir)/cli/cli-interp.c ++ $(POSTCOMPILE) ++ ++cli-logging.o: $(srcdir)/cli/cli-logging.c ++ $(COMPILE) $(srcdir)/cli/cli-logging.c ++ $(POSTCOMPILE) ++ ++cli-script.o: $(srcdir)/cli/cli-script.c ++ $(COMPILE) $(srcdir)/cli/cli-script.c ++ $(POSTCOMPILE) ++ ++cli-setshow.o: $(srcdir)/cli/cli-setshow.c ++ $(COMPILE) $(srcdir)/cli/cli-setshow.c ++ $(POSTCOMPILE) ++ ++cli-utils.o: $(srcdir)/cli/cli-utils.c ++ $(COMPILE) $(srcdir)/cli/cli-utils.c ++ $(POSTCOMPILE) ++ ++ ++# ++# GDBTK sub-directory ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the mi directory. ++ ++all-gdbtk: insight$(EXEEXT) ++ ++install-gdbtk: ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo insight | sed -e $$t` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=insight ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs $(DESTDIR)$(bindir); \ ++ $(INSTALL_PROGRAM) insight$(EXEEXT) \ ++ $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY) ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(libdir)/insight$(GDBTK_VERSION) ; \ ++ $(INSTALL_DATA) $(srcdir)/gdbtk/plugins/plugins.tcl \ ++ $(DESTDIR)$(libdir)/insight$(GDBTK_VERSION)/plugins.tcl ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/images \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/images2 ; \ ++ $(SHELL) $(srcdir)/../mkinstalldirs \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help/images \ ++ $(DESTDIR)$(GDBTK_LIBRARY)/help/trace ; \ ++ cd $(srcdir)/gdbtk/library ; \ ++ for i in *.tcl *.itcl *.ith *.itb images/*.gif images2/*.gif images/icons.txt images2/icons.txt tclIndex help/*.html help/trace/*.html help/trace/index.toc help/images/*.gif help/images/*.png; \ ++ do \ ++ $(INSTALL_DATA) $$i $(DESTDIR)$(GDBTK_LIBRARY)/$$i ; \ ++ done ; ++ ++uninstall-gdbtk: ++ transformed_name=`t='$(program_transform_name)'; \ ++ echo insight | sed -e $$t` ; \ ++ if test "x$$transformed_name" = x; then \ ++ transformed_name=insight ; \ ++ else \ ++ true ; \ ++ fi ; \ ++ rm -f $(DESTDIR)$(bindir)/$$transformed_name$(EXEEXT) ; \ ++ rm -rf $(DESTDIR)$(GDBTK_LIBRARY) ++ ++clean-gdbtk: ++ rm -f insight$(EXEEXT) ++ ++# Removing the old gdb first works better if it is running, at least on SunOS. ++insight$(EXEEXT): gdbtk-main.o libgdb.a $(ADD_DEPS) \ ++ $(CDEPS) $(TDEPLIBS) ++ rm -f insight$(EXEEXT) ++ $(CC_LD) $(INTERNAL_LDFLAGS) $(WIN32LDAPP) \ ++ -o insight$(EXEEXT) gdbtk-main.o libgdb.a \ ++ $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES) ++ ++gdbres.o: $(srcdir)/gdbtk/gdb.rc $(srcdir)/gdbtk/gdbtool.ico ++ $(WINDRES) --include $(srcdir)/gdbtk $(srcdir)/gdbtk/gdb.rc gdbres.o ++ ++all_gdbtk_cflags = $(IDE_CFLAGS) $(ITCL_CFLAGS) \ ++ $(ITK_CFLAGS) $(TCL_CFLAGS) $(TK_CFLAGS) $(X11_CFLAGS) \ ++ $(GDBTK_CFLAGS) \ ++ -DGDBTK_LIBRARY=\"$(GDBTK_LIBRARY)\" \ ++ -DSRC_DIR=\"$(GDBTK_SRC_DIR)\" ++ ++gdbtk.o: $(srcdir)/gdbtk/generic/gdbtk.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk.c ++ $(POSTCOMPILE) ++ ++gdbtk-bp.o: $(srcdir)/gdbtk/generic/gdbtk-bp.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-bp.c ++ $(POSTCOMPILE) ++ ++gdbtk-cmds.o: $(srcdir)/gdbtk/generic/gdbtk-cmds.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-cmds.c ++ $(POSTCOMPILE) ++ ++gdbtk-hooks.o: $(srcdir)/gdbtk/generic/gdbtk-hooks.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-hooks.c ++ $(POSTCOMPILE) ++ ++gdbtk-interp.o: $(srcdir)/gdbtk/generic/gdbtk-interp.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-interp.c ++ $(POSTCOMPILE) ++ ++gdbtk-main.o: $(srcdir)/gdbtk/generic/gdbtk-main.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-main.c ++ $(POSTCOMPILE) ++ ++gdbtk-register.o: $(srcdir)/gdbtk/generic/gdbtk-register.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-register.c ++ $(POSTCOMPILE) ++ ++gdbtk-stack.o: $(srcdir)/gdbtk/generic/gdbtk-stack.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-stack.c ++ $(POSTCOMPILE) ++ ++gdbtk-varobj.o: $(srcdir)/gdbtk/generic/gdbtk-varobj.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-varobj.c ++ $(POSTCOMPILE) ++ ++gdbtk-wrapper.o: $(srcdir)/gdbtk/generic/gdbtk-wrapper.c ++ $(COMPILE) $(all_gdbtk_cflags) $(srcdir)/gdbtk/generic/gdbtk-wrapper.c ++ $(POSTCOMPILE) ++ ++ ++# ++# gdb/mi/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++mi-cmd-break.o: $(srcdir)/mi/mi-cmd-break.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-break.c ++ $(POSTCOMPILE) ++ ++mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-disas.c ++ $(POSTCOMPILE) ++ ++mi-cmd-env.o: $(srcdir)/mi/mi-cmd-env.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-env.c ++ $(POSTCOMPILE) ++ ++mi-cmd-file.o: $(srcdir)/mi/mi-cmd-file.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-file.c ++ $(POSTCOMPILE) ++ ++mi-cmd-info.o: $(srcdir)/mi/mi-cmd-info.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-info.c ++ $(POSTCOMPILE) ++ ++mi-cmds.o: $(srcdir)/mi/mi-cmds.c ++ $(COMPILE) $(srcdir)/mi/mi-cmds.c ++ $(POSTCOMPILE) ++ ++mi-cmd-stack.o: $(srcdir)/mi/mi-cmd-stack.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-stack.c ++ $(POSTCOMPILE) ++ ++mi-cmd-target.o: $(srcdir)/mi/mi-cmd-target.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-target.c ++ $(POSTCOMPILE) ++ ++mi-cmd-var.o: $(srcdir)/mi/mi-cmd-var.c ++ $(COMPILE) $(srcdir)/mi/mi-cmd-var.c ++ $(POSTCOMPILE) ++ ++mi-console.o: $(srcdir)/mi/mi-console.c ++ $(COMPILE) $(srcdir)/mi/mi-console.c ++ $(POSTCOMPILE) ++ ++mi-getopt.o: $(srcdir)/mi/mi-getopt.c ++ $(COMPILE) $(srcdir)/mi/mi-getopt.c ++ $(POSTCOMPILE) ++ ++mi-interp.o: $(srcdir)/mi/mi-interp.c ++ $(COMPILE) $(srcdir)/mi/mi-interp.c ++ $(POSTCOMPILE) ++ ++mi-main.o: $(srcdir)/mi/mi-main.c ++ $(COMPILE) $(srcdir)/mi/mi-main.c ++ $(POSTCOMPILE) ++ ++mi-out.o: $(srcdir)/mi/mi-out.c ++ $(COMPILE) $(srcdir)/mi/mi-out.c ++ $(POSTCOMPILE) ++ ++mi-parse.o: $(srcdir)/mi/mi-parse.c ++ $(COMPILE) $(srcdir)/mi/mi-parse.c ++ $(POSTCOMPILE) ++ ++mi-symbol-cmds.o: $(srcdir)/mi/mi-symbol-cmds.c ++ $(COMPILE) $(srcdir)/mi/mi-symbol-cmds.c ++ $(POSTCOMPILE) ++ ++mi-common.o: $(srcdir)/mi/mi-common.c ++ $(COMPILE) $(srcdir)/mi/mi-common.c ++ $(POSTCOMPILE) ++ ++# gdb/common/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++signals.o: $(srcdir)/common/signals.c ++ $(COMPILE) $(srcdir)/common/signals.c ++ $(POSTCOMPILE) ++ ++common-utils.o: ${srcdir}/common/common-utils.c ++ $(COMPILE) $(srcdir)/common/common-utils.c ++ $(POSTCOMPILE) ++ ++xml-utils.o: ${srcdir}/common/xml-utils.c ++ $(COMPILE) $(srcdir)/common/xml-utils.c ++ $(POSTCOMPILE) ++ ++ptid.o: ${srcdir}/common/ptid.c ++ $(COMPILE) $(srcdir)/common/ptid.c ++ $(POSTCOMPILE) ++ ++buffer.o: ${srcdir}/common/buffer.c ++ $(COMPILE) $(srcdir)/common/buffer.c ++ $(POSTCOMPILE) ++ ++format.o: ${srcdir}/common/format.c ++ $(COMPILE) $(srcdir)/common/format.c ++ $(POSTCOMPILE) ++ ++linux-osdata.o: ${srcdir}/common/linux-osdata.c ++ $(COMPILE) $(srcdir)/common/linux-osdata.c ++ $(POSTCOMPILE) ++ ++linux-procfs.o: $(srcdir)/common/linux-procfs.c ++ $(COMPILE) $(srcdir)/common/linux-procfs.c ++ $(POSTCOMPILE) ++ ++linux-ptrace.o: $(srcdir)/common/linux-ptrace.c ++ $(COMPILE) $(srcdir)/common/linux-ptrace.c ++ $(POSTCOMPILE) ++ ++common-agent.o: $(srcdir)/common/agent.c ++ $(COMPILE) $(srcdir)/common/agent.c ++ $(POSTCOMPILE) ++ ++vec.o: ${srcdir}/common/vec.c ++ $(COMPILE) $(srcdir)/common/vec.c ++ $(POSTCOMPILE) ++ ++# ++# gdb/tui/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++tui.o: $(srcdir)/tui/tui.c ++ $(COMPILE) $(srcdir)/tui/tui.c ++ $(POSTCOMPILE) ++ ++tui-command.o: $(srcdir)/tui/tui-command.c ++ $(COMPILE) $(srcdir)/tui/tui-command.c ++ $(POSTCOMPILE) ++ ++tui-data.o: $(srcdir)/tui/tui-data.c ++ $(COMPILE) $(srcdir)/tui/tui-data.c ++ $(POSTCOMPILE) ++ ++tui-disasm.o: $(srcdir)/tui/tui-disasm.c ++ $(COMPILE) $(srcdir)/tui/tui-disasm.c ++ $(POSTCOMPILE) ++ ++tui-file.o: $(srcdir)/tui/tui-file.c ++ $(COMPILE) $(srcdir)/tui/tui-file.c ++ $(POSTCOMPILE) ++ ++tui-hooks.o: $(srcdir)/tui/tui-hooks.c ++ $(COMPILE) $(srcdir)/tui/tui-hooks.c ++ $(POSTCOMPILE) ++ ++tui-interp.o: $(srcdir)/tui/tui-interp.c ++ $(COMPILE) $(srcdir)/tui/tui-interp.c ++ $(POSTCOMPILE) ++ ++tui-io.o: $(srcdir)/tui/tui-io.c ++ $(COMPILE) $(srcdir)/tui/tui-io.c ++ $(POSTCOMPILE) ++ ++tui-layout.o: $(srcdir)/tui/tui-layout.c ++ $(COMPILE) $(srcdir)/tui/tui-layout.c ++ $(POSTCOMPILE) ++ ++tui-out.o: $(srcdir)/tui/tui-out.c ++ $(COMPILE) $(srcdir)/tui/tui-out.c ++ $(POSTCOMPILE) ++ ++tui-regs.o: $(srcdir)/tui/tui-regs.c ++ $(COMPILE) $(srcdir)/tui/tui-regs.c ++ $(POSTCOMPILE) ++ ++tui-source.o: $(srcdir)/tui/tui-source.c ++ $(COMPILE) $(srcdir)/tui/tui-source.c ++ $(POSTCOMPILE) ++ ++tui-stack.o: $(srcdir)/tui/tui-stack.c ++ $(COMPILE) $(srcdir)/tui/tui-stack.c ++ $(POSTCOMPILE) ++ ++tui-win.o: $(srcdir)/tui/tui-win.c ++ $(COMPILE) $(srcdir)/tui/tui-win.c ++ $(POSTCOMPILE) ++ ++tui-windata.o: $(srcdir)/tui/tui-windata.c ++ $(COMPILE) $(srcdir)/tui/tui-windata.c ++ $(POSTCOMPILE) ++ ++tui-wingeneral.o: $(srcdir)/tui/tui-wingeneral.c ++ $(COMPILE) $(srcdir)/tui/tui-wingeneral.c ++ $(POSTCOMPILE) ++ ++tui-winsource.o: $(srcdir)/tui/tui-winsource.c ++ $(COMPILE) $(srcdir)/tui/tui-winsource.c ++ $(POSTCOMPILE) ++ ++# ++# gdb/python/ dependencies ++# ++# Need to explicitly specify the compile rule as make will do nothing ++# or try to compile the object file into the sub-directory. ++ ++# Flags needed to compile Python code ++PYTHON_CFLAGS=@PYTHON_CFLAGS@ ++ ++python.o: $(srcdir)/python/python.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/python.c ++ $(POSTCOMPILE) ++ ++py-auto-load.o: $(srcdir)/python/py-auto-load.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-auto-load.c ++ $(POSTCOMPILE) ++ ++py-block.o: $(srcdir)/python/py-block.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-block.c ++ $(POSTCOMPILE) ++ ++py-bpevent.o: $(srcdir)/python/py-bpevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-bpevent.c ++ $(POSTCOMPILE) ++ ++py-breakpoint.o: $(srcdir)/python/py-breakpoint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-breakpoint.c ++ $(POSTCOMPILE) ++ ++py-cmd.o: $(srcdir)/python/py-cmd.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-cmd.c ++ $(POSTCOMPILE) ++ ++py-continueevent.o: $(srcdir)/python/py-continueevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-continueevent.c ++ $(POSTCOMPILE) ++ ++py-event.o: $(srcdir)/python/py-event.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-event.c ++ $(POSTCOMPILE) ++ ++py-evtregistry.o: $(srcdir)/python/py-evtregistry.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-evtregistry.c ++ $(POSTCOMPILE) ++ ++py-evts.o: $(srcdir)/python/py-evts.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-evts.c ++ $(POSTCOMPILE) ++ ++py-exitedevent.o: $(srcdir)/python/py-exitedevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-exitedevent.c ++ $(POSTCOMPILE) ++ ++py-finishbreakpoint.o: $(srcdir)/python/py-finishbreakpoint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-finishbreakpoint.c ++ $(POSTCOMPILE) ++ ++py-frame.o: $(srcdir)/python/py-frame.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-frame.c ++ $(POSTCOMPILE) ++ ++py-function.o: $(srcdir)/python/py-function.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-function.c ++ $(POSTCOMPILE) ++ ++py-inferior.o: $(srcdir)/python/py-inferior.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-inferior.c ++ $(POSTCOMPILE) ++ ++py-infthread.o: $(srcdir)/python/py-infthread.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-infthread.c ++ $(POSTCOMPILE) ++ ++py-lazy-string.o: $(srcdir)/python/py-lazy-string.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-lazy-string.c ++ $(POSTCOMPILE) ++ ++py-newobjfileevent.o: $(srcdir)/python/py-newobjfileevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-newobjfileevent.c ++ $(POSTCOMPILE) ++ ++py-objfile.o: $(srcdir)/python/py-objfile.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-objfile.c ++ $(POSTCOMPILE) ++ ++py-param.o: $(srcdir)/python/py-param.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-param.c ++ $(POSTCOMPILE) ++ ++py-prettyprint.o: $(srcdir)/python/py-prettyprint.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-prettyprint.c ++ $(POSTCOMPILE) ++ ++py-progspace.o: $(srcdir)/python/py-progspace.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-progspace.c ++ $(POSTCOMPILE) ++ ++py-signalevent.o: $(srcdir)/python/py-signalevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-signalevent.c ++ $(POSTCOMPILE) ++ ++py-stopevent.o: $(srcdir)/python/py-stopevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-stopevent.c ++ $(POSTCOMPILE) ++ ++py-symbol.o: $(srcdir)/python/py-symbol.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-symbol.c ++ $(POSTCOMPILE) ++ ++py-symtab.o: $(srcdir)/python/py-symtab.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-symtab.c ++ $(POSTCOMPILE) ++ ++py-threadevent.o: $(srcdir)/python/py-threadevent.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-threadevent.c ++ $(POSTCOMPILE) ++ ++py-type.o: $(srcdir)/python/py-type.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-type.c ++ $(POSTCOMPILE) ++ ++py-utils.o: $(srcdir)/python/py-utils.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-utils.c ++ $(POSTCOMPILE) ++ ++py-value.o: $(srcdir)/python/py-value.c ++ $(COMPILE) $(PYTHON_CFLAGS) $(srcdir)/python/py-value.c ++ $(POSTCOMPILE) ++ ++# ++# Dependency tracking. Most of this is conditional on GNU Make being ++# found by configure; if GNU Make is not found, we fall back to a ++# simpler scheme. ++# ++ ++@GMAKE_TRUE@ifeq ($(DEPMODE),depmode=gcc3) ++# Note that we put the dependencies into a .Tpo file, then move them ++# into place if the compile succeeds. We need this because gcc does ++# not atomically write the dependency output file. ++@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ ++@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo ++@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ ++@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po ++@GMAKE_TRUE@else ++@GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ ++@GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) ++# depcomp handles atomicity for us, so we don't need a postcompile ++# step. ++@GMAKE_TRUE@override POSTCOMPILE = ++@GMAKE_TRUE@endif ++ ++# A list of all the objects we might care about in this build, for ++# dependency tracking. ++all_object_files = gdb.o $(LIBGDB_OBS) gdbtk-main.o \ ++ test-cp-name-parser.o ++ ++# Ensure that generated files are created early. Use order-only ++# dependencies if available. They require GNU make 3.80 or newer, ++# and the .VARIABLES variable was introduced at the same time. ++@GMAKE_TRUE@ifdef .VARIABLES ++@GMAKE_TRUE@$(all_object_files): | $(generated_files) ++@GMAKE_TRUE@else ++$(all_object_files) : $(generated_files) ++@GMAKE_TRUE@endif ++ ++# Dependencies. ++@GMAKE_TRUE@-include $(patsubst %.o, $(DEPDIR)/%.Po, $(all_object_files)) ++ ++### end of the gdb Makefile.in. +diff -Nbaur gdb-7.5.1/sim/common/Make-common.in gdb-7.5.1-arm/sim/common/Make-common.in +--- gdb-7.5.1/sim/common/Make-common.in 2012-03-19 04:54:47.000000000 +0000 ++++ gdb-7.5.1-arm/sim/common/Make-common.in 2012-12-16 02:41:22.000000000 +0000 +@@ -417,10 +417,8 @@ + # Note that we put the dependencies into a .Tpo file, then move them + # into place if the compile succeeds. We need this because gcc does + # not atomically write the dependency output file. +-@GMAKE_TRUE@override COMPILE.post = -c -o $@ -MT $@ -MMD -MP \ +-@GMAKE_TRUE@ -MF $(DEPDIR)/$(basename $(@F)).Tpo +-@GMAKE_TRUE@override POSTCOMPILE = @mv $(DEPDIR)/$(basename $(@F)).Tpo \ +-@GMAKE_TRUE@ $(DEPDIR)/$(basename $(@F)).Po ++@GMAKE_TRUE@override COMPILE.post = -c -o $@ ++@GMAKE_TRUE@override POSTCOMPILE = + @GMAKE_TRUE@else + @GMAKE_TRUE@override COMPILE.pre = source='$<' object='$@' libtool=no \ + @GMAKE_TRUE@ DEPDIR=$(DEPDIR) $(DEPMODE) $(depcomp) $(CC) diff --git a/dkarm-eabi/scripts/build-gcc.sh b/dkarm-eabi/scripts/build-gcc.sh index e8f7812..a33fc6d 100644 --- a/dkarm-eabi/scripts/build-gcc.sh +++ b/dkarm-eabi/scripts/build-gcc.sh @@ -54,7 +54,7 @@ then --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ --prefix=$prefix \ --enable-lto $plugin_ld\ - --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 41" \ + --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 42" \ $CROSS_PARAMS \ || { echo "Error configuring gcc"; exit 1; } touch configured-gcc diff --git a/select_toolchain.sh b/select_toolchain.sh index 9a29cab..02600bf 100644 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -30,10 +30,10 @@ done case "$VERSION" in "1" ) - GCC_VER=4.7.1 - BINUTILS_VER=2.22 + GCC_VER=4.7.2 + BINUTILS_VER=2.23.1 NEWLIB_VER=1.20.0 - GDB_VER=7.4.1 + GDB_VER=7.5.1 basedir='dkarm-eabi' package=devkitARM target=arm-none-eabi