summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtbegin.obin2304 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtbeginS.obin2436 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtbeginT.obin2304 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtend.obin1158 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtendS.obin1158 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/crtfastmath.obin3140 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.c980
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.h968
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-iov.h4
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/gcov-src/libgcov.c1989
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/README14
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/limits.h172
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/linux/a.out.h229
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/stdio.h462
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/sys/types.h140
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include-fixed/syslimits.h8
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/float.h277
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/iso646.h45
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/loongson.h690
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stdarg.h130
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stdbool.h50
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stddef.h418
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stdfix.h204
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stdint-gcc.h259
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/stdint.h8
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/unwind.h276
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/include/varargs.h7
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/libgcc.abin1064386 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/libgcov.abin304464 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbegin.obin2304 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginS.obin2436 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginT.obin2304 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtend.obin1158 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtendS.obin1158 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/crtfastmath.obin3140 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcc.abin1065842 -> 0 bytes
-rw-r--r--lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcov.abin304812 -> 0 bytes
-rw-r--r--lib/libiberty.abin317070 -> 0 bytes
-rw-r--r--lib/libmipsel-unknown-linux-android-sim.abin899442 -> 0 bytes
39 files changed, 0 insertions, 7330 deletions
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtbegin.o b/lib/gcc/mipsel-linux-android/4.6/crtbegin.o
deleted file mode 100644
index 6614664..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtbegin.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtbeginS.o b/lib/gcc/mipsel-linux-android/4.6/crtbeginS.o
deleted file mode 100644
index 346eb9c..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtbeginS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtbeginT.o b/lib/gcc/mipsel-linux-android/4.6/crtbeginT.o
deleted file mode 100644
index 6614664..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtbeginT.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtend.o b/lib/gcc/mipsel-linux-android/4.6/crtend.o
deleted file mode 100644
index ea83a15..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtend.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtendS.o b/lib/gcc/mipsel-linux-android/4.6/crtendS.o
deleted file mode 100644
index ea83a15..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtendS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/crtfastmath.o b/lib/gcc/mipsel-linux-android/4.6/crtfastmath.o
deleted file mode 100644
index cc1a7a5..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/crtfastmath.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.c b/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.c
deleted file mode 100644
index 61ecd46..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.c
+++ /dev/null
@@ -1,980 +0,0 @@
-/* File format for coverage information
- Copyright (C) 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2005, 2007,
- 2008 Free Software Foundation, Inc.
- Contributed by Bob Manson <manson@cygnus.com>.
- Completely remangled by Nathan Sidwell <nathan@codesourcery.com>.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* Routines declared in gcov-io.h. This file should be #included by
- another source file, after having #included gcov-io.h. */
-
-/* Redefine these here, rather than using the ones in system.h since
- * including system.h leads to conflicting definitions of other
- * symbols and macros. */
-#undef MIN
-#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
-
-#if !IN_GCOV
-static void gcov_write_block (unsigned);
-static gcov_unsigned_t *gcov_write_words (unsigned);
-#endif
-static const gcov_unsigned_t *gcov_read_words (unsigned);
-#if !IN_LIBGCOV
-static void gcov_allocate (unsigned);
-#endif
-
-#ifdef __GCOV_KERNEL__
-struct gcov_var gcov_var ATTRIBUTE_HIDDEN;
-#endif
-
-static inline gcov_unsigned_t from_file (gcov_unsigned_t value)
-{
-#if !IN_LIBGCOV
- if (gcov_var.endian)
- {
- value = (value >> 16) | (value << 16);
- value = ((value & 0xff00ff) << 8) | ((value >> 8) & 0xff00ff);
- }
-#endif
- return value;
-}
-
-/* Open a gcov file. NAME is the name of the file to open and MODE
- indicates whether a new file should be created, or an existing file
- opened. If MODE is >= 0 an existing file will be opened, if
- possible, and if MODE is <= 0, a new file will be created. Use
- MODE=0 to attempt to reopen an existing file and then fall back on
- creating a new one. If MODE < 0, the file will be opened in
- read-only mode. Otherwise it will be opened for modification.
- Return zero on failure, >0 on opening an existing file and <0 on
- creating a new one. */
-
-#ifndef __GCOV_KERNEL__
-GCOV_LINKAGE int
-#if IN_LIBGCOV
-gcov_open (const char *name)
-#else
-gcov_open (const char *name, int mode)
-#endif
-{
-#if IN_LIBGCOV
- const int mode = 0;
-#endif
-#if GCOV_LOCKED
- struct flock s_flock;
- int fd;
-
- s_flock.l_whence = SEEK_SET;
- s_flock.l_start = 0;
- s_flock.l_len = 0; /* Until EOF. */
- s_flock.l_pid = getpid ();
-#endif
-
- gcc_assert (!gcov_var.file);
- gcov_var.start = 0;
- gcov_var.offset = gcov_var.length = 0;
- gcov_var.overread = -1u;
- gcov_var.error = 0;
-#if !IN_LIBGCOV
- gcov_var.endian = 0;
-#endif
-#if GCOV_LOCKED
- if (mode > 0)
- {
- /* Read-only mode - acquire a read-lock. */
- s_flock.l_type = F_RDLCK;
- fd = open (name, O_RDONLY);
- }
- else
- {
- /* Write mode - acquire a write-lock. */
- s_flock.l_type = F_WRLCK;
- fd = open (name, O_RDWR | O_CREAT, 0666);
- }
- if (fd < 0)
- return 0;
-
- while (fcntl (fd, F_SETLKW, &s_flock) && errno == EINTR)
- continue;
-
- gcov_var.file = fdopen (fd, (mode > 0) ? "rb" : "r+b");
-
- if (!gcov_var.file)
- {
- close (fd);
- return 0;
- }
-
- if (mode > 0)
- gcov_var.mode = 1;
- else if (mode == 0)
- {
- struct stat st;
-
- if (fstat (fd, &st) < 0)
- {
- fclose (gcov_var.file);
- gcov_var.file = 0;
- return 0;
- }
- if (st.st_size != 0)
- gcov_var.mode = 1;
- else
- gcov_var.mode = mode * 2 + 1;
- }
- else
- gcov_var.mode = mode * 2 + 1;
-#else
- if (mode >= 0)
- gcov_var.file = fopen (name, (mode > 0) ? "rb" : "r+b");
-
- if (gcov_var.file)
- gcov_var.mode = 1;
- else if (mode <= 0)
- {
- gcov_var.file = fopen (name, "w+b");
- if (gcov_var.file)
- gcov_var.mode = mode * 2 + 1;
- }
- if (!gcov_var.file)
- return 0;
-#endif
-
- setbuf (gcov_var.file, (char *)0);
-
- return 1;
-}
-#else /* __GCOV_KERNEL__ */
-
-extern _GCOV_FILE *gcov_current_file;
-
-GCOV_LINKAGE int
-gcov_open (const char *name)
-{
- gcov_var.start = 0;
- gcov_var.offset = gcov_var.length = 0;
- gcov_var.overread = -1u;
- gcov_var.error = 0;
- gcov_var.file = gcov_current_file;
- gcov_var.mode = 1;
-
- return 1;
-}
-#endif /* __GCOV_KERNEL__ */
-
-/* Close the current gcov file. Flushes data to disk. Returns nonzero
- on failure or error flag set. */
-
-GCOV_LINKAGE int
-gcov_close (void)
-{
- if (gcov_var.file)
- {
-#if !IN_GCOV
- if (gcov_var.offset && gcov_var.mode < 0)
- gcov_write_block (gcov_var.offset);
-#endif
- _GCOV_fclose (gcov_var.file);
- gcov_var.file = 0;
- gcov_var.length = 0;
- }
-#if !IN_LIBGCOV
- free (gcov_var.buffer);
- gcov_var.alloc = 0;
- gcov_var.buffer = 0;
-#endif
- gcov_var.mode = 0;
- return gcov_var.error;
-}
-
-#if !IN_LIBGCOV
-/* Modify FILENAME to a canonical form after stripping known prefixes
- in place. It removes '/proc/self/cwd' and '/proc/self/cwd/.'.
- Returns the in-place modified filename. */
-
-GCOV_LINKAGE char *
-gcov_canonical_filename (char *filename)
-{
- static char cwd_dot_str[] = "/proc/self/cwd/./";
- int cwd_dot_len = strlen (cwd_dot_str);
- int cwd_len = cwd_dot_len - 2; /* without trailing './' */
- int filename_len = strlen (filename);
- /* delete the longer prefix first */
- if (0 == strncmp (filename, cwd_dot_str, cwd_dot_len))
- {
- memmove (filename, filename + cwd_dot_len, filename_len - cwd_dot_len);
- filename[filename_len - cwd_dot_len] = '\0';
- return filename;
- }
-
- if (0 == strncmp (filename, cwd_dot_str, cwd_len))
- {
- memmove (filename, filename + cwd_len, filename_len - cwd_len);
- filename[filename_len - cwd_len] = '\0';
- return filename;
- }
- return filename;
-}
-
-/* Read LEN words and construct load latency info LL_INFO. */
-
-GCOV_LINKAGE void
-gcov_read_pmu_load_latency_info (gcov_pmu_ll_info_t *ll_info,
- gcov_unsigned_t len ATTRIBUTE_UNUSED)
-{
- const char *filename;
- ll_info->counts = gcov_read_unsigned ();
- ll_info->self = gcov_read_unsigned ();
- ll_info->cum = gcov_read_unsigned ();
- ll_info->lt_10 = gcov_read_unsigned ();
- ll_info->lt_32 = gcov_read_unsigned ();
- ll_info->lt_64 = gcov_read_unsigned ();
- ll_info->lt_256 = gcov_read_unsigned ();
- ll_info->lt_1024 = gcov_read_unsigned ();
- ll_info->gt_1024 = gcov_read_unsigned ();
- ll_info->wself = gcov_read_unsigned ();
- ll_info->code_addr = gcov_read_counter ();
- ll_info->line = gcov_read_unsigned ();
- ll_info->discriminator = gcov_read_unsigned ();
- filename = gcov_read_string ();
- if (filename)
- ll_info->filename = gcov_canonical_filename (xstrdup (filename));
- else
- ll_info->filename = 0;
-}
-
-/* Read LEN words and construct branch mispredict info BRM_INFO. */
-
-GCOV_LINKAGE void
-gcov_read_pmu_branch_mispredict_info (gcov_pmu_brm_info_t *brm_info,
- gcov_unsigned_t len ATTRIBUTE_UNUSED)
-{
- const char *filename;
- brm_info->counts = gcov_read_unsigned ();
- brm_info->self = gcov_read_unsigned ();
- brm_info->cum = gcov_read_unsigned ();
- brm_info->code_addr = gcov_read_counter ();
- brm_info->line = gcov_read_unsigned ();
- brm_info->discriminator = gcov_read_unsigned ();
- filename = gcov_read_string ();
- if (filename)
- brm_info->filename = gcov_canonical_filename (xstrdup (filename));
- else
- brm_info->filename = 0;
-}
-
-/* Read LEN words from an open gcov file and construct data into pmu
- tool header TOOL_HEADER. */
-
-GCOV_LINKAGE void gcov_read_pmu_tool_header (gcov_pmu_tool_header_t *header,
- gcov_unsigned_t len ATTRIBUTE_UNUSED)
-{
- const char *str;
- str = gcov_read_string ();
- header->host_cpu = str ? xstrdup (str) : 0;
- str = gcov_read_string ();
- header->hostname = str ? xstrdup (str) : 0;
- str = gcov_read_string ();
- header->kernel_version = str ? xstrdup (str) : 0;
- str = gcov_read_string ();
- header->column_header = str ? xstrdup (str) : 0;
- str = gcov_read_string ();
- header->column_description = str ? xstrdup (str) : 0;
- str = gcov_read_string ();
- header->full_header = str ? xstrdup (str) : 0;
-}
-#endif
-
-#if !IN_LIBGCOV
-/* Check if MAGIC is EXPECTED. Use it to determine endianness of the
- file. Returns +1 for same endian, -1 for other endian and zero for
- not EXPECTED. */
-
-GCOV_LINKAGE int
-gcov_magic (gcov_unsigned_t magic, gcov_unsigned_t expected)
-{
- if (magic == expected)
- return 1;
- magic = (magic >> 16) | (magic << 16);
- magic = ((magic & 0xff00ff) << 8) | ((magic >> 8) & 0xff00ff);
- if (magic == expected)
- {
- gcov_var.endian = 1;
- return -1;
- }
- return 0;
-}
-#endif
-
-#if !IN_LIBGCOV
-static void
-gcov_allocate (unsigned length)
-{
- size_t new_size = gcov_var.alloc;
-
- if (!new_size)
- new_size = GCOV_BLOCK_SIZE;
- new_size += length;
- new_size *= 2;
-
- gcov_var.alloc = new_size;
- gcov_var.buffer = XRESIZEVAR (gcov_unsigned_t, gcov_var.buffer, new_size << 2);
-}
-#endif
-
-#if !IN_GCOV
-/* Write out the current block, if needs be. */
-
-static void
-gcov_write_block (unsigned size)
-{
- if (_GCOV_fwrite (gcov_var.buffer, size << 2, 1, gcov_var.file) != 1)
- gcov_var.error = 1;
- gcov_var.start += size;
- gcov_var.offset -= size;
-}
-
-#if IN_LIBGCOV
-/* Return the number of words STRING would need including the length
- field in the output stream itself. This should be identical to
- "alloc" calculation in gcov_write_string(). */
-
-GCOV_LINKAGE gcov_unsigned_t
-gcov_string_length (const char *string)
-{
- gcov_unsigned_t len = (string) ? strlen (string) : 0;
- /* + 1 because of the length field. */
- gcov_unsigned_t alloc = 1 + ((len + 4) >> 2);
-
- /* Can not write a bigger than GCOV_BLOCK_SIZE string yet */
- gcc_assert (alloc < GCOV_BLOCK_SIZE);
- return alloc;
-}
-#endif
-
-/* Allocate space to write BYTES bytes to the gcov file. Return a
- pointer to those bytes, or NULL on failure. */
-
-static gcov_unsigned_t *
-gcov_write_words (unsigned words)
-{
- gcov_unsigned_t *result;
-
- gcc_assert (gcov_var.mode < 0);
-#if IN_LIBGCOV
- if (gcov_var.offset + words >= GCOV_BLOCK_SIZE)
- {
- gcov_write_block (MIN (gcov_var.offset, GCOV_BLOCK_SIZE));
- if (gcov_var.offset)
- {
- gcc_assert (gcov_var.offset < GCOV_BLOCK_SIZE);
- memcpy (gcov_var.buffer,
- gcov_var.buffer + GCOV_BLOCK_SIZE,
- gcov_var.offset << 2);
- }
- }
-#else
- if (gcov_var.offset + words > gcov_var.alloc)
- gcov_allocate (gcov_var.offset + words);
-#endif
- result = &gcov_var.buffer[gcov_var.offset];
- gcov_var.offset += words;
-
- return result;
-}
-
-/* Write unsigned VALUE to coverage file. Sets error flag
- appropriately. */
-
-GCOV_LINKAGE void
-gcov_write_unsigned (gcov_unsigned_t value)
-{
- gcov_unsigned_t *buffer = gcov_write_words (1);
-
- buffer[0] = value;
-}
-
-/* Write counter VALUE to coverage file. Sets error flag
- appropriately. */
-
-#if IN_LIBGCOV
-GCOV_LINKAGE void
-gcov_write_counter (gcov_type value)
-{
- gcov_unsigned_t *buffer = gcov_write_words (2);
-
- buffer[0] = (gcov_unsigned_t) value;
- if (sizeof (value) > sizeof (gcov_unsigned_t))
- buffer[1] = (gcov_unsigned_t) (value >> 32);
- else
- buffer[1] = 0;
-}
-#endif /* IN_LIBGCOV */
-
-/* Write STRING to coverage file. Sets error flag on file
- error, overflow flag on overflow */
-
-GCOV_LINKAGE void
-gcov_write_string (const char *string)
-{
- unsigned length = 0;
- unsigned alloc = 0;
- gcov_unsigned_t *buffer;
-
- if (string)
- {
- length = strlen (string);
- alloc = (length + 4) >> 2;
- }
-
- buffer = gcov_write_words (1 + alloc);
-
- buffer[0] = alloc;
- buffer[alloc] = 0;
- memcpy (&buffer[1], string, length);
-}
-
-#if !IN_LIBGCOV
-/* Write a tag TAG and reserve space for the record length. Return a
- value to be used for gcov_write_length. */
-
-GCOV_LINKAGE gcov_position_t
-gcov_write_tag (gcov_unsigned_t tag)
-{
- gcov_position_t result = gcov_var.start + gcov_var.offset;
- gcov_unsigned_t *buffer = gcov_write_words (2);
-
- buffer[0] = tag;
- buffer[1] = 0;
-
- return result;
-}
-
-/* Write a record length using POSITION, which was returned by
- gcov_write_tag. The current file position is the end of the
- record, and is restored before returning. Returns nonzero on
- overflow. */
-
-GCOV_LINKAGE void
-gcov_write_length (gcov_position_t position)
-{
- unsigned offset;
- gcov_unsigned_t length;
- gcov_unsigned_t *buffer;
-
- gcc_assert (gcov_var.mode < 0);
- gcc_assert (position + 2 <= gcov_var.start + gcov_var.offset);
- gcc_assert (position >= gcov_var.start);
- offset = position - gcov_var.start;
- length = gcov_var.offset - offset - 2;
- buffer = (gcov_unsigned_t *) &gcov_var.buffer[offset];
- buffer[1] = length;
- if (gcov_var.offset >= GCOV_BLOCK_SIZE)
- gcov_write_block (gcov_var.offset);
-}
-
-#else /* IN_LIBGCOV */
-
-/* Write a tag TAG and length LENGTH. */
-
-GCOV_LINKAGE void
-gcov_write_tag_length (gcov_unsigned_t tag, gcov_unsigned_t length)
-{
- gcov_unsigned_t *buffer = gcov_write_words (2);
-
- buffer[0] = tag;
- buffer[1] = length;
-}
-
-/* Write a summary structure to the gcov file. Return nonzero on
- overflow. */
-
-GCOV_LINKAGE void
-gcov_write_summary (gcov_unsigned_t tag, const struct gcov_summary *summary)
-{
- unsigned ix;
- const struct gcov_ctr_summary *csum;
-
- gcov_write_tag_length (tag, GCOV_TAG_SUMMARY_LENGTH);
- gcov_write_unsigned (summary->checksum);
- for (csum = summary->ctrs, ix = GCOV_COUNTERS_SUMMABLE; ix--; csum++)
- {
- gcov_write_unsigned (csum->num);
- gcov_write_unsigned (csum->runs);
- gcov_write_counter (csum->sum_all);
- gcov_write_counter (csum->run_max);
- gcov_write_counter (csum->sum_max);
- }
-}
-#endif /* IN_LIBGCOV */
-
-#endif /*!IN_GCOV */
-
-/* Return a pointer to read BYTES bytes from the gcov file. Returns
- NULL on failure (read past EOF). */
-
-static const gcov_unsigned_t *
-gcov_read_words (unsigned words)
-{
- const gcov_unsigned_t *result;
- unsigned excess = gcov_var.length - gcov_var.offset;
-
- gcc_assert (gcov_var.mode > 0);
- gcc_assert (words < GCOV_BLOCK_SIZE);
- if (excess < words)
- {
- gcov_var.start += gcov_var.offset;
-#if IN_LIBGCOV
- if (excess)
- {
- gcc_assert (excess < GCOV_BLOCK_SIZE);
- memmove (gcov_var.buffer, gcov_var.buffer + gcov_var.offset, excess * 4);
- }
-#else
- memmove (gcov_var.buffer, gcov_var.buffer + gcov_var.offset, excess * 4);
-#endif
- gcov_var.offset = 0;
- gcov_var.length = excess;
-#if IN_LIBGCOV
- excess = (sizeof (gcov_var.buffer) / sizeof (gcov_var.buffer[0])) - gcov_var.length;
-#else
- if (gcov_var.length + words > gcov_var.alloc)
- gcov_allocate (gcov_var.length + words);
- excess = gcov_var.alloc - gcov_var.length;
-#endif
- excess = _GCOV_fread (gcov_var.buffer + gcov_var.length,
- 1, excess << 2, gcov_var.file) >> 2;
- gcov_var.length += excess;
- if (gcov_var.length < words)
- {
- gcov_var.overread += words - gcov_var.length;
- gcov_var.length = 0;
- return 0;
- }
- }
- result = &gcov_var.buffer[gcov_var.offset];
- gcov_var.offset += words;
- return result;
-}
-
-/* Read unsigned value from a coverage file. Sets error flag on file
- error, overflow flag on overflow */
-
-GCOV_LINKAGE gcov_unsigned_t
-gcov_read_unsigned (void)
-{
- gcov_unsigned_t value;
- const gcov_unsigned_t *buffer = gcov_read_words (1);
-
- if (!buffer)
- return 0;
- value = from_file (buffer[0]);
- return value;
-}
-
-/* Read counter value from a coverage file. Sets error flag on file
- error, overflow flag on overflow */
-
-GCOV_LINKAGE gcov_type
-gcov_read_counter (void)
-{
- gcov_type value;
- const gcov_unsigned_t *buffer = gcov_read_words (2);
-
- if (!buffer)
- return 0;
- value = from_file (buffer[0]);
- if (sizeof (value) > sizeof (gcov_unsigned_t))
- value |= ((gcov_type) from_file (buffer[1])) << 32;
- else if (buffer[1])
- gcov_var.error = -1;
-
- return value;
-}
-
-/* Read string from coverage file. Returns a pointer to a static
- buffer, or NULL on empty string. You must copy the string before
- calling another gcov function. */
-
-GCOV_LINKAGE const char *
-gcov_read_string (void)
-{
- unsigned length = gcov_read_unsigned ();
-
- if (!length)
- return 0;
-
- return (const char *) gcov_read_words (length);
-}
-
-GCOV_LINKAGE void
-gcov_read_summary (struct gcov_summary *summary)
-{
- unsigned ix;
- struct gcov_ctr_summary *csum;
-
- summary->checksum = gcov_read_unsigned ();
- for (csum = summary->ctrs, ix = GCOV_COUNTERS_SUMMABLE; ix--; csum++)
- {
- csum->num = gcov_read_unsigned ();
- csum->runs = gcov_read_unsigned ();
- csum->sum_all = gcov_read_counter ();
- csum->run_max = gcov_read_counter ();
- csum->sum_max = gcov_read_counter ();
- }
-}
-
-#if !IN_LIBGCOV && IN_GCOV != 1
-/* Read LEN words (unsigned type) and construct MOD_INFO. */
-
-GCOV_LINKAGE void
-gcov_read_module_info (struct gcov_module_info *mod_info,
- gcov_unsigned_t len)
-{
- gcov_unsigned_t src_filename_len, filename_len, i, j, num_strings;
- mod_info->ident = gcov_read_unsigned ();
- mod_info->is_primary = gcov_read_unsigned ();
- mod_info->is_exported = gcov_read_unsigned ();
- mod_info->lang = gcov_read_unsigned ();
- mod_info->num_quote_paths = gcov_read_unsigned ();
- mod_info->num_bracket_paths = gcov_read_unsigned ();
- mod_info->num_cpp_defines = gcov_read_unsigned ();
- mod_info->num_cpp_includes = gcov_read_unsigned ();
- mod_info->num_cl_args = gcov_read_unsigned ();
- len -= 9;
-
- filename_len = gcov_read_unsigned ();
- mod_info->da_filename = (char *) xmalloc (filename_len *
- sizeof (gcov_unsigned_t));
- for (i = 0; i < filename_len; i++)
- ((gcov_unsigned_t *) mod_info->da_filename)[i] = gcov_read_unsigned ();
- len -= (filename_len + 1);
-
- src_filename_len = gcov_read_unsigned ();
- mod_info->source_filename = (char *) xmalloc (src_filename_len *
- sizeof (gcov_unsigned_t));
- for (i = 0; i < src_filename_len; i++)
- ((gcov_unsigned_t *) mod_info->source_filename)[i] = gcov_read_unsigned ();
- len -= (src_filename_len + 1);
-
- num_strings = mod_info->num_quote_paths + mod_info->num_bracket_paths +
- mod_info->num_cpp_defines + mod_info->num_cpp_includes +
- mod_info->num_cl_args;
- for (j = 0; j < num_strings; j++)
- {
- gcov_unsigned_t string_len = gcov_read_unsigned ();
- mod_info->string_array[j] =
- (char *) xmalloc (string_len * sizeof (gcov_unsigned_t));
- for (i = 0; i < string_len; i++)
- ((gcov_unsigned_t *) mod_info->string_array[j])[i] =
- gcov_read_unsigned ();
- len -= (string_len + 1);
- }
- gcc_assert (!len);
-}
-#endif
-
-#if !IN_LIBGCOV
-/* Reset to a known position. BASE should have been obtained from
- gcov_position, LENGTH should be a record length. */
-
-GCOV_LINKAGE void
-gcov_sync (gcov_position_t base, gcov_unsigned_t length)
-{
-#ifdef __GCOV_KERNEL__
- /* should not reach this point */
- gcc_assert (0);
-#else /* __GCOV_KERNEL__ */
- gcc_assert (gcov_var.mode > 0);
- base += length;
- if (base - gcov_var.start <= gcov_var.length)
- gcov_var.offset = base - gcov_var.start;
- else
- {
- gcov_var.offset = gcov_var.length = 0;
- _GCOV_fseek (gcov_var.file, base << 2, SEEK_SET);
- gcov_var.start = _GCOV_ftell (gcov_var.file) >> 2;
- }
-#endif /* __GCOV_KERNEL__ */
-}
-#endif
-
-#if IN_LIBGCOV
-/* Move to a given position in a gcov file. */
-
-GCOV_LINKAGE void
-gcov_seek (gcov_position_t base)
-{
- gcc_assert (gcov_var.mode < 0);
- if (gcov_var.offset)
- gcov_write_block (gcov_var.offset);
- _GCOV_fseek (gcov_var.file, base << 2, SEEK_SET);
- gcov_var.start = _GCOV_ftell (gcov_var.file) >> 2;
-}
-
-/* Truncate the gcov file at the current position. */
-
-GCOV_LINKAGE void
-gcov_truncate (void)
-{
-#ifdef __GCOV_KERNEL__
- /* should not reach this point */
- gcc_assert (0);
-#else /* __GCOV_KERNEL__ */
- long offs;
- int filenum;
- gcc_assert (gcov_var.mode < 0);
- if (gcov_var.offset)
- gcov_write_block (gcov_var.offset);
- offs = ftell (gcov_var.file);
- filenum = fileno (gcov_var.file);
- if (offs == -1 || filenum == -1 || ftruncate (filenum, offs))
- gcov_var.error = 1;
-#endif /* __GCOV_KERNEL__ */
-}
-#endif
-
-#ifndef __GCOV_KERNEL__
-/* Convert an unsigned NUMBER to a percentage after dividing by
- 100. */
-
-GCOV_LINKAGE float
-convert_unsigned_to_pct (const unsigned number)
-{
- return (float)number / 100.0f;
-}
-#endif
-
-#if !IN_LIBGCOV && IN_GCOV != 1
-/* Print load latency information given by LL_INFO in a human readable
- format into an open output file pointed by FP. NEWLINE specifies
- whether or not to print a trailing newline. */
-
-GCOV_LINKAGE void
-print_load_latency_line (FILE *fp, const gcov_pmu_ll_info_t *ll_info,
- const enum print_newline newline)
-{
- if (!ll_info)
- return;
- fprintf (fp, " %u %.2f%% %.2f%% %.2f%% %.2f%% %.2f%% %.2f%% %.2f%% "
- "%.2f%% %.2f%% " HOST_WIDEST_INT_PRINT_HEX " %s %d %d",
- ll_info->counts,
- convert_unsigned_to_pct (ll_info->self),
- convert_unsigned_to_pct (ll_info->cum),
- convert_unsigned_to_pct (ll_info->lt_10),
- convert_unsigned_to_pct (ll_info->lt_32),
- convert_unsigned_to_pct (ll_info->lt_64),
- convert_unsigned_to_pct (ll_info->lt_256),
- convert_unsigned_to_pct (ll_info->lt_1024),
- convert_unsigned_to_pct (ll_info->gt_1024),
- convert_unsigned_to_pct (ll_info->wself),
- ll_info->code_addr,
- ll_info->filename,
- ll_info->line,
- ll_info->discriminator);
- if (newline == add_newline)
- fprintf (fp, "\n");
-}
-
-/* Print BRM_INFO into the file pointed by FP. NEWLINE specifies
- whether or not to print a trailing newline. */
-
-GCOV_LINKAGE void
-print_branch_mispredict_line (FILE *fp, const gcov_pmu_brm_info_t *brm_info,
- const enum print_newline newline)
-{
- if (!brm_info)
- return;
- fprintf (fp, " %u %.2f%% %.2f%% " HOST_WIDEST_INT_PRINT_HEX " %s %d %d",
- brm_info->counts,
- convert_unsigned_to_pct (brm_info->self),
- convert_unsigned_to_pct (brm_info->cum),
- brm_info->code_addr,
- brm_info->filename,
- brm_info->line,
- brm_info->discriminator);
- if (newline == add_newline)
- fprintf (fp, "\n");
-}
-
-/* Print TOOL_HEADER into the file pointed by FP. NEWLINE specifies
- whether or not to print a trailing newline. */
-
-GCOV_LINKAGE void
-print_pmu_tool_header (FILE *fp, gcov_pmu_tool_header_t *tool_header,
- const enum print_newline newline)
-{
- if (!tool_header)
- return;
- fprintf (fp, "\nhost_cpu: %s\n", tool_header->host_cpu);
- fprintf (fp, "hostname: %s\n", tool_header->hostname);
- fprintf (fp, "kernel_version: %s\n", tool_header->kernel_version);
- fprintf (fp, "column_header: %s\n", tool_header->column_header);
- fprintf (fp, "column_description: %s\n", tool_header->column_description);
- fprintf (fp, "full_header: %s\n", tool_header->full_header);
- if (newline == add_newline)
- fprintf (fp, "\n");
-}
-#endif
-
-#if IN_GCOV > 0
-/* Return the modification time of the current gcov file. */
-
-GCOV_LINKAGE time_t
-gcov_time (void)
-{
- struct stat status;
-
- if (fstat (fileno (gcov_var.file), &status))
- return 0;
- else
- return status.st_mtime;
-}
-#endif /* IN_GCOV */
-
-#ifdef __GCOV_KERNEL__
-
-/* File fclose operation in kernel mode. */
-
-int
-kernel_file_fclose (gcov_kernel_vfile *fp)
-{
- return 0;
-}
-
-/* File ftell operation in kernel mode. It currently should not
- be called. */
-
-long
-kernel_file_ftell (gcov_kernel_vfile *fp)
-{
- gcc_assert (0); /* should not reach here */
- return 0;
-}
-
-/* File fseek operation in kernel mode. It should only be called
- with OFFSET==0 and WHENCE==0 to a freshly opened file. */
-
-int
-kernel_file_fseek (gcov_kernel_vfile *fp, long offset, int whence)
-{
- gcc_assert (offset == 0 && whence == 0 && fp->count == 0);
- return 0;
-}
-
-/* File ftruncate operation in kernel mode. It currently should not
- be called. */
-
-int
-kernel_file_ftruncate (gcov_kernel_vfile *fp, off_t value)
-{
- gcc_assert (0); /* should not reach here */
- return 0;
-}
-
-/* File fread operation in kernel mode. It currently should not
- be called. */
-
-int
-kernel_file_fread (void *ptr, size_t size, size_t nitems,
- gcov_kernel_vfile *fp)
-{
- gcc_assert (0); /* should not reach here */
- return 0;
-}
-
-/* File fwrite operation in kernel mode. It outputs the data
- to a buffer in the virual file. */
-
-int
-kernel_file_fwrite (const void *ptr, size_t size,
- size_t nitems, gcov_kernel_vfile *fp)
-{
- char *vbuf;
- unsigned vsize, vpos;
- unsigned len;
-
- if (!fp) return 0;
-
- vbuf = fp->buf;
- vsize = fp->size;
- vpos = fp->count;
-
- if (vsize <= vpos)
- {
- printk (KERN_ERR
- "GCOV_KERNEL: something wrong: vbuf=%p vsize=%u vpos=%u\n",
- vbuf, vsize, vpos);
- return 0;
- }
- len = vsize - vpos;
- len /= size;
-
- if (len > nitems)
- len = nitems;
-
- memcpy (vbuf+vpos, ptr, size*len);
- fp->count += len*size;
-
- if (len != nitems)
- printk (KERN_ERR
- "GCOV_KERNEL: something wrong: size=%lu nitems=%lu ret=%d\n",
- size, nitems, len);
- return len;
-}
-
-/* File fileno operation in kernel mode. It currently should not
- be called. */
-
-int
-kernel_file_fileno (gcov_kernel_vfile *fp)
-{
- gcc_assert (0); /* should not reach here */
- return 0;
-}
-#else /* __GCOV_KERNEL__ */
-
-#if IN_GCOV != 1
-/* Delete pmu tool header TOOL_HEADER. */
-
-GCOV_LINKAGE void
-destroy_pmu_tool_header (gcov_pmu_tool_header_t *tool_header)
-{
- if (!tool_header)
- return;
- if (tool_header->host_cpu)
- free (tool_header->host_cpu);
- if (tool_header->hostname)
- free (tool_header->hostname);
- if (tool_header->kernel_version)
- free (tool_header->kernel_version);
- if (tool_header->column_header)
- free (tool_header->column_header);
- if (tool_header->column_description)
- free (tool_header->column_description);
- if (tool_header->full_header)
- free (tool_header->full_header);
-}
-#endif
-
-#endif /* GCOV_KERNEL */
diff --git a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.h b/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.h
deleted file mode 100644
index fe0ae20..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-io.h
+++ /dev/null
@@ -1,968 +0,0 @@
-/* File format for coverage information
- Copyright (C) 1996, 1997, 1998, 2000, 2002,
- 2003, 2004, 2005, 2008, 2009 Free Software Foundation, Inc.
- Contributed by Bob Manson <manson@cygnus.com>.
- Completely remangled by Nathan Sidwell <nathan@codesourcery.com>.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-
-/* Coverage information is held in two files. A notes file, which is
- generated by the compiler, and a data file, which is generated by
- the program under test. Both files use a similar structure. We do
- not attempt to make these files backwards compatible with previous
- versions, as you only need coverage information when developing a
- program. We do hold version information, so that mismatches can be
- detected, and we use a format that allows tools to skip information
- they do not understand or are not interested in.
-
- Numbers are recorded in the 32 bit unsigned binary form of the
- endianness of the machine generating the file. 64 bit numbers are
- stored as two 32 bit numbers, the low part first. Strings are
- padded with 1 to 4 NUL bytes, to bring the length up to a multiple
- of 4. The number of 4 bytes is stored, followed by the padded
- string. Zero length and NULL strings are simply stored as a length
- of zero (they have no trailing NUL or padding).
-
- int32: byte3 byte2 byte1 byte0 | byte0 byte1 byte2 byte3
- int64: int32:low int32:high
- string: int32:0 | int32:length char* char:0 padding
- padding: | char:0 | char:0 char:0 | char:0 char:0 char:0
- item: int32 | int64 | string
-
- The basic format of the files is
-
- file : int32:magic int32:version int32:stamp record*
-
- The magic ident is different for the notes and the data files. The
- magic ident is used to determine the endianness of the file, when
- reading. The version is the same for both files and is derived
- from gcc's version number. The stamp value is used to synchronize
- note and data files and to synchronize merging within a data
- file. It need not be an absolute time stamp, merely a ticker that
- increments fast enough and cycles slow enough to distinguish
- different compile/run/compile cycles.
-
- Although the ident and version are formally 32 bit numbers, they
- are derived from 4 character ASCII strings. The version number
- consists of the single character major version number, a two
- character minor version number (leading zero for versions less than
- 10), and a single character indicating the status of the release.
- That will be 'e' experimental, 'p' prerelease and 'r' for release.
- Because, by good fortune, these are in alphabetical order, string
- collating can be used to compare version strings. Be aware that
- the 'e' designation will (naturally) be unstable and might be
- incompatible with itself. For gcc 3.4 experimental, it would be
- '304e' (0x33303465). When the major version reaches 10, the
- letters A-Z will be used. Assuming minor increments releases every
- 6 months, we have to make a major increment every 50 years.
- Assuming major increments releases every 5 years, we're ok for the
- next 155 years -- good enough for me.
-
- A record has a tag, length and variable amount of data.
-
- record: header data
- header: int32:tag int32:length
- data: item*
-
- Records are not nested, but there is a record hierarchy. Tag
- numbers reflect this hierarchy. Tags are unique across note and
- data files. Some record types have a varying amount of data. The
- LENGTH is the number of 4bytes that follow and is usually used to
- determine how much data. The tag value is split into 4 8-bit
- fields, one for each of four possible levels. The most significant
- is allocated first. Unused levels are zero. Active levels are
- odd-valued, so that the LSB of the level is one. A sub-level
- incorporates the values of its superlevels. This formatting allows
- you to determine the tag hierarchy, without understanding the tags
- themselves, and is similar to the standard section numbering used
- in technical documents. Level values [1..3f] are used for common
- tags, values [41..9f] for the notes file and [a1..ff] for the data
- file.
-
- The basic block graph file contains the following records
- note: unit function-graph*
- unit: header int32:checksum string:source
- function-graph: announce_function basic_blocks {arcs | lines}*
- announce_function: header int32:ident
- int32:lineno_checksum int32:cfg_checksum
- string:name string:source int32:lineno
- basic_block: header int32:flags*
- arcs: header int32:block_no arc*
- arc: int32:dest_block int32:flags
- lines: header int32:block_no line*
- int32:0 string:NULL
- line: int32:line_no | int32:0 string:filename
-
- The BASIC_BLOCK record holds per-bb flags. The number of blocks
- can be inferred from its data length. There is one ARCS record per
- basic block. The number of arcs from a bb is implicit from the
- data length. It enumerates the destination bb and per-arc flags.
- There is one LINES record per basic block, it enumerates the source
- lines which belong to that basic block. Source file names are
- introduced by a line number of 0, following lines are from the new
- source file. The initial source file for the function is NULL, but
- the current source file should be remembered from one LINES record
- to the next. The end of a block is indicated by an empty filename
- - this does not reset the current source file. Note there is no
- ordering of the ARCS and LINES records: they may be in any order,
- interleaved in any manner. The current filename follows the order
- the LINES records are stored in the file, *not* the ordering of the
- blocks they are for.
-
- The data file contains the following records.
- data: {unit function-data* summary:object summary:program*}*
- unit: header int32:checksum
- function-data: announce_function arc_counts
- announce_function: header int32:ident
- int32:lineno_checksum int32:cfg_checksum
- arc_counts: header int64:count*
- summary: int32:checksum {count-summary}GCOV_COUNTERS
- count-summary: int32:num int32:runs int64:sum
- int64:max int64:sum_max
-
- The ANNOUNCE_FUNCTION record is the same as that in the note file,
- but without the source location. The ARC_COUNTS gives the counter
- values for those arcs that are instrumented. The SUMMARY records
- give information about the whole object file and about the whole
- program. The checksum is used for whole program summaries, and
- disambiguates different programs which include the same
- instrumented object file. There may be several program summaries,
- each with a unique checksum. The object summary's checksum is zero.
- Note that the data file might contain information from several runs
- concatenated, or the data might be merged.
-
- This file is included by both the compiler, gcov tools and the
- runtime support library libgcov. IN_LIBGCOV and IN_GCOV are used to
- distinguish which case is which. If IN_LIBGCOV is nonzero,
- libgcov is being built. If IN_GCOV is nonzero, the gcov tools are
- being built. Otherwise the compiler is being built. IN_GCOV may be
- positive or negative. If positive, we are compiling a tool that
- requires additional functions (see the code for knowledge of what
- those functions are). */
-
-#ifndef GCC_GCOV_IO_H
-#define GCC_GCOV_IO_H
-
-#ifdef __KERNEL__
-#ifndef __GCOV_KERNEL__
-#define __GCOV_KERNEL__
-#endif /* __GCOV_KERNEL__ */
-#endif /* __KERNEL__ */
-
-#ifdef __GCOV_KERNEL__
-#define GCOV_LINKAGE /* nothing */
-
-/* We need the definitions for
- BITS_PER_UNIT and
- LONG_LONG_TYPE_SIZE
- They are defined in gcc/defaults.h and gcc/config/<arch_depend_files>
- (like, gcc/config/i386/i386.h). And it can be overridden by setting
- in build scripts. Here I hardcoded the value for x86.
- Todo: using a program to auto-generate the vaules in build time. */
-#define BITS_PER_UNIT 8
-#define LONG_LONG_TYPE_SIZE 64
-
-/* There are many gcc_assertions. Set the vaule to 1 if we want a warning
- message if the assertion fails. */
-#ifndef ENABLE_ASSERT_CHECKING
-#define ENABLE_ASSERT_CHECKING 1
-#endif
-
-#include <linux/fs.h>
-#endif /* __GCOV_KERNEL__ */
-
-/* Wrappers to the file operations. */
-#ifndef __GCOV_KERNEL__
-# define _GCOV_FILE FILE
-# define _GCOV_fclose fclose
-# define _GCOV_ftell ftell
-# define _GCOV_fseek fseek
-# define _GCOV_ftruncate ftruncate
-# define _GCOV_fread fread
-# define _GCOV_fwrite fwrite
-# define _GCOV_fread fread
-# define _GCOV_fileno fileno
-#else /* __GCOV_KERNEL__ */
-/* In Linux kernel mode, a virtual file is used for file operations. */
-struct gcov_info;
-typedef struct {
- long size; /* size of buf */
- long count; /* element written into buf */
- struct gcov_info *info;
- char buf[0];
-} gcov_kernel_vfile;
-
-# define _GCOV_FILE gcov_kernel_vfile
-
-/* gcc_assert() prints out a warning if the check fails. It
- will not abort. */
-#if ENABLE_ASSERT_CHECKING
-# define gcc_assert(EXPR) \
- ((void)(!(EXPR) ? printk (KERN_WARNING \
- "GCOV assertion fails: func=%s line=%d\n", \
- __FUNCTION__, __LINE__), 0 : 0))
-#else
-# define gcc_assert(EXPR) ((void)(0 && (EXPR)))
-#endif
-
-/* Wrappers to the file operations. */
-# define _GCOV_fclose kernel_file_fclose
-# define _GCOV_ftell kernel_file_ftell
-# define _GCOV_fseek kernel_file_fseek
-# define _GCOV_ftruncate kernel_file_ftruncate
-# define _GCOV_fread kernel_file_fread
-# define _GCOV_fwrite kernel_file_fwrite
-# define _GCOV_fileno kernel_file_fileno
-
-/* Declarations for virtual files operations. */
-extern int kernel_file_fclose (gcov_kernel_vfile *);
-extern long kernel_file_ftell (gcov_kernel_vfile *);
-extern int kernel_file_fseek (gcov_kernel_vfile *, long, int);
-extern int kernel_file_ftruncate (gcov_kernel_vfile *, off_t);
-extern int kernel_file_fread (void *, size_t, size_t,
- gcov_kernel_vfile *);
-extern int kernel_file_fwrite (const void *, size_t, size_t,
- gcov_kernel_vfile *);
-extern int kernel_file_fileno(gcov_kernel_vfile *);
-#endif /* GCOV_KERNEL */
-#if IN_LIBGCOV
-
-#undef FUNC_ID_WIDTH
-#undef FUNC_ID_MASK
-/* About the target */
-
-#if BITS_PER_UNIT == 8
-typedef unsigned gcov_unsigned_t __attribute__ ((mode (SI)));
-typedef unsigned gcov_position_t __attribute__ ((mode (SI)));
-#if LONG_LONG_TYPE_SIZE > 32
-typedef signed gcov_type __attribute__ ((mode (DI)));
-#define FUNC_ID_WIDTH 32
-#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1)
-#else
-typedef signed gcov_type __attribute__ ((mode (SI)));
-#define FUNC_ID_WIDTH 16
-#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1)
-#endif
-#else /* BITS_PER_UNIT != 8 */
-#if BITS_PER_UNIT == 16
-typedef unsigned gcov_unsigned_t __attribute__ ((mode (HI)));
-typedef unsigned gcov_position_t __attribute__ ((mode (HI)));
-#if LONG_LONG_TYPE_SIZE > 32
-typedef signed gcov_type __attribute__ ((mode (SI)));
-#define FUNC_ID_WIDTH 32
-#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1)
-#else
-typedef signed gcov_type __attribute__ ((mode (HI)));
-#define FUNC_ID_WIDTH 16
-#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1)
-#endif
-#else /* BITS_PER_UNIT != 16 */
-typedef unsigned gcov_unsigned_t __attribute__ ((mode (QI)));
-typedef unsigned gcov_position_t __attribute__ ((mode (QI)));
-#if LONG_LONG_TYPE_SIZE > 32
-typedef signed gcov_type __attribute__ ((mode (HI)));
-#define FUNC_ID_WIDTH 32
-#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1)
-#else
-typedef signed gcov_type __attribute__ ((mode (QI)));
-#define FUNC_ID_WIDTH 16
-#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1)
-#endif
-#endif /* BITS_PER_UNIT == 16 */
-
-#endif /* BITS_PER_UNIT == 8 */
-
-#undef EXTRACT_MODULE_ID_FROM_GLOBAL_ID
-#undef EXTRACT_FUNC_ID_FROM_GLOBAL_ID
-#undef GEN_FUNC_GLOBAL_ID
-#define EXTRACT_MODULE_ID_FROM_GLOBAL_ID(gid) \
- (gcov_unsigned_t)(((gid) >> FUNC_ID_WIDTH) & FUNC_ID_MASK)
-#define EXTRACT_FUNC_ID_FROM_GLOBAL_ID(gid) \
- (gcov_unsigned_t)((gid) & FUNC_ID_MASK)
-#define GEN_FUNC_GLOBAL_ID(m,f) ((((gcov_type) (m)) << FUNC_ID_WIDTH) | (f))
-
-
-#if defined (TARGET_POSIX_IO)
-#define GCOV_LOCKED 1
-#else
-#define GCOV_LOCKED 0
-#endif
-
-#else /* !IN_LIBGCOV */
-/* About the host */
-
-typedef unsigned gcov_unsigned_t;
-typedef unsigned gcov_position_t;
-
-/* gcov_type is typedef'd elsewhere for the compiler */
-#if IN_GCOV
-#define GCOV_LINKAGE static
-typedef HOST_WIDEST_INT gcov_type;
-#if IN_GCOV > 0
-#include <sys/types.h>
-#endif
-
-#define FUNC_ID_WIDTH HOST_BITS_PER_WIDE_INT/2
-#define FUNC_ID_MASK ((1L << FUNC_ID_WIDTH) - 1)
-#define EXTRACT_MODULE_ID_FROM_GLOBAL_ID(gid) (unsigned)(((gid) >> FUNC_ID_WIDTH) & FUNC_ID_MASK)
-#define EXTRACT_FUNC_ID_FROM_GLOBAL_ID(gid) (unsigned)((gid) & FUNC_ID_MASK)
-#define FUNC_GLOBAL_ID(m,f) ((((HOST_WIDE_INT) (m)) << FUNC_ID_WIDTH) | (f)
-
-#else /*!IN_GCOV */
-#define GCOV_TYPE_SIZE (LONG_LONG_TYPE_SIZE > 32 ? 64 : 32)
-#endif
-
-#if defined (HOST_HAS_F_SETLKW)
-#define GCOV_LOCKED 1
-#else
-#define GCOV_LOCKED 0
-#endif
-
-#endif /* !IN_LIBGCOV */
-
-/* In gcov we want function linkage to be static. In the compiler we want
- it extern, so that they can be accessed from elsewhere. In libgcov we
- need these functions to be extern, so prefix them with __gcov. In
- libgcov they must also be hidden so that the instance in the executable
- is not also used in a DSO. */
-#if IN_LIBGCOV
-
-#ifndef __GCOV_KERNEL__
-#include "tconfig.h"
-#endif /* __GCOV_KERNEL__ */
-
-#define gcov_var __gcov_var
-#define gcov_open __gcov_open
-#define gcov_close __gcov_close
-#define gcov_write_tag_length __gcov_write_tag_length
-#define gcov_position __gcov_position
-#define gcov_seek __gcov_seek
-#define gcov_rewrite __gcov_rewrite
-#define gcov_truncate __gcov_truncate
-#define gcov_is_error __gcov_is_error
-#define gcov_write_unsigned __gcov_write_unsigned
-#define gcov_write_counter __gcov_write_counter
-#define gcov_write_summary __gcov_write_summary
-#define gcov_write_module_info __gcov_write_module_info
-#define gcov_write_string __gcov_write_string
-#define gcov_string_length __gcov_string_length
-#define gcov_read_unsigned __gcov_read_unsigned
-#define gcov_read_counter __gcov_read_counter
-#define gcov_read_string __gcov_read_string
-#define gcov_read_summary __gcov_read_summary
-#define gcov_read_module_info __gcov_read_module_info
-#define gcov_sort_n_vals __gcov_sort_n_vals
-#define gcov_canonical_filename _gcov_canonical_filename
-#define gcov_read_pmu_load_latency_info __gcov_read_pmu_load_latency_info
-#define gcov_read_pmu_branch_mispredict_info __gcov_read_pmu_branch_mispredict_info
-#define gcov_read_pmu_tool_header __gcov_read_pmu_tool_header
-#define destroy_pmu_tool_header __destroy_pmu_tool_header
-
-
-/* Poison these, so they don't accidentally slip in. */
-#pragma GCC poison gcov_write_tag gcov_write_length
-#pragma GCC poison gcov_sync gcov_time gcov_magic
-
-#ifdef HAVE_GAS_HIDDEN
-#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
-#else
-#define ATTRIBUTE_HIDDEN
-#endif
-
-#else
-
-#define ATTRIBUTE_HIDDEN
-
-#endif
-
-#ifndef GCOV_LINKAGE
-#define GCOV_LINKAGE extern
-#endif
-
-/* File suffixes. */
-#define GCOV_DATA_SUFFIX ".gcda"
-#define GCOV_NOTE_SUFFIX ".gcno"
-
-/* File magic. Must not be palindromes. */
-#define GCOV_DATA_MAGIC ((gcov_unsigned_t)0x67636461) /* "gcda" */
-#define GCOV_NOTE_MAGIC ((gcov_unsigned_t)0x67636e6f) /* "gcno" */
-
-/* gcov-iov.h is automatically generated by the makefile from
- version.c, it looks like
- #define GCOV_VERSION ((gcov_unsigned_t)0x89abcdef)
-*/
-#include "gcov-iov.h"
-
-/* Convert a magic or version number to a 4 character string. */
-#define GCOV_UNSIGNED2STRING(ARRAY,VALUE) \
- ((ARRAY)[0] = (char)((VALUE) >> 24), \
- (ARRAY)[1] = (char)((VALUE) >> 16), \
- (ARRAY)[2] = (char)((VALUE) >> 8), \
- (ARRAY)[3] = (char)((VALUE) >> 0))
-
-/* The record tags. Values [1..3f] are for tags which may be in either
- file. Values [41..9f] for those in the note file and [a1..ff] for
- the data file. The tag value zero is used as an explicit end of
- file marker -- it is not required to be present. */
-
-#define GCOV_TAG_FUNCTION ((gcov_unsigned_t)0x01000000)
-#define GCOV_TAG_FUNCTION_LENGTH (3)
-#define GCOV_TAG_BLOCKS ((gcov_unsigned_t)0x01410000)
-#define GCOV_TAG_BLOCKS_LENGTH(NUM) (NUM)
-#define GCOV_TAG_BLOCKS_NUM(LENGTH) (LENGTH)
-#define GCOV_TAG_ARCS ((gcov_unsigned_t)0x01430000)
-#define GCOV_TAG_ARCS_LENGTH(NUM) (1 + (NUM) * 2)
-#define GCOV_TAG_ARCS_NUM(LENGTH) (((LENGTH) - 1) / 2)
-#define GCOV_TAG_LINES ((gcov_unsigned_t)0x01450000)
-#define GCOV_TAG_COUNTER_BASE ((gcov_unsigned_t)0x01a10000)
-#define GCOV_TAG_COUNTER_LENGTH(NUM) ((NUM) * 2)
-#define GCOV_TAG_COUNTER_NUM(LENGTH) ((LENGTH) / 2)
-#define GCOV_TAG_OBJECT_SUMMARY ((gcov_unsigned_t)0xa1000000)
-#define GCOV_TAG_PROGRAM_SUMMARY ((gcov_unsigned_t)0xa3000000)
-#define GCOV_TAG_SUMMARY_LENGTH \
- (1 + GCOV_COUNTERS_SUMMABLE * (2 + 3 * 2))
-#define GCOV_TAG_MODULE_INFO ((gcov_unsigned_t)0xa4000000)
-#define GCOV_TAG_PMU_LOAD_LATENCY_INFO ((gcov_unsigned_t)0xa5000000)
-#define GCOV_TAG_PMU_LOAD_LATENCY_LENGTH(filename) \
- (gcov_string_length (filename) + 12 + 2)
-#define GCOV_TAG_PMU_BRANCH_MISPREDICT_INFO ((gcov_unsigned_t)0xa7000000)
-#define GCOV_TAG_PMU_BRANCH_MISPREDICT_LENGTH(filename) \
- (gcov_string_length (filename) + 5 + 2)
-#define GCOV_TAG_PMU_TOOL_HEADER ((gcov_unsigned_t)0xa9000000)
-
-/* Counters that are collected. */
-#define GCOV_COUNTER_ARCS 0 /* Arc transitions. */
-#define GCOV_COUNTERS_SUMMABLE 1 /* Counters which can be
- summaried. */
-#define GCOV_FIRST_VALUE_COUNTER 1 /* The first of counters used for value
- profiling. They must form a consecutive
- interval and their order must match
- the order of HIST_TYPEs in
- value-prof.h. */
-#define GCOV_COUNTER_V_INTERVAL 1 /* Histogram of value inside an interval. */
-#define GCOV_COUNTER_V_POW2 2 /* Histogram of exact power2 logarithm
- of a value. */
-#define GCOV_COUNTER_V_SINGLE 3 /* The most common value of expression. */
-#define GCOV_COUNTER_V_DELTA 4 /* The most common difference between
- consecutive values of expression. */
-
-#define GCOV_COUNTER_V_INDIR 5 /* The most common indirect address */
-#define GCOV_COUNTER_AVERAGE 6 /* Compute average value passed to the
- counter. */
-#define GCOV_COUNTER_IOR 7 /* IOR of the all values passed to
- counter. */
-#define GCOV_COUNTER_ICALL_TOPNV 8 /* Top N value tracking for indirect calls */
-#define GCOV_LAST_VALUE_COUNTER 8 /* The last of counters used for value
- profiling. */
-#define GCOV_COUNTER_DIRECT_CALL 9 /* Direct call counts. */
-#define GCOV_COUNTER_REUSE_DIST 10 /* Reuse distance measure. */
-#define GCOV_COUNTERS 11
-
-/* Number of counters used for value profiling. */
-#define GCOV_N_VALUE_COUNTERS \
- (GCOV_LAST_VALUE_COUNTER - GCOV_FIRST_VALUE_COUNTER + 1)
-
- /* A list of human readable names of the counters */
-#define GCOV_COUNTER_NAMES {"arcs", "interval", "pow2", "single", \
- "delta","indirect_call", "average", "ior", \
- "indirect_call_topn", "direct_call", \
- "reuse_distance"}
-
-#define GCOV_ICALL_TOPN_VAL 2 /* Track two hottest callees */
-#define GCOV_ICALL_TOPN_NCOUNTS 9 /* The number of counter entries per icall callsite */
- /* Names of merge functions for counters. */
-#define GCOV_MERGE_FUNCTIONS {"__gcov_merge_add", \
- "__gcov_merge_add", \
- "__gcov_merge_add", \
- "__gcov_merge_single", \
- "__gcov_merge_delta", \
- "__gcov_merge_single", \
- "__gcov_merge_add", \
- "__gcov_merge_ior", \
- "__gcov_merge_icall_topn",\
- "__gcov_merge_dc",\
- "__gcov_merge_reusedist" }
-
-/* Convert a counter index to a tag. */
-#define GCOV_TAG_FOR_COUNTER(COUNT) \
- (GCOV_TAG_COUNTER_BASE + ((gcov_unsigned_t)(COUNT) << 17))
-/* Convert a tag to a counter. */
-#define GCOV_COUNTER_FOR_TAG(TAG) \
- ((unsigned)(((TAG) - GCOV_TAG_COUNTER_BASE) >> 17))
-/* Check whether a tag is a counter tag. */
-#define GCOV_TAG_IS_COUNTER(TAG) \
- (!((TAG) & 0xFFFF) && GCOV_COUNTER_FOR_TAG (TAG) < GCOV_COUNTERS)
-
-/* The tag level mask has 1's in the position of the inner levels, &
- the lsb of the current level, and zero on the current and outer
- levels. */
-#define GCOV_TAG_MASK(TAG) (((TAG) - 1) ^ (TAG))
-
-/* Return nonzero if SUB is an immediate subtag of TAG. */
-#define GCOV_TAG_IS_SUBTAG(TAG,SUB) \
- (GCOV_TAG_MASK (TAG) >> 8 == GCOV_TAG_MASK (SUB) \
- && !(((SUB) ^ (TAG)) & ~GCOV_TAG_MASK(TAG)))
-
-/* Return nonzero if SUB is at a sublevel to TAG. */
-#define GCOV_TAG_IS_SUBLEVEL(TAG,SUB) \
- (GCOV_TAG_MASK (TAG) > GCOV_TAG_MASK (SUB))
-
-/* Basic block flags. */
-#define GCOV_BLOCK_UNEXPECTED (1 << 1)
-
-/* Arc flags. */
-#define GCOV_ARC_ON_TREE (1 << 0)
-#define GCOV_ARC_FAKE (1 << 1)
-#define GCOV_ARC_FALLTHROUGH (1 << 2)
-
-/* Structured records. */
-
-/* Cumulative counter data. */
-struct gcov_ctr_summary
-{
- gcov_unsigned_t num; /* number of counters. */
- gcov_unsigned_t runs; /* number of program runs */
- gcov_type sum_all; /* sum of all counters accumulated. */
- gcov_type run_max; /* maximum value on a single run. */
- gcov_type sum_max; /* sum of individual run max values. */
-};
-
-/* Object & program summary record. */
-struct gcov_summary
-{
- gcov_unsigned_t checksum; /* checksum of program */
- struct gcov_ctr_summary ctrs[GCOV_COUNTERS_SUMMABLE];
-};
-
-#define GCOV_MODULE_UNKNOWN_LANG 0
-#define GCOV_MODULE_C_LANG 1
-#define GCOV_MODULE_CPP_LANG 2
-#define GCOV_MODULE_FORT_LANG 3
-
-#define GCOV_MODULE_ASM_STMTS (1 << 16)
-#define GCOV_MODULE_LANG_MASK 0xffff
-
-enum print_newline {no_newline, add_newline};
-
-/* Source module info. The data structure is used in
- both runtime and profile-use phase. Make sure to allocate
- enough space for the variable length member. */
-struct gcov_module_info
-{
- gcov_unsigned_t ident;
- gcov_unsigned_t is_primary; /* this is overloaded to mean two things:
- (1) means FDO/LIPO in instrumented binary.
- (2) means IS_PRIMARY in persistent file or
- memory copy used in profile-use. */
- gcov_unsigned_t is_exported;
- gcov_unsigned_t lang; /* lower 16 bits encode the language, and the upper
- 16 bits enocde other attributes, such as whether
- any assembler is present in the source, etc. */
- char *da_filename;
- char *source_filename;
- gcov_unsigned_t num_quote_paths;
- gcov_unsigned_t num_bracket_paths;
- gcov_unsigned_t num_cpp_defines;
- gcov_unsigned_t num_cpp_includes;
- gcov_unsigned_t num_cl_args;
- char *string_array[1];
-};
-
-extern struct gcov_module_info **module_infos;
-extern unsigned primary_module_id;
-#define PRIMARY_MODULE_EXPORTED \
- (module_infos[0]->is_exported \
- && !((module_infos[0]->lang & GCOV_MODULE_ASM_STMTS) \
- && flag_ripa_disallow_asm_modules))
-
-/* Information about the hardware performance monitoring unit. */
-struct gcov_pmu_info
-{
- const char *pmu_profile_filename; /* pmu profile filename */
- const char *pmu_tool; /* canonical pmu tool options */
- gcov_unsigned_t pmu_top_n_address; /* how many top addresses to symbolize */
-};
-
-/* Information about the PMU tool header. */
-typedef struct gcov_pmu_tool_header {
- char *host_cpu;
- char *hostname;
- char *kernel_version;
- char *column_header;
- char *column_description;
- char *full_header;
-} gcov_pmu_tool_header_t;
-
-/* Available only for PMUs which support PEBS or IBS using pfmon
- tool. If any field here is changed, the length computation in
- GCOV_TAG_PMU_LOAD_LATENCY_LENGTH must be updated as well. All
- percentages are multiplied by 100 to make them out of 10000 and
- only integer part is kept. */
-typedef struct gcov_pmu_load_latency_info
-{
- gcov_unsigned_t counts; /* raw count of samples */
- gcov_unsigned_t self; /* per 10k of total samples */
- gcov_unsigned_t cum; /* per 10k cumulative weight */
- gcov_unsigned_t lt_10; /* per 10k with latency <= 10 cycles */
- gcov_unsigned_t lt_32; /* per 10k with latency <= 32 cycles */
- gcov_unsigned_t lt_64; /* per 10k with latency <= 64 cycles */
- gcov_unsigned_t lt_256; /* per 10k with latency <= 256 cycles */
- gcov_unsigned_t lt_1024; /* per 10k with latency <= 1024 cycles */
- gcov_unsigned_t gt_1024; /* per 10k with latency > 1024 cycles */
- gcov_unsigned_t wself; /* weighted average cost of this miss in cycles */
- gcov_type code_addr; /* the actual miss address (pc+1 for Intel) */
- gcov_unsigned_t line; /* line number corresponding to this miss */
- gcov_unsigned_t discriminator; /* discriminator information for this miss */
- char *filename; /* filename corresponding to this miss */
-} gcov_pmu_ll_info_t;
-
-/* This structure is used during runtime as well as in gcov. */
-typedef struct load_latency_infos
-{
- /* An array describing the total number of load latency fields. */
- gcov_pmu_ll_info_t **ll_array;
- /* The total number of entries in the load latency array. */
- unsigned ll_count;
- /* The total number of entries currently allocated in the array.
- Used for bookkeeping. */
- unsigned alloc_ll_count;
- /* PMU tool header */
- gcov_pmu_tool_header_t *pmu_tool_header;
-} ll_infos_t;
-
-/* Available only for PMUs which support PEBS or IBS using pfmon
- tool. If any field here is changed, the length computation in
- GCOV_TAG_PMU_BR_MISPREDICT_LENGTH must be updated as well. All
- percentages are multiplied by 100 to make them out of 10000 and
- only integer part is kept. */
-typedef struct gcov_pmu_branch_mispredict_info
-{
- gcov_unsigned_t counts; /* raw count of samples */
- gcov_unsigned_t self; /* per 10k of total samples */
- gcov_unsigned_t cum; /* per 10k cumulative weight */
- gcov_type code_addr; /* the actual mispredict address */
- gcov_unsigned_t line; /* line number corresponding to this event */
- gcov_unsigned_t discriminator; /* discriminator for this event */
- char *filename; /* filename corresponding to this event */
-} gcov_pmu_brm_info_t;
-
-/* This structure is used during runtime as well as in gcov. */
-typedef struct branch_mispredict_infos
-{
- /* An array describing the total number of mispredict entries. */
- gcov_pmu_brm_info_t **brm_array;
- /* The total number of entries in the above array. */
- unsigned brm_count;
- /* The total number of entries currently allocated in the array.
- Used for bookkeeping. */
- unsigned alloc_brm_count;
- /* PMU tool header */
- gcov_pmu_tool_header_t *pmu_tool_header;
-} brm_infos_t;
-
-/* Structures embedded in coveraged program. The structures generated
- by write_profile must match these. */
-
-#if IN_LIBGCOV
-/* Information about a single function. This uses the trailing array
- idiom. The number of counters is determined from the counter_mask
- in gcov_info. We hold an array of function info, so have to
- explicitly calculate the correct array stride. */
-
-struct gcov_fn_info
-{
- gcov_unsigned_t ident; /* unique ident of function */
- gcov_unsigned_t lineno_checksum; /* function lineo_checksum */
- gcov_unsigned_t cfg_checksum; /* function cfg checksum */
- gcov_unsigned_t dc_offset; /* direct call offset */
- unsigned n_ctrs[0]; /* instrumented counters */
-};
-
-/* Type of function used to merge counters. */
-typedef void (*gcov_merge_fn) (gcov_type *, gcov_unsigned_t);
-
-/* Information about counters. */
-struct gcov_ctr_info
-{
- gcov_unsigned_t num; /* number of counters. */
- gcov_type *values; /* their values. */
- gcov_merge_fn merge; /* The function used to merge them. */
-};
-
-/* Information about a single object file. */
-struct gcov_info
-{
- gcov_unsigned_t version; /* expected version number */
- struct gcov_module_info *mod_info; /* addtional module info. */
- struct gcov_info *next; /* link to next, used by libgcov */
-
- gcov_unsigned_t stamp; /* uniquifying time stamp */
- const char *filename; /* output file name */
- gcov_unsigned_t eof_pos; /* end position of profile data */
- unsigned n_functions; /* number of functions */
- const struct gcov_fn_info *functions; /* table of functions */
-
- unsigned ctr_mask; /* mask of counters instrumented. */
- struct gcov_ctr_info counts[0]; /* count data. The number of bits
- set in the ctr_mask field
- determines how big this array
- is. */
-};
-
-/* Information about a single imported module. */
-struct dyn_imp_mod
-{
- const struct gcov_info *imp_mod;
- double weight;
-};
-
-/* Register a new object file module. */
-extern void __gcov_init (struct gcov_info *) ATTRIBUTE_HIDDEN;
-
-/* Called before fork, to avoid double counting. */
-extern void __gcov_flush (void) ATTRIBUTE_HIDDEN;
-
-/* The merge function that just sums the counters. */
-extern void __gcov_merge_add (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function to choose the most common value. */
-extern void __gcov_merge_single (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function to choose the most common difference between
- consecutive values. */
-extern void __gcov_merge_delta (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function that just ors the counters together. */
-extern void __gcov_merge_ior (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function used for direct call counters. */
-extern void __gcov_merge_dc (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function used for reuse distance counters. */
-extern void __gcov_merge_reusedist (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The merge function used for indirect call counters. */
-extern void __gcov_merge_icall_topn (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;
-
-/* The profiler functions. */
-extern void __gcov_interval_profiler (gcov_type *, gcov_type, int, unsigned);
-extern void __gcov_pow2_profiler (gcov_type *, gcov_type);
-extern void __gcov_one_value_profiler (gcov_type *, gcov_type);
-extern void __gcov_indirect_call_profiler (gcov_type *, gcov_type, void *, void *);
-extern void __gcov_indirect_call_topn_profiler (void *, void *, gcov_unsigned_t) ATTRIBUTE_HIDDEN;
-extern void __gcov_direct_call_profiler (void *, void *, gcov_unsigned_t) ATTRIBUTE_HIDDEN;
-extern void __gcov_average_profiler (gcov_type *, gcov_type);
-extern void __gcov_ior_profiler (gcov_type *, gcov_type);
-extern void __gcov_sort_n_vals (gcov_type *value_array, int n);
-
-/* Initialize/start/stop/dump performance monitoring unit (PMU) profile */
-void __gcov_init_pmu_profiler (struct gcov_pmu_info *) ATTRIBUTE_HIDDEN;
-void __gcov_start_pmu_profiler (void) ATTRIBUTE_HIDDEN;
-void __gcov_stop_pmu_profiler (void) ATTRIBUTE_HIDDEN;
-void __gcov_end_pmu_profiler (int gcda_error) ATTRIBUTE_HIDDEN;
-
-#ifndef inhibit_libc
-/* The wrappers around some library functions.. */
-extern pid_t __gcov_fork (void) ATTRIBUTE_HIDDEN;
-extern int __gcov_execl (const char *, char *, ...) ATTRIBUTE_HIDDEN;
-extern int __gcov_execlp (const char *, char *, ...) ATTRIBUTE_HIDDEN;
-extern int __gcov_execle (const char *, char *, ...) ATTRIBUTE_HIDDEN;
-extern int __gcov_execv (const char *, char *const []) ATTRIBUTE_HIDDEN;
-extern int __gcov_execvp (const char *, char *const []) ATTRIBUTE_HIDDEN;
-extern int __gcov_execve (const char *, char *const [], char *const [])
- ATTRIBUTE_HIDDEN;
-#endif
-
-#endif /* IN_LIBGCOV */
-
-#if IN_LIBGCOV >= 0
-
-/* Optimum number of gcov_unsigned_t's read from or written to disk. */
-#define GCOV_BLOCK_SIZE (1 << 10)
-
-struct gcov_var
-{
- _GCOV_FILE *file;
- gcov_position_t start; /* Position of first byte of block */
- unsigned offset; /* Read/write position within the block. */
- unsigned length; /* Read limit in the block. */
- unsigned overread; /* Number of words overread. */
- int error; /* < 0 overflow, > 0 disk error. */
- int mode; /* < 0 writing, > 0 reading */
-#if IN_LIBGCOV
- /* Holds one block plus 4 bytes, thus all coverage reads & writes
- fit within this buffer and we always can transfer GCOV_BLOCK_SIZE
- to and from the disk. libgcov never backtracks and only writes 4
- or 8 byte objects. */
- gcov_unsigned_t buffer[GCOV_BLOCK_SIZE + 1];
-#else
- int endian; /* Swap endianness. */
- /* Holds a variable length block, as the compiler can write
- strings and needs to backtrack. */
- size_t alloc;
- gcov_unsigned_t *buffer;
-#endif
-};
-
-/* In kernel mode, move gcov_var definition to gcov-io.c
- to avoid dulipcate definitions. */
-#ifndef __GCOV_KERNEL__
-GCOV_LINKAGE struct gcov_var gcov_var ATTRIBUTE_HIDDEN;
-#else
-extern struct gcov_var gcov_var;
-#endif
-
-/* Functions for reading and writing gcov files. In libgcov you can
- open the file for reading then writing. Elsewhere you can open the
- file either for reading or for writing. When reading a file you may
- use the gcov_read_* functions, gcov_sync, gcov_position, &
- gcov_error. When writing a file you may use the gcov_write
- functions, gcov_seek & gcov_error. When a file is to be rewritten
- you use the functions for reading, then gcov_rewrite then the
- functions for writing. Your file may become corrupted if you break
- these invariants. */
-#if IN_LIBGCOV
-GCOV_LINKAGE int gcov_open (const char */*name*/) ATTRIBUTE_HIDDEN;
-#else
-GCOV_LINKAGE int gcov_open (const char */*name*/, int /*direction*/);
-GCOV_LINKAGE int gcov_magic (gcov_unsigned_t, gcov_unsigned_t);
-#endif
-GCOV_LINKAGE int gcov_close (void) ATTRIBUTE_HIDDEN;
-
-/* Available everywhere. */
-static gcov_position_t gcov_position (void);
-static int gcov_is_error (void);
-
-GCOV_LINKAGE const char *gcov_read_string (void) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE gcov_unsigned_t gcov_read_unsigned (void) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE gcov_type gcov_read_counter (void) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void gcov_read_summary (struct gcov_summary *) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE char *gcov_canonical_filename (char *filename) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void
-gcov_read_pmu_load_latency_info (gcov_pmu_ll_info_t *ll_info,
- gcov_unsigned_t len) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void
-gcov_read_pmu_branch_mispredict_info (gcov_pmu_brm_info_t *brm_info,
- gcov_unsigned_t len) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void
-gcov_read_pmu_tool_header (gcov_pmu_tool_header_t *tool_header,
- gcov_unsigned_t len) ATTRIBUTE_HIDDEN;
-#ifndef __GCOV_KERNEL__
-GCOV_LINKAGE float convert_unsigned_to_pct (
- const unsigned number) ATTRIBUTE_HIDDEN;
-#endif /* __GCOV_KERNEL__ */
-
-#if !IN_LIBGCOV && IN_GCOV != 1
-GCOV_LINKAGE void gcov_read_module_info (struct gcov_module_info *mod_info,
- gcov_unsigned_t len) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void print_load_latency_line (FILE *fp,
- const gcov_pmu_ll_info_t *ll_info,
- const enum print_newline);
-GCOV_LINKAGE void
-print_branch_mispredict_line (FILE *fp, const gcov_pmu_brm_info_t *brm_info,
- const enum print_newline);
-GCOV_LINKAGE void print_pmu_tool_header (FILE *fp,
- gcov_pmu_tool_header_t *tool_header,
- const enum print_newline);
-#endif
-
-#if IN_GCOV != 1
-GCOV_LINKAGE void destroy_pmu_tool_header (gcov_pmu_tool_header_t *tool_header)
- ATTRIBUTE_HIDDEN;
-#endif
-
-#if IN_LIBGCOV
-/* Available only in libgcov */
-GCOV_LINKAGE void gcov_write_counter (gcov_type) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void gcov_write_tag_length (gcov_unsigned_t, gcov_unsigned_t)
- ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void gcov_write_summary (gcov_unsigned_t /*tag*/,
- const struct gcov_summary *)
- ATTRIBUTE_HIDDEN;
-
-GCOV_LINKAGE void gcov_write_module_infos (struct gcov_info *mod_info)
- ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE const struct dyn_imp_mod **
-gcov_get_sorted_import_module_array (struct gcov_info *mod_info, unsigned *len)
- ATTRIBUTE_HIDDEN;
-static void gcov_rewrite (void);
-GCOV_LINKAGE void gcov_seek (gcov_position_t /*position*/) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void gcov_truncate (void) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE gcov_unsigned_t gcov_string_length (const char *) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE unsigned gcov_gcda_file_size (struct gcov_info *);
-#else
-/* Available outside libgcov */
-GCOV_LINKAGE void gcov_sync (gcov_position_t /*base*/,
- gcov_unsigned_t /*length */);
-#endif
-
-#if !IN_GCOV
-/* Available outside gcov */
-GCOV_LINKAGE void gcov_write_unsigned (gcov_unsigned_t) ATTRIBUTE_HIDDEN;
-GCOV_LINKAGE void gcov_write_string (const char *) ATTRIBUTE_HIDDEN;
-#endif
-
-#if !IN_GCOV && !IN_LIBGCOV
-/* Available only in compiler */
-GCOV_LINKAGE gcov_position_t gcov_write_tag (gcov_unsigned_t);
-GCOV_LINKAGE void gcov_write_length (gcov_position_t /*position*/);
-#endif
-
-#if IN_GCOV > 0
-/* Available in gcov */
-GCOV_LINKAGE time_t gcov_time (void);
-#endif
-
-/* Save the current position in the gcov file. */
-
-static inline gcov_position_t
-gcov_position (void)
-{
- return gcov_var.start + gcov_var.offset;
-}
-
-/* Return nonzero if the error flag is set. */
-
-static inline int
-gcov_is_error (void)
-{
- return gcov_var.file ? gcov_var.error : 1;
-}
-
-#if IN_LIBGCOV
-/* Move to beginning of file and initialize for writing. */
-
-static inline void
-gcov_rewrite (void)
-{
- gcc_assert (gcov_var.mode > 0);
- gcov_var.mode = -1;
- gcov_var.start = 0;
- gcov_var.offset = 0;
- _GCOV_fseek (gcov_var.file, 0L, SEEK_SET);
-}
-#endif
-
-#endif /* IN_LIBGCOV >= 0 */
-
-#endif /* GCC_GCOV_IO_H */
diff --git a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-iov.h b/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-iov.h
deleted file mode 100644
index 3c8c9ef..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/gcov-src/gcov-iov.h
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Generated automatically by the program `build/gcov-iov'
- from `4.6 (4 6) and prerelease (p)'. */
-
-#define GCOV_VERSION ((gcov_unsigned_t)0x34303670) /* 406p */
diff --git a/lib/gcc/mipsel-linux-android/4.6/gcov-src/libgcov.c b/lib/gcc/mipsel-linux-android/4.6/gcov-src/libgcov.c
deleted file mode 100644
index 613c1f4..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/gcov-src/libgcov.c
+++ /dev/null
@@ -1,1989 +0,0 @@
-/* Routines required for instrumenting a program. */
-/* Compile this one with gcc. */
-/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010
- Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* Assume compiling for Linux Kernel if __KERNEL__ is defined. */
-#ifdef __KERNEL__
- /* Define MACROs to be used by kernel compilation. */
-# define L_gcov
-# define L_gcov_interval_profiler
-# define L_gcov_pow2_profiler
-# define L_gcov_one_value_profiler
-# define L_gcov_indirect_call_profiler
-# define L_gcov_average_profiler
-# define L_gcov_ior_profiler
-
-# define HAVE_CC_TLS 0
-# define __GCOV_KERNEL__
-
-# define IN_LIBGCOV 1
-# define IN_GCOV 0
-#else /* __KERNEL__ */
-#include "tconfig.h"
-#include "tsystem.h"
-#include "coretypes.h"
-#include "tm.h"
-#endif /* __KERNEL__ */
-
-#if 1
-#define THREAD_PREFIX __thread
-#else
-#define THREAD_PREFIX
-#endif
-
-#ifndef __GCOV_KERNEL__
-#if defined(inhibit_libc)
-#define IN_LIBGCOV (-1)
-#else
-#undef NULL /* Avoid errors if stdio.h and our stddef.h mismatch. */
-#include <stdio.h>
-#define IN_LIBGCOV 1
-#if defined(L_gcov)
-#define GCOV_LINKAGE /* nothing */
-#endif
-#endif
-#endif /* __GCOV_KERNEL__ */
-
-#include "gcov-io.h"
-
-#if defined(inhibit_libc)
-/* If libc and its header files are not available, provide dummy functions. */
-
-#ifdef L_gcov
-void __gcov_init (struct gcov_info *p __attribute__ ((unused))) {}
-void __gcov_flush (void) {}
-#endif
-
-#ifdef L_gcov_merge_add
-void __gcov_merge_add (gcov_type *counters __attribute__ ((unused)),
- unsigned n_counters __attribute__ ((unused))) {}
-#endif
-
-#ifdef L_gcov_merge_single
-void __gcov_merge_single (gcov_type *counters __attribute__ ((unused)),
- unsigned n_counters __attribute__ ((unused))) {}
-#endif
-
-#ifdef L_gcov_merge_delta
-void __gcov_merge_delta (gcov_type *counters __attribute__ ((unused)),
- unsigned n_counters __attribute__ ((unused))) {}
-#endif
-
-#else
-
-#ifndef __GCOV_KERNEL__
-#include <string.h>
-#if GCOV_LOCKED
-#include <fcntl.h>
-#include <errno.h>
-#include <sys/stat.h>
-#endif
-#endif /* __GCOV_KERNEL__ */
-
-#ifdef L_gcov
-#include "gcov-io.c"
-
-/* Utility function for outputing errors. */
-static int
-gcov_error (const char *fmt, ...)
-{
- int ret;
- va_list argp;
- va_start (argp, fmt);
-#ifdef __GCOV_KERNEL__
- ret = vprintk (fmt, argp);
-#else
- ret = vfprintf (stderr, fmt, argp);
-#endif
- va_end (argp);
- return ret;
-}
-
-#ifndef __GCOV_KERNEL__
-/* Emitted in coverage.c. */
-extern char * __gcov_pmu_profile_filename;
-extern char * __gcov_pmu_profile_options;
-extern gcov_unsigned_t __gcov_pmu_top_n_address;
-
-/* Sampling rate. */
-extern gcov_unsigned_t __gcov_sampling_rate;
-static int gcov_sampling_rate_initialized = 0;
-void __gcov_set_sampling_rate (unsigned int rate);
-
-/* Set sampling rate to RATE. */
-
-void __gcov_set_sampling_rate (unsigned int rate)
-{
- __gcov_sampling_rate = rate;
-}
-
-/* Per thread sample counter. */
-THREAD_PREFIX gcov_unsigned_t __gcov_sample_counter = 0;
-
-/* Chain of per-object gcov structures. */
-extern struct gcov_info *__gcov_list;
-
-/* Size of the longest file name. */
-static size_t gcov_max_filename = 0;
-#endif /* __GCOV_KERNEL__ */
-
-/* Unique identifier assigned to each module (object file). */
-static gcov_unsigned_t gcov_cur_module_id = 0;
-
-/* Pointer to the direct-call counters (per call-site counters).
- Initialized by the caller. */
-THREAD_PREFIX gcov_type *__gcov_direct_call_counters ATTRIBUTE_HIDDEN;
-
-/* Direct call callee address. */
-THREAD_PREFIX void *__gcov_direct_call_callee ATTRIBUTE_HIDDEN;
-
-/* Pointer to the indirect-call counters (per call-site counters).
- Initialized by the caller. */
-THREAD_PREFIX gcov_type *__gcov_indirect_call_topn_counters ATTRIBUTE_HIDDEN;
-
-/* Indirect call callee address. */
-THREAD_PREFIX void *__gcov_indirect_call_topn_callee ATTRIBUTE_HIDDEN;
-
-/* A program checksum allows us to distinguish program data for an
- object file included in multiple programs. */
-static gcov_unsigned_t gcov_crc32;
-
-/* Dynamic call graph build and form module groups. */
-void __gcov_compute_module_groups (void) ATTRIBUTE_HIDDEN;
-void __gcov_finalize_dyn_callgraph (void) ATTRIBUTE_HIDDEN;
-
-/* Profile summary for the gdca file, used in sanity check? */
-static struct gcov_summary all;
-
-/* Profile summary for this program in current exeuction. */
-static struct gcov_summary this_program;
-
-/* Profile summary for this object in current execuction. */
-static struct gcov_summary this_object;
-
-/* Merged profile summary for this program. */
-static struct gcov_summary program;
-
-/* Merged profile summary for this object. */
-static struct gcov_summary object;
-
-/* Record the position of summary info. */
-static gcov_position_t summary_pos = 0;
-
-/* Record the postion of eof. */
-static gcov_position_t eof_pos = 0;
-
-/* Number of chars in prefix to be stripped. */
-static int gcov_prefix_strip = 0;
-
-/* The length of path prefix. */
-static size_t prefix_length = 0;
-
-/* gi_filename is current object filename.
- gi_filename_up points to the stripped filename. */
-static char *gi_filename, *gi_filename_up;
-
-static int gcov_open_by_filename (char * gi_filename);
-static int gcov_exit_init (void);
-static void gcov_dump_one_gcov (struct gcov_info *gi_ptr);
-
-/* Make sure path component of the given FILENAME exists, create
- missing directories. FILENAME must be writable.
- Returns zero on success, or -1 if an error occurred. */
-
-static int
-create_file_directory (char *filename)
-{
-#if !defined(TARGET_POSIX_IO) && !defined(_WIN32)
- (void) filename;
- return -1;
-#else
- char *s;
-
- s = filename;
-
- if (HAS_DRIVE_SPEC(s))
- s += 2;
- if (IS_DIR_SEPARATOR(*s))
- ++s;
- for (; *s != '\0'; s++)
- if (IS_DIR_SEPARATOR(*s))
- {
- char sep = *s;
- *s = '\0';
-
- /* Try to make directory if it doesn't already exist. */
- if (access (filename, F_OK) == -1
-#ifdef TARGET_POSIX_IO
- && mkdir (filename, 0755) == -1
-#else
- && mkdir (filename) == -1
-#endif
- /* The directory might have been made by another process. */
- && errno != EEXIST)
- {
- fprintf (stderr, "profiling:%s:Cannot create directory\n",
- filename);
- *s = sep;
- return -1;
- };
-
- *s = sep;
- };
- return 0;
-#endif
-}
-
-/* Open a file with the specified name. */
-
-static int
-gcov_open_by_filename (char * gi_filename)
-{
- if (!gcov_open (gi_filename))
- {
- /* Open failed likely due to missed directory.
- Create directory and retry to open file. */
- if (create_file_directory (gi_filename))
- {
- gcov_error ("profiling:%s:Skip\n", gi_filename);
- return -1;
- }
- if (!gcov_open (gi_filename))
- {
- gcov_error ("profiling:%s:Cannot open\n", gi_filename);
- return -1;
- }
- }
- return 0;
-}
-
-
-/* Determine whether a counter is active. */
-
-static inline int
-gcov_counter_active (const struct gcov_info *info, unsigned int type)
-{
- return (1 << type) & info->ctr_mask;
-}
-
-#ifndef __GCOV_KERNEL__
-/* Check if VERSION of the info block PTR matches libgcov one.
- Return 1 on success, or zero in case of versions mismatch.
- If FILENAME is not NULL, its value used for reporting purposes
- instead of value from the info block. */
-
-static int
-gcov_version (struct gcov_info *ptr __attribute__ ((unused)),
- gcov_unsigned_t version, const char *filename)
-{
- if (version != GCOV_VERSION)
- {
- char v[4], e[4];
-
- GCOV_UNSIGNED2STRING (v, version);
- GCOV_UNSIGNED2STRING (e, GCOV_VERSION);
-
- if (filename)
- gcov_error ("profiling:%s:Version mismatch - expected %.4s got %.4s\n",
- filename, e, v);
- else
- gcov_error ("profiling:Version mismatch - expected %.4s got %.4s\n", e, v);
- return 0;
- }
- return 1;
-}
-
-#define GCOV_GET_FILENAME gcov_strip_leading_dirs
-
-/* Strip GCOV_PREFIX_STRIP levels of leading '/' from FILENAME and
- put the result into GI_FILENAME_UP. */
-
-static void
-gcov_strip_leading_dirs (int prefix_length, int gcov_prefix_strip,
- const char *filename, char *gi_filename_up)
-{
- /* Avoid to add multiple drive letters into combined path. */
- if (prefix_length != 0 && HAS_DRIVE_SPEC(filename))
- filename += 2;
-
- /* Build relocated filename, stripping off leading
- directories from the initial filename if requested. */
- if (gcov_prefix_strip > 0)
- {
- int level = 0;
- const char *s = filename;
- if (IS_DIR_SEPARATOR(*s))
- ++s;
-
- /* Skip selected directory levels. */
- for (; (*s != '\0') && (level < gcov_prefix_strip); s++)
- if (IS_DIR_SEPARATOR(*s))
- {
- filename = s;
- level++;
- }
- }
- /* Update complete filename with stripped original. */
- if (prefix_length != 0 && !IS_DIR_SEPARATOR (*filename))
- {
- /* If prefix is given, add directory separator. */
- strcpy (gi_filename_up, "/");
- strcpy (gi_filename_up + 1, filename);
- }
- else
- strcpy (gi_filename_up, filename);
-}
-
-/* This function allocates the space to store current file name. */
-
-static void
-gcov_alloc_filename (void)
-{
- /* Get file name relocation prefix. Non-absolute values are ignored. */
- char *gcov_prefix = 0;
-
- prefix_length = 0;
- gcov_prefix_strip = 0;
-
- {
- /* Check if the level of dirs to strip off specified. */
- char *tmp = getenv ("GCOV_PREFIX_STRIP");
- if (tmp)
- {
- gcov_prefix_strip = atoi (tmp);
- /* Do not consider negative values. */
- if (gcov_prefix_strip < 0)
- gcov_prefix_strip = 0;
- }
- }
- /* Get file name relocation prefix. Non-absolute values are ignored. */
- gcov_prefix = getenv ("GCOV_PREFIX");
- if (gcov_prefix)
- {
- prefix_length = strlen(gcov_prefix);
-
- /* Remove an unnecessary trailing '/' */
- if (IS_DIR_SEPARATOR (gcov_prefix[prefix_length - 1]))
- prefix_length--;
- }
- else
- prefix_length = 0;
-
- /* If no prefix was specified and a prefix stip, then we assume
- relative. */
- if (gcov_prefix_strip != 0 && prefix_length == 0)
- {
- gcov_prefix = ".";
- prefix_length = 1;
- }
-
- /* Allocate and initialize the filename scratch space. */
- gi_filename = (char *) malloc (prefix_length + gcov_max_filename + 2);
- if (prefix_length)
- memcpy (gi_filename, gcov_prefix, prefix_length);
-
- gi_filename_up = gi_filename + prefix_length;
-}
-
-/* Stop the pmu profiler and dump pmu profile info into the global file. */
-
-static void
-pmu_profile_stop (void)
-{
- const char *pmu_profile_filename = __gcov_pmu_profile_filename;
- const char *pmu_options = __gcov_pmu_profile_options;
- size_t filename_length;
- int gcda_error;
-
- if (!pmu_profile_filename || !pmu_options)
- return;
-
- __gcov_stop_pmu_profiler ();
-
- filename_length = strlen (pmu_profile_filename);
- if (filename_length > gcov_max_filename)
- gcov_max_filename = filename_length;
- /* Allocate and initialize the filename scratch space. */
- gcov_alloc_filename ();
- GCOV_GET_FILENAME (prefix_length, gcov_prefix_strip, pmu_profile_filename,
- gi_filename_up);
- /* Open the gcda file for writing. We don't support merge yet. */
- gcda_error = gcov_open_by_filename (gi_filename);
- __gcov_end_pmu_profiler (gcda_error);
- if ((gcda_error = gcov_close ()))
- gcov_error (gcda_error < 0 ? "pmu_profile_stop:%s:Overflow writing\n" :
- "pmu_profile_stop:%s:Error writing\n",
- gi_filename);
-}
-
-/* Sort N entries in VALUE_ARRAY in descending order.
- Each entry in VALUE_ARRAY has two values. The sorting
- is based on the second value. */
-
-GCOV_LINKAGE void
-gcov_sort_n_vals (gcov_type *value_array, int n)
-{
- int j, k;
- for (j = 2; j < n; j += 2)
- {
- gcov_type cur_ent[2];
- cur_ent[0] = value_array[j];
- cur_ent[1] = value_array[j + 1];
- k = j - 2;
- while (k >= 0 && value_array[k + 1] < cur_ent[1])
- {
- value_array[k + 2] = value_array[k];
- value_array[k + 3] = value_array[k+1];
- k -= 2;
- }
- value_array[k + 2] = cur_ent[0];
- value_array[k + 3] = cur_ent[1];
- }
-}
-
-/* Sort the profile counters for all indirect call sites. Counters
- for each call site are allocated in array COUNTERS. */
-
-static void
-gcov_sort_icall_topn_counter (const struct gcov_ctr_info *counters)
-{
- int i;
- gcov_type *values;
- int n = counters->num;
- gcc_assert (!(n % GCOV_ICALL_TOPN_NCOUNTS));
-
- values = counters->values;
-
- for (i = 0; i < n; i += GCOV_ICALL_TOPN_NCOUNTS)
- {
- gcov_type *value_array = &values[i + 1];
- gcov_sort_n_vals (value_array, GCOV_ICALL_TOPN_NCOUNTS - 1);
- }
-}
-
-/* Write imported files (auxiliary modules) for primary module GI_PTR
- into file GI_FILENAME. */
-
-static void
-gcov_write_import_file (char *gi_filename, struct gcov_info *gi_ptr)
-{
- char *gi_imports_filename;
- const char *gcov_suffix;
- FILE *imports_file;
- size_t prefix_length, suffix_length;
-
- gcov_suffix = getenv ("GCOV_IMPORTS_SUFFIX");
- if (!gcov_suffix || !strlen (gcov_suffix))
- gcov_suffix = ".imports";
- suffix_length = strlen (gcov_suffix);
- prefix_length = strlen (gi_filename);
- gi_imports_filename = (char *) alloca (prefix_length + suffix_length + 1);
- memset (gi_imports_filename, 0, prefix_length + suffix_length + 1);
- memcpy (gi_imports_filename, gi_filename, prefix_length);
- memcpy (gi_imports_filename + prefix_length, gcov_suffix, suffix_length);
- imports_file = fopen (gi_imports_filename, "w");
- if (imports_file)
- {
- const struct dyn_imp_mod **imp_mods;
- unsigned i, imp_len;
- imp_mods = gcov_get_sorted_import_module_array (gi_ptr, &imp_len);
- if (imp_mods)
- {
- for (i = 0; i < imp_len; i++)
- {
- fprintf (imports_file, "%s\n",
- imp_mods[i]->imp_mod->mod_info->source_filename);
- fprintf (imports_file, "%s%s\n",
- imp_mods[i]->imp_mod->mod_info->da_filename, GCOV_DATA_SUFFIX);
- }
- free (imp_mods);
- }
- fclose (imports_file);
- }
-}
-
-static void
-gcov_dump_module_info (void)
-{
- struct gcov_info *gi_ptr;
-
- __gcov_compute_module_groups ();
-
- /* Now write out module group info. */
- for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
- {
- int error;
-
- GCOV_GET_FILENAME (prefix_length, gcov_prefix_strip, gi_ptr->filename,
- gi_filename_up);
- error = gcov_open_by_filename (gi_filename);
- if (error != 0)
- continue;
-
- /* Overwrite the zero word at the of the file. */
- gcov_rewrite ();
- gcov_seek (gi_ptr->eof_pos);
-
- gcov_write_module_infos (gi_ptr);
- gcov_truncate ();
-
- if ((error = gcov_close ()))
- gcov_error (error < 0 ? "profiling:%s:Overflow writing\n" :
- "profiling:%s:Error writing\n",
- gi_filename);
- gcov_write_import_file (gi_filename, gi_ptr);
- }
- __gcov_finalize_dyn_callgraph ();
-}
-
-/* Dump the coverage counts. We merge with existing counts when
- possible, to avoid growing the .da files ad infinitum. We use this
- program's checksum to make sure we only accumulate whole program
- statistics to the correct summary. An object file might be embedded
- in two separate programs, and we must keep the two program
- summaries separate. */
-
-static void
-gcov_exit (void)
-{
- struct gcov_info *gi_ptr;
- int dump_module_info;
-
- /* Stop and write the PMU profile data into the global file. */
- pmu_profile_stop ();
-
- dump_module_info = gcov_exit_init ();
-
- for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
- gcov_dump_one_gcov (gi_ptr);
-
- if (dump_module_info)
- gcov_dump_module_info ();
-
- free (gi_filename);
-}
-
-/* Add a new object file onto the bb chain. Invoked automatically
- when running an object file's global ctors. */
-
-void
-__gcov_init (struct gcov_info *info)
-{
- if (!gcov_sampling_rate_initialized)
- {
- const char* env_value_str = getenv ("GCOV_SAMPLING_RATE");
- if (env_value_str)
- {
- int env_value_int = atoi(env_value_str);
- if (env_value_int >= 1)
- __gcov_sampling_rate = env_value_int;
- }
- gcov_sampling_rate_initialized = 1;
- }
-
- if (!info->version)
- return;
-
- if (gcov_version (info, info->version, 0))
- {
- const char *ptr = info->filename;
- gcov_unsigned_t crc32 = gcov_crc32;
- size_t filename_length = strlen (info->filename);
- struct gcov_pmu_info pmu_info;
-
- /* Refresh the longest file name information. */
- if (filename_length > gcov_max_filename)
- gcov_max_filename = filename_length;
-
- /* Initialize the pmu profiler. */
- pmu_info.pmu_profile_filename = __gcov_pmu_profile_filename;
- pmu_info.pmu_tool = __gcov_pmu_profile_options;
- pmu_info.pmu_top_n_address = __gcov_pmu_top_n_address;
- __gcov_init_pmu_profiler (&pmu_info);
- if (pmu_info.pmu_profile_filename)
- {
- /* Refresh the longest file name information. */
- filename_length = strlen (pmu_info.pmu_profile_filename);
- if (filename_length > gcov_max_filename)
- gcov_max_filename = filename_length;
- }
-
- /* Assign the module ID (starting at 1). */
- info->mod_info->ident = (++gcov_cur_module_id);
- gcc_assert (EXTRACT_MODULE_ID_FROM_GLOBAL_ID (GEN_FUNC_GLOBAL_ID (
- info->mod_info->ident, 0))
- == info->mod_info->ident);
-
- do
- {
- unsigned ix;
- gcov_unsigned_t value = *ptr << 24;
-
- for (ix = 8; ix--; value <<= 1)
- {
- gcov_unsigned_t feedback;
-
- feedback = (value ^ crc32) & 0x80000000 ? 0x04c11db7 : 0;
- crc32 <<= 1;
- crc32 ^= feedback;
- }
- } while (*ptr++);
-
- gcov_crc32 = crc32;
-
- if (!__gcov_list)
- {
- atexit (gcov_exit);
- /* Start pmu profiler. */
- __gcov_start_pmu_profiler ();
- }
-
- info->next = __gcov_list;
- __gcov_list = info;
- }
- info->version = 0;
-}
-
-/* Called before fork or exec - write out profile information gathered so
- far and reset it to zero. This avoids duplication or loss of the
- profile information gathered so far. */
-
-void
-__gcov_flush (void)
-{
- const struct gcov_info *gi_ptr;
-
- __gcov_stop_pmu_profiler ();
- gcov_exit ();
- for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
- {
- unsigned t_ix;
- const struct gcov_ctr_info *ci_ptr;
-
- for (t_ix = 0, ci_ptr = gi_ptr->counts; t_ix != GCOV_COUNTERS; t_ix++)
- if (gcov_counter_active (gi_ptr, t_ix))
- {
- memset (ci_ptr->values, 0, sizeof (gcov_type) * ci_ptr->num);
- ci_ptr++;
- }
- }
- __gcov_start_pmu_profiler ();
-}
-
-#else /* __GCOV_KERNEL__ */
-
-#define GCOV_GET_FILENAME gcov_get_filename
-
-/* Copy the filename to the buffer. */
-
-static inline void
-gcov_get_filename (int prefix_length __attribute__ ((unused)),
- int gcov_prefix_strip __attribute__ ((unused)),
- const char *filename, char *gi_filename_up)
-{
- strcpy (gi_filename_up, filename);
-}
-
-/* Sort the profile counters for all indirect call sites. Counters
- for each call site are allocated in array COUNTERS. */
-
-static void
-gcov_sort_icall_topn_counter (const struct gcov_ctr_info *counters)
-{
- /* Empty */
-}
-
-/* Reserves a buffer to store the name of the file being processed. */
-static char _kernel_gi_filename[520];
-
-/* This function allocates the space to store current file name. */
-
-static void
-gcov_alloc_filename (void)
-{
- prefix_length = 0;
- gcov_prefix_strip = 0;
- gi_filename = _kernel_gi_filename;
- gi_filename_up = _kernel_gi_filename;
-}
-
-#endif /* __GCOV_KERNEL__ */
-
-/* Determine number of active counters in gcov_info INFO,
- the counter arrays are stored in VALUES if the coming
- value of VALUES !=0. If FLAG_SORT_ICALL_TOPN_COUNTER !=0,
- the icall_topn_counter in INFO will be sorted.
- Return: the number of active counter types. */
-
-static unsigned int
-gcov_counter_array (const struct gcov_info *info,
- gcov_type *values[GCOV_COUNTERS],
- int flag_sort_icall_topn_counter)
-{
- unsigned int i;
- unsigned int result = 0;
-
- for (i = 0; i < GCOV_COUNTERS; i++) {
- if (gcov_counter_active (info, i))
- {
- if (values)
- values[result] = info->counts[result].values;
- if (flag_sort_icall_topn_counter &&
- (i == GCOV_COUNTER_ICALL_TOPNV))
- gcov_sort_icall_topn_counter (&info->counts[result]);
- result++;
- }
- }
- return result;
-}
-
-/* Compute object summary recored in gcov_info INFO. The result is
- stored in OBJ_SUM. Note that the caller is responsible for
- zeroing out OBJ_SUM, otherwise the summary is accumulated. */
-
-static void
-gcov_object_summary (struct gcov_info *info,
- struct gcov_summary *obj_sum)
-{
- const struct gcov_ctr_info *ci_ptr;
- struct gcov_ctr_summary *cs_ptr;
- gcov_unsigned_t c_num;
- unsigned t_ix;
-
- /* Totals for this object file. */
- ci_ptr = info->counts;
- for (t_ix = 0; t_ix < GCOV_COUNTERS_SUMMABLE; t_ix++)
- {
- if (!gcov_counter_active (info, t_ix))
- continue;
-
- cs_ptr = &(obj_sum->ctrs[t_ix]);
- cs_ptr->num += ci_ptr->num;
- for (c_num = 0; c_num < ci_ptr->num; c_num++)
- {
- cs_ptr->sum_all += ci_ptr->values[c_num];
- if (cs_ptr->run_max < ci_ptr->values[c_num])
- cs_ptr->run_max = ci_ptr->values[c_num];
- }
- ci_ptr++;
- }
-}
-
-/* Merge with existing gcda file in the same directory to avoid
- excessive growthe of the files. */
-
-static int
-gcov_merge_gcda_file (struct gcov_info *info,
- gcov_type *values[GCOV_COUNTERS],
- unsigned fi_stride)
-{
- struct gcov_ctr_summary *cs_obj, *cs_tobj, *cs_prg, *cs_tprg, *cs_all;
- unsigned t_ix, f_ix;
-
-#ifndef __GCOV_KERNEL__
- const struct gcov_fn_info *fi_ptr;
- unsigned c_ix, n_counts;
- int error = 0;
- gcov_unsigned_t tag, length;
-
- eof_pos = 0;
- summary_pos = 0;
-
- tag = gcov_read_unsigned ();
- if (tag)
- {
- /* Merge data from file. */
- if (tag != GCOV_DATA_MAGIC)
- {
- gcov_error ("profiling:%s:Not a gcov data file\n", gi_filename);
- goto read_fatal;
- }
- length = gcov_read_unsigned ();
- if (!gcov_version (info, length, gi_filename))
- goto read_fatal;
-
- length = gcov_read_unsigned ();
- if (length != info->stamp)
- /* Read from a different compilation. Overwrite the file. */
- goto rewrite;
-
- /* Merge execution counts for each function. */
- for (f_ix = 0; f_ix < info->n_functions; f_ix++)
- {
- fi_ptr = (const struct gcov_fn_info *)
- ((const char *) info->functions + f_ix * fi_stride);
- tag = gcov_read_unsigned ();
- length = gcov_read_unsigned ();
-
- /* Check function. */
- if (tag != GCOV_TAG_FUNCTION
- || length != GCOV_TAG_FUNCTION_LENGTH
- || gcov_read_unsigned () != fi_ptr->ident
- || gcov_read_unsigned () != fi_ptr->lineno_checksum
- || gcov_read_unsigned () != fi_ptr->cfg_checksum)
- goto read_mismatch;
-
- c_ix = 0;
- for (t_ix = 0; t_ix < GCOV_COUNTERS; t_ix++)
- {
- gcov_merge_fn merge;
-
- if (!((1 << t_ix) & info->ctr_mask))
- continue;
-
- n_counts = fi_ptr->n_ctrs[c_ix];
- merge = info->counts[c_ix].merge;
-
- tag = gcov_read_unsigned ();
- length = gcov_read_unsigned ();
- if (tag != GCOV_TAG_FOR_COUNTER (t_ix)
- || length != GCOV_TAG_COUNTER_LENGTH (n_counts))
- goto read_mismatch;
- (*merge) (values[c_ix], n_counts);
- values[c_ix] += n_counts;
- c_ix++;
- }
- if ((error = gcov_is_error ()))
- goto read_error;
- }
-
- f_ix = ~0u;
- /* Check program & object summary. */
- while (1)
- {
- int is_program;
-
- eof_pos = gcov_position ();
- tag = gcov_read_unsigned ();
- if (!tag)
- break;
-
- length = gcov_read_unsigned ();
- is_program = tag == GCOV_TAG_PROGRAM_SUMMARY;
- if (length != GCOV_TAG_SUMMARY_LENGTH
- || (!is_program && tag != GCOV_TAG_OBJECT_SUMMARY))
- goto read_mismatch;
- gcov_read_summary (is_program ? &program : &object);
- if ((error = gcov_is_error ()))
- goto read_error;
- if (is_program && program.checksum == gcov_crc32)
- {
- summary_pos = eof_pos;
- goto rewrite;
- }
- }
- }
-
- goto rewrite;
-
-read_error:;
- gcov_error (error < 0 ? "profiling:%s:Overflow merging\n"
- : "profiling:%s:Error merging\n", gi_filename);
- goto read_fatal;
-
-#endif /* __GCOV_KERNEL__ */
-
- goto rewrite;
-
-read_mismatch:;
- gcov_error ("profiling:%s:Merge mismatch for %s\n", gi_filename,
- f_ix + 1 ? "function" : "summaries");
- goto read_fatal; /* work-around the compiler warning */
-
-read_fatal:;
- gcov_close ();
- return 1;
-
-rewrite:;
- gcov_rewrite ();
- if (!summary_pos)
- memset (&program, 0, sizeof (program));
-
- /* Merge the summaries. */
- f_ix = ~0u;
- for (t_ix = 0; t_ix < GCOV_COUNTERS_SUMMABLE; t_ix++)
- {
- cs_obj = &object.ctrs[t_ix];
- cs_tobj = &this_object.ctrs[t_ix];
- cs_prg = &program.ctrs[t_ix];
- cs_tprg = &this_program.ctrs[t_ix];
- cs_all = &all.ctrs[t_ix];
-
- if ((1 << t_ix) & info->ctr_mask)
- {
- if (!cs_obj->runs++)
- cs_obj->num = cs_tobj->num;
- else if (cs_obj->num != cs_tobj->num)
- goto read_mismatch;
- cs_obj->sum_all += cs_tobj->sum_all;
- if (cs_obj->run_max < cs_tobj->run_max)
- cs_obj->run_max = cs_tobj->run_max;
- cs_obj->sum_max += cs_tobj->run_max;
-
- if (!cs_prg->runs++)
- cs_prg->num = cs_tprg->num;
- else if (cs_prg->num != cs_tprg->num)
- goto read_mismatch;
- cs_prg->sum_all += cs_tprg->sum_all;
- if (cs_prg->run_max < cs_tprg->run_max)
- cs_prg->run_max = cs_tprg->run_max;
- cs_prg->sum_max += cs_tprg->run_max;
- }
- else if (cs_obj->num || cs_prg->num)
- goto read_mismatch;
-
- if (!cs_all->runs && cs_prg->runs)
- memcpy (cs_all, cs_prg, sizeof (*cs_all));
- else if (!all.checksum
- && (!GCOV_LOCKED || cs_all->runs == cs_prg->runs)
- && memcmp (cs_all, cs_prg, sizeof (*cs_all)))
- {
- gcov_error ("profiling:%s:Invocation mismatch - "
- "some data files may have been removed%s",
- gi_filename, GCOV_LOCKED
- ? "" : " or concurrent update without locking support");
- all.checksum = ~0u;
- }
- }
-
- return 0;
-}
-
-/* Calculate the function_info stride. This depends on the
- number of counter types being measured.
- NUM_COUNTER_TYPES is number of counter types recorded.
- Return: the number of bytes for accessing next fn_info
- (aligned to gcov_fn_info). */
-
-static unsigned
-gcov_compute_fi_stride (unsigned num_counter_types)
-{
- unsigned fi_stride;
-
- fi_stride = offsetof (struct gcov_fn_info, n_ctrs) +
- num_counter_types * sizeof (unsigned);
- if (__alignof__ (struct gcov_fn_info) > sizeof (unsigned))
- {
- fi_stride += __alignof__ (struct gcov_fn_info) - 1;
- fi_stride &= ~(__alignof__ (struct gcov_fn_info) - 1);
- }
- return fi_stride;
-}
-
-/* This function returns the size of gcda file to be written. Note
- the size is in units of gcov_type. */
-
-GCOV_LINKAGE unsigned
-gcov_gcda_file_size (struct gcov_info *gi_ptr)
-{
- unsigned size;
- const struct gcov_fn_info *fi_ptr;
- unsigned f_ix, t_ix, c_ix;
- unsigned n_counts;
- unsigned fi_stride;
- gcov_type *values[GCOV_COUNTERS];
-
- c_ix = gcov_counter_array (gi_ptr, values, 0);
- fi_stride = gcov_compute_fi_stride (c_ix);
-
- /* GCOV_DATA_MAGIC, GCOV_VERSION and time_stamp. */
- size = 3;
-
- /* size for each function. */
- for (f_ix = 0; f_ix < gi_ptr->n_functions; f_ix++)
- {
- fi_ptr = (const struct gcov_fn_info *)
- ((const char *) gi_ptr->functions + f_ix * fi_stride);
-
- size += 2 /* tag_length itself */
- + GCOV_TAG_FUNCTION_LENGTH; /* ident, lineno_cksum, cfg_cksm */
-
- c_ix = 0;
- for (t_ix = 0; t_ix < GCOV_COUNTERS; t_ix++)
- {
- if (!((1 << t_ix) & gi_ptr->ctr_mask))
- continue;
-
- n_counts = fi_ptr->n_ctrs[c_ix];
- size += 2 + GCOV_TAG_COUNTER_LENGTH (n_counts);
- c_ix++;
- }
- }
-
- /* Object summary. */
- size += 2 + GCOV_TAG_SUMMARY_LENGTH;
-
- /* Program summary. */
- size += 2 + GCOV_TAG_SUMMARY_LENGTH;
-
- size += 1;
-
- return size*4;
-}
-
-/* Write profile data (including summary and module grouping information,
- if available, to file. */
-
-static void
-gcov_write_gcda_file (struct gcov_info *gi_ptr,
- unsigned fi_stride)
-{
- const struct gcov_fn_info *fi_ptr;
- gcov_type *values[GCOV_COUNTERS];
- unsigned t_ix, c_ix, f_ix, n_counts;
- int error = 0;
-
- /* Write out the data. */
- gcov_write_tag_length (GCOV_DATA_MAGIC, GCOV_VERSION);
- gcov_write_unsigned (gi_ptr->stamp);
-
- gcov_counter_array (gi_ptr, values, 0);
-
- /* Write execution counts for each function. */
- for (f_ix = 0; f_ix < gi_ptr->n_functions; f_ix++)
- {
- fi_ptr = (const struct gcov_fn_info *)
- ((const char *) gi_ptr->functions + f_ix * fi_stride);
-
- /* Announce function. */
- gcov_write_tag_length (GCOV_TAG_FUNCTION, GCOV_TAG_FUNCTION_LENGTH);
- gcov_write_unsigned (fi_ptr->ident);
- gcov_write_unsigned (fi_ptr->lineno_checksum);
- gcov_write_unsigned (fi_ptr->cfg_checksum);
-
- c_ix = 0;
- for (t_ix = 0; t_ix < GCOV_COUNTERS; t_ix++)
- {
- gcov_type *c_ptr;
-
- if (!((1 << t_ix) & gi_ptr->ctr_mask))
- continue;
-
- n_counts = fi_ptr->n_ctrs[c_ix];
-
- gcov_write_tag_length (GCOV_TAG_FOR_COUNTER (t_ix),
- GCOV_TAG_COUNTER_LENGTH (n_counts));
- c_ptr = values[c_ix];
- while (n_counts--)
- gcov_write_counter (*c_ptr++);
-
- values[c_ix] = c_ptr;
- c_ix++;
- }
- }
-
- /* Object file summary. */
- gcov_write_summary (GCOV_TAG_OBJECT_SUMMARY, &object);
-
- /* Generate whole program statistics. */
- program.checksum = gcov_crc32;
- if (eof_pos)
- gcov_seek (eof_pos);
- gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, &program);
- if (!summary_pos)
- gcov_write_unsigned (0);
-
- /* TODO: there is a problem here -- if there are other program
- summary data after the matching one, setting eof_pos to this
- position means that the module info table will overwrite the
- those other program summary. It also means a mismatch error
- may occur at the next merge if no matching program summary is
- found before the module info data. */
- if (!summary_pos)
- gi_ptr->eof_pos = gcov_position () - 1;
- else
- gi_ptr->eof_pos = gcov_position ();
-
- if ((error = gcov_close ()))
- gcov_error (error < 0 ?
- "profiling:%s:Overflow writing\n" :
- "profiling:%s:Error writing\n",
- gi_filename);
-}
-
-/* Do some preparation work before calling the actual dumping
- routine.
- Return: 1 when module grouping info needs to be dumped,
- 0 otherwise. */
-
-static int
-gcov_exit_init (void)
-{
- struct gcov_info *gi_ptr;
- int dump_module_info = 0;
-
- dump_module_info = 0;
- gcov_prefix_strip = 0;
-
- memset (&all, 0, sizeof (all));
-
- /* Find the totals for this execution. */
- memset (&this_program, 0, sizeof (this_program));
- for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
- {
- gcov_object_summary (gi_ptr, &this_program);
-
- /* The IS_PRIMARY field is overloaded to indicate if this module
- is FDO/LIPO. */
- dump_module_info |= gi_ptr->mod_info->is_primary;
- }
-
- gcov_alloc_filename ();
-
- return dump_module_info;
-}
-
-/* Dump one entry in the gcov_info list (for one object). */
-
-static void
-gcov_dump_one_gcov (struct gcov_info *gi_ptr)
-{
- gcov_type *values[GCOV_COUNTERS];
- unsigned fi_stride;
- unsigned c_ix;
- int ret;
-
- memset (&this_object, 0, sizeof (this_object));
- memset (&object, 0, sizeof (object));
-
- gcov_object_summary (gi_ptr, &this_object);
-
- c_ix = gcov_counter_array (gi_ptr, values, 1);
-
- fi_stride = gcov_compute_fi_stride (c_ix);
-
- GCOV_GET_FILENAME (prefix_length, gcov_prefix_strip, gi_ptr->filename,
- gi_filename_up);
-
- if (gcov_open_by_filename (gi_filename) == -1)
- return;
-
- /* Now merge this file. */
- ret = gcov_merge_gcda_file (gi_ptr, values, fi_stride);
- if (ret != 0 ) return;
-
- gcov_write_gcda_file (gi_ptr, fi_stride);
-}
-
-#endif /* L_gcov */
-
-#ifdef L_gcov_merge_add
-/* The profile merging function that just adds the counters. It is given
- an array COUNTERS of N_COUNTERS old counters and it reads the same number
- of counters from the gcov file. */
-void
-__gcov_merge_add (gcov_type *counters, unsigned n_counters)
-{
- for (; n_counters; counters++, n_counters--)
- *counters += gcov_read_counter ();
-}
-#endif /* L_gcov_merge_add */
-
-#ifdef L_gcov_merge_ior
-/* The profile merging function that just adds the counters. It is given
- an array COUNTERS of N_COUNTERS old counters and it reads the same number
- of counters from the gcov file. */
-void
-__gcov_merge_ior (gcov_type *counters, unsigned n_counters)
-{
- for (; n_counters; counters++, n_counters--)
- *counters |= gcov_read_counter ();
-}
-#endif
-
-#ifdef L_gcov_merge_reusedist
-
-/* Return the weighted arithmetic mean of two values. */
-
-static gcov_type
-__gcov_weighted_mean2 (gcov_type value1, gcov_type count1,
- gcov_type value2, gcov_type count2)
-{
- if (count1 + count2 == 0)
- return 0;
- else
- return (value1 * count1 + value2 * count2) / (count1 + count2);
-}
-
-void
-__gcov_merge_reusedist (gcov_type *counters, unsigned n_counters)
-{
- unsigned i;
-
- gcc_assert(!(n_counters % 4));
-
- for (i = 0; i < n_counters; i += 4)
- {
- /* Decode current values. */
- gcov_type c_mean_dist = counters[i];
- gcov_type c_mean_size = counters[i+1];
- gcov_type c_count = counters[i+2];
- gcov_type c_dist_x_size = counters[i+3];
-
- /* Read and decode values in file. */
- gcov_type f_mean_dist = __gcov_read_counter ();
- gcov_type f_mean_size = __gcov_read_counter ();
- gcov_type f_count = __gcov_read_counter ();
- gcov_type f_dist_x_size = __gcov_read_counter ();
-
- /* Compute aggregates. */
- gcov_type a_mean_dist = __gcov_weighted_mean2 (
- f_mean_dist, f_count, c_mean_dist, c_count);
- gcov_type a_mean_size = __gcov_weighted_mean2 (
- f_mean_size, f_count, c_mean_size, c_count);
- gcov_type a_count = f_count + c_count;
- gcov_type a_dist_x_size = f_dist_x_size + c_dist_x_size;
-
- /* Encode back into counters. */
- counters[i] = a_mean_dist;
- counters[i+1] = a_mean_size;
- counters[i+2] = a_count;
- counters[i+3] = a_dist_x_size;
- }
-}
-
-#endif
-
-#ifdef L_gcov_merge_dc
-
-/* Returns 1 if the function global id GID is not valid. */
-
-static int
-__gcov_is_gid_insane (gcov_type gid)
-{
- if (EXTRACT_MODULE_ID_FROM_GLOBAL_ID (gid) == 0
- || EXTRACT_FUNC_ID_FROM_GLOBAL_ID (gid) == 0)
- return 1;
- return 0;
-}
-
-/* The profile merging function used for merging direct call counts
- This function is given array COUNTERS of N_COUNTERS old counters and it
- reads the same number of counters from the gcov file. */
-
-void
-__gcov_merge_dc (gcov_type *counters, unsigned n_counters)
-{
- unsigned i;
-
- gcc_assert (!(n_counters % 2));
- for (i = 0; i < n_counters; i += 2)
- {
- gcov_type global_id = gcov_read_counter ();
- gcov_type call_count = gcov_read_counter ();
-
- /* Note that global id counter may never have been set if no calls were
- made from this call-site. */
- if (counters[i] && global_id)
- {
- /* TODO race condition requires us do the following correction. */
- if (__gcov_is_gid_insane (counters[i]))
- counters[i] = global_id;
- else if (__gcov_is_gid_insane (global_id))
- global_id = counters[i];
-
- gcc_assert (counters[i] == global_id);
- }
- else if (global_id)
- counters[i] = global_id;
-
- counters[i + 1] += call_count;
-
- /* Reset. */
- if (__gcov_is_gid_insane (counters[i]))
- counters[i] = counters[i + 1] = 0;
-
- /* Assert that the invariant (global_id == 0) <==> (call_count == 0)
- holds true after merging. */
- if (counters[i] == 0)
- counters[i+1] = 0;
- if (counters[i + 1] == 0)
- counters[i] = 0;
- }
-}
-#endif
-
-#ifdef L_gcov_merge_icall_topn
-/* The profile merging function used for merging indirect call counts
- This function is given array COUNTERS of N_COUNTERS old counters and it
- reads the same number of counters from the gcov file. */
-
-void
-__gcov_merge_icall_topn (gcov_type *counters, unsigned n_counters)
-{
- unsigned i, j, k, m;
-
- gcc_assert (!(n_counters % GCOV_ICALL_TOPN_NCOUNTS));
- for (i = 0; i < n_counters; i += GCOV_ICALL_TOPN_NCOUNTS)
- {
- gcov_type *value_array = &counters[i + 1];
- unsigned tmp_size = 2 * (GCOV_ICALL_TOPN_NCOUNTS - 1);
- gcov_type *tmp_array
- = (gcov_type *) alloca (tmp_size * sizeof (gcov_type));
-
- for (j = 0; j < tmp_size; j++)
- tmp_array[j] = 0;
-
- for (j = 0; j < GCOV_ICALL_TOPN_NCOUNTS - 1; j += 2)
- {
- tmp_array[j] = value_array[j];
- tmp_array[j + 1] = value_array [j + 1];
- }
-
- /* Skip the number_of_eviction entry. */
- gcov_read_counter ();
- for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2)
- {
- int found = 0;
- gcov_type global_id = gcov_read_counter ();
- gcov_type call_count = gcov_read_counter ();
- for (m = 0; m < j; m += 2)
- {
- if (tmp_array[m] == global_id)
- {
- found = 1;
- tmp_array[m + 1] += call_count;
- break;
- }
- }
- if (!found)
- {
- tmp_array[j] = global_id;
- tmp_array[j + 1] = call_count;
- j += 2;
- }
- }
- /* Now sort the temp array */
- gcov_sort_n_vals (tmp_array, j);
-
- /* Now copy back the top half of the temp array */
- for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2)
- {
- value_array[k] = tmp_array[k];
- value_array[k + 1] = tmp_array[k + 1];
- }
- }
-}
-#endif
-
-
-#ifdef L_gcov_merge_single
-/* The profile merging function for choosing the most common value.
- It is given an array COUNTERS of N_COUNTERS old counters and it
- reads the same number of counters from the gcov file. The counters
- are split into 3-tuples where the members of the tuple have
- meanings:
-
- -- the stored candidate on the most common value of the measured entity
- -- counter
- -- total number of evaluations of the value */
-void
-__gcov_merge_single (gcov_type *counters, unsigned n_counters)
-{
- unsigned i, n_measures;
- gcov_type value, counter, all;
-
- gcc_assert (!(n_counters % 3));
- n_measures = n_counters / 3;
- for (i = 0; i < n_measures; i++, counters += 3)
- {
- value = gcov_read_counter ();
- counter = gcov_read_counter ();
- all = gcov_read_counter ();
-
- if (counters[0] == value)
- counters[1] += counter;
- else if (counter > counters[1])
- {
- counters[0] = value;
- counters[1] = counter - counters[1];
- }
- else
- counters[1] -= counter;
- counters[2] += all;
- }
-}
-#endif /* L_gcov_merge_single */
-
-#ifdef L_gcov_merge_delta
-/* The profile merging function for choosing the most common
- difference between two consecutive evaluations of the value. It is
- given an array COUNTERS of N_COUNTERS old counters and it reads the
- same number of counters from the gcov file. The counters are split
- into 4-tuples where the members of the tuple have meanings:
-
- -- the last value of the measured entity
- -- the stored candidate on the most common difference
- -- counter
- -- total number of evaluations of the value */
-void
-__gcov_merge_delta (gcov_type *counters, unsigned n_counters)
-{
- unsigned i, n_measures;
- gcov_type value, counter, all;
-
- gcc_assert (!(n_counters % 4));
- n_measures = n_counters / 4;
- for (i = 0; i < n_measures; i++, counters += 4)
- {
- /* last = */ gcov_read_counter ();
- value = gcov_read_counter ();
- counter = gcov_read_counter ();
- all = gcov_read_counter ();
-
- if (counters[1] == value)
- counters[2] += counter;
- else if (counter > counters[2])
- {
- counters[1] = value;
- counters[2] = counter - counters[2];
- }
- else
- counters[2] -= counter;
- counters[3] += all;
- }
-}
-#endif /* L_gcov_merge_delta */
-
-#ifdef L_gcov_interval_profiler
-/* If VALUE is in interval <START, START + STEPS - 1>, then increases the
- corresponding counter in COUNTERS. If the VALUE is above or below
- the interval, COUNTERS[STEPS] or COUNTERS[STEPS + 1] is increased
- instead. */
-
-void
-__gcov_interval_profiler (gcov_type *counters, gcov_type value,
- int start, unsigned steps)
-{
- gcov_type delta = value - start;
- if (delta < 0)
- counters[steps + 1]++;
- else if (delta >= steps)
- counters[steps]++;
- else
- counters[delta]++;
-}
-#endif
-
-#ifdef L_gcov_pow2_profiler
-/* If VALUE is a power of two, COUNTERS[1] is incremented. Otherwise
- COUNTERS[0] is incremented. */
-
-void
-__gcov_pow2_profiler (gcov_type *counters, gcov_type value)
-{
- if (value & (value - 1))
- counters[0]++;
- else
- counters[1]++;
-}
-#endif
-
-/* Tries to determine the most common value among its inputs. Checks if the
- value stored in COUNTERS[0] matches VALUE. If this is the case, COUNTERS[1]
- is incremented. If this is not the case and COUNTERS[1] is not zero,
- COUNTERS[1] is decremented. Otherwise COUNTERS[1] is set to one and
- VALUE is stored to COUNTERS[0]. This algorithm guarantees that if this
- function is called more than 50% of the time with one value, this value
- will be in COUNTERS[0] in the end.
-
- In any case, COUNTERS[2] is incremented. */
-
-static inline void
-__gcov_one_value_profiler_body (gcov_type *counters, gcov_type value)
-{
- if (value == counters[0])
- counters[1]++;
- else if (counters[1] == 0)
- {
- counters[1] = 1;
- counters[0] = value;
- }
- else
- counters[1]--;
- counters[2]++;
-}
-
-#ifdef L_gcov_indirect_call_topn_profiler
-/* Tries to keep track the most frequent N values in the counters where
- N is specified by parameter TOPN_VAL. To track top N values, 2*N counter
- entries are used.
- counter[0] --- the accumative count of the number of times one entry in
- in the counters gets evicted/replaced due to limited capacity.
- When this value reaches a threshold, the bottom N values are
- cleared.
- counter[1] through counter[2*N] records the top 2*N values collected so far.
- Each value is represented by two entries: count[2*i+1] is the ith value, and
- count[2*i+2] is the number of times the value is seen. */
-
-static void
-__gcov_topn_value_profiler_body (gcov_type *counters, gcov_type value,
- gcov_unsigned_t topn_val)
-{
- unsigned i, found = 0, have_zero_count = 0;
-
- gcov_type *entry;
- gcov_type *lfu_entry = &counters[1];
- gcov_type *value_array = &counters[1];
- gcov_type *num_eviction = &counters[0];
-
- /* There are 2*topn_val values tracked, each value takes two slots in the
- counter array */
- for ( i = 0; i < (topn_val << 2); i += 2)
- {
- entry = &value_array[i];
- if ( entry[0] == value)
- {
- entry[1]++ ;
- found = 1;
- break;
- }
- else if (entry[1] == 0)
- {
- lfu_entry = entry;
- have_zero_count = 1;
- }
- else if (entry[1] < lfu_entry[1])
- lfu_entry = entry;
- }
-
- if (found)
- return;
-
- /* lfu_entry is either an empty entry or an entry
- with lowest count, which will be evicted. */
- lfu_entry[0] = value;
- lfu_entry[1] = 1;
-
-#define GCOV_ICALL_COUNTER_CLEAR_THRESHOLD 3000
-
- /* Too many evictions -- time to clear bottom entries to
- avoid hot values bumping each other out. */
- if ( !have_zero_count
- && ++*num_eviction >= GCOV_ICALL_COUNTER_CLEAR_THRESHOLD)
- {
- unsigned i, j;
- gcov_type *p, minv;
- gcov_type* tmp_cnts
- = (gcov_type *)alloca (topn_val * sizeof(gcov_type));
-
- *num_eviction = 0;
-
- for ( i = 0; i < topn_val; i++ )
- tmp_cnts[i] = 0;
-
- /* Find the largest topn_val values from the group of
- 2*topn_val values and put them into tmp_cnts. */
-
- for ( i = 0; i < 2 * topn_val; i += 2 )
- {
- p = 0;
- for ( j = 0; j < topn_val; j++ )
- {
- if ( !p || tmp_cnts[j] < *p )
- p = &tmp_cnts[j];
- }
- if ( value_array[i + 1] > *p )
- *p = value_array[i + 1];
- }
-
- minv = tmp_cnts[0];
- for ( j = 1; j < topn_val; j++ )
- {
- if (tmp_cnts[j] < minv)
- minv = tmp_cnts[j];
- }
- /* Zero out low value entries */
- for ( i = 0; i < 2 * topn_val; i += 2 )
- {
- if (value_array[i + 1] < minv)
- {
- value_array[i] = 0;
- value_array[i + 1] = 0;
- }
- }
- }
-}
-#endif
-
-#ifdef L_gcov_one_value_profiler
-void
-__gcov_one_value_profiler (gcov_type *counters, gcov_type value)
-{
- __gcov_one_value_profiler_body (counters, value);
-}
-#endif
-
-#ifdef L_gcov_indirect_call_profiler
-
-/* By default, the C++ compiler will use function addresses in the
- vtable entries. Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero
- tells the compiler to use function descriptors instead. The value
- of this macro says how many words wide the descriptor is (normally 2),
- but it may be dependent on target flags. Since we do not have access
- to the target flags here we just check to see if it is set and use
- that to set VTABLE_USES_DESCRIPTORS to 0 or 1.
-
- It is assumed that the address of a function descriptor may be treated
- as a pointer to a function. */
-
-#ifdef TARGET_VTABLE_USES_DESCRIPTORS
-#define VTABLE_USES_DESCRIPTORS 1
-#else
-#define VTABLE_USES_DESCRIPTORS 0
-#endif
-
-/* Tries to determine the most common value among its inputs. */
-void
-__gcov_indirect_call_profiler (gcov_type* counter, gcov_type value,
- void* cur_func, void* callee_func)
-{
- /* If the C++ virtual tables contain function descriptors then one
- function may have multiple descriptors and we need to dereference
- the descriptors to see if they point to the same function. */
- if (cur_func == callee_func
- || (VTABLE_USES_DESCRIPTORS && callee_func
- && *(void **) cur_func == *(void **) callee_func))
- __gcov_one_value_profiler_body (counter, value);
-}
-#endif
-
-
-#ifdef L_gcov_indirect_call_topn_profiler
-extern THREAD_PREFIX gcov_type *__gcov_indirect_call_topn_counters ATTRIBUTE_HIDDEN;
-extern THREAD_PREFIX void *__gcov_indirect_call_topn_callee ATTRIBUTE_HIDDEN;
-#ifdef TARGET_VTABLE_USES_DESCRIPTORS
-#define VTABLE_USES_DESCRIPTORS 1
-#else
-#define VTABLE_USES_DESCRIPTORS 0
-#endif
-void
-__gcov_indirect_call_topn_profiler (void *cur_func,
- void *cur_module_gcov_info,
- gcov_unsigned_t cur_func_id)
-{
- void *callee_func = __gcov_indirect_call_topn_callee;
- gcov_type *counter = __gcov_indirect_call_topn_counters;
- /* If the C++ virtual tables contain function descriptors then one
- function may have multiple descriptors and we need to dereference
- the descriptors to see if they point to the same function. */
- if (cur_func == callee_func
- || (VTABLE_USES_DESCRIPTORS && callee_func
- && *(void **) cur_func == *(void **) callee_func))
- {
- gcov_type global_id
- = ((struct gcov_info *) cur_module_gcov_info)->mod_info->ident;
- global_id = GEN_FUNC_GLOBAL_ID (global_id, cur_func_id);
- __gcov_topn_value_profiler_body (counter, global_id, GCOV_ICALL_TOPN_VAL);
- __gcov_indirect_call_topn_callee = 0;
- }
-}
-
-#endif
-
-#ifdef L_gcov_direct_call_profiler
-extern THREAD_PREFIX gcov_type *__gcov_direct_call_counters ATTRIBUTE_HIDDEN;
-extern THREAD_PREFIX void *__gcov_direct_call_callee ATTRIBUTE_HIDDEN;
-/* Direct call profiler. */
-void
-__gcov_direct_call_profiler (void *cur_func,
- void *cur_module_gcov_info,
- gcov_unsigned_t cur_func_id)
-{
- if (cur_func == __gcov_direct_call_callee)
- {
- gcov_type global_id
- = ((struct gcov_info *) cur_module_gcov_info)->mod_info->ident;
- global_id = GEN_FUNC_GLOBAL_ID (global_id, cur_func_id);
- __gcov_direct_call_counters[0] = global_id;
- __gcov_direct_call_counters[1]++;
- __gcov_direct_call_callee = 0;
- }
-}
-#endif
-
-
-#ifdef L_gcov_average_profiler
-/* Increase corresponding COUNTER by VALUE. FIXME: Perhaps we want
- to saturate up. */
-
-void
-__gcov_average_profiler (gcov_type *counters, gcov_type value)
-{
- counters[0] += value;
- counters[1] ++;
-}
-#endif
-
-#ifdef L_gcov_ior_profiler
-/* Increase corresponding COUNTER by VALUE. FIXME: Perhaps we want
- to saturate up. */
-
-void
-__gcov_ior_profiler (gcov_type *counters, gcov_type value)
-{
- *counters |= value;
-}
-#endif
-
-#ifdef L_gcov_fork
-/* A wrapper for the fork function. Flushes the accumulated profiling data, so
- that they are not counted twice. */
-
-pid_t
-__gcov_fork (void)
-{
- __gcov_flush ();
- return fork ();
-}
-#endif
-
-#ifdef L_gcov_execl
-/* A wrapper for the execl function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execl (const char *path, char *arg, ...)
-{
- va_list ap, aq;
- unsigned i, length;
- char **args;
-
- __gcov_flush ();
-
- va_start (ap, arg);
- va_copy (aq, ap);
-
- length = 2;
- while (va_arg (ap, char *))
- length++;
- va_end (ap);
-
- args = (char **) alloca (length * sizeof (void *));
- args[0] = arg;
- for (i = 1; i < length; i++)
- args[i] = va_arg (aq, char *);
- va_end (aq);
-
- return execv (path, args);
-}
-#endif
-
-#ifdef L_gcov_execlp
-/* A wrapper for the execlp function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execlp (const char *path, char *arg, ...)
-{
- va_list ap, aq;
- unsigned i, length;
- char **args;
-
- __gcov_flush ();
-
- va_start (ap, arg);
- va_copy (aq, ap);
-
- length = 2;
- while (va_arg (ap, char *))
- length++;
- va_end (ap);
-
- args = (char **) alloca (length * sizeof (void *));
- args[0] = arg;
- for (i = 1; i < length; i++)
- args[i] = va_arg (aq, char *);
- va_end (aq);
-
- return execvp (path, args);
-}
-#endif
-
-#ifdef L_gcov_execle
-/* A wrapper for the execle function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execle (const char *path, char *arg, ...)
-{
- va_list ap, aq;
- unsigned i, length;
- char **args;
- char **envp;
-
- __gcov_flush ();
-
- va_start (ap, arg);
- va_copy (aq, ap);
-
- length = 2;
- while (va_arg (ap, char *))
- length++;
- va_end (ap);
-
- args = (char **) alloca (length * sizeof (void *));
- args[0] = arg;
- for (i = 1; i < length; i++)
- args[i] = va_arg (aq, char *);
- envp = va_arg (aq, char **);
- va_end (aq);
-
- return execve (path, args, envp);
-}
-#endif
-
-#ifdef L_gcov_execv
-/* A wrapper for the execv function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execv (const char *path, char *const argv[])
-{
- __gcov_flush ();
- return execv (path, argv);
-}
-#endif
-
-#ifdef L_gcov_execvp
-/* A wrapper for the execvp function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execvp (const char *path, char *const argv[])
-{
- __gcov_flush ();
- return execvp (path, argv);
-}
-#endif
-
-#ifdef L_gcov_execve
-/* A wrapper for the execve function. Flushes the accumulated profiling data, so
- that they are not lost. */
-
-int
-__gcov_execve (const char *path, char *const argv[], char *const envp[])
-{
- __gcov_flush ();
- return execve (path, argv, envp);
-}
-#endif
-
-#ifdef __GCOV_KERNEL__
-/*
- * Provide different implementation for the following functions:
- * __gcov_init
- * __gcov_exit
- *
- * Provide the following dummy merge functions:
- * __gcov_merge_add
- * __gcov_merge_single
- * __gcov_merge_delta
- * __gcov_merge_ior
- * __gcov_merge_icall_topn
- * __gcov_merge_dc
- * __gcov_merge_reusedist
- *
- * Reuse the following functions:
- * __gcov_interval_profiler()
- * __gcov_pow2_profiler()
- * __gcov_average_profiler()
- * __gcov_ior_profiler()
- * __gcov_one_value_profiler()
- * __gcov_indirect_call_profiler()
- * |-> __gcov_one_value_profiler_body()
- *
- * For LIPO: (TBD)
- * Change slightly for the following functions:
- * __gcov_merge_icall_topn
- * __gcov_merge_dc
- *
- * Reuse the following functions:
- * __gcov_direct_call_profiler()
- * __gcov_indirect_call_topn_profiler()
- * |-> __gcov_topn_value_profiler_body()
- *
- */
-
-/* Current virual gcda file. This is for kernel use only. */
-gcov_kernel_vfile *gcov_current_file;
-
-/* Set current virutal gcda file. It needs to be set before dumping
- profile data. */
-
-void
-gcov_set_vfile (gcov_kernel_vfile *file)
-{
- gcov_current_file = file;
-}
-
-/* Dump one entry in the gcov_info list (for one object) in kernel. */
-
-void
-gcov_kernel_dump_one_gcov (struct gcov_info *info)
-{
- gcc_assert (gcov_current_file);
-
- gcov_exit_init ();
-
- gcov_dump_one_gcov (info);
-}
-
-#define DUMMY_FUNC(func) \
-void func (gcov_type *counters __attribute__ ((unused)), \
- unsigned n_counters __attribute__ ((unused))) {}
-
-DUMMY_FUNC (__gcov_merge_add)
-EXPORT_SYMBOL (__gcov_merge_add);
-
-DUMMY_FUNC (__gcov_merge_single)
-EXPORT_SYMBOL (__gcov_merge_single);
-
-DUMMY_FUNC (__gcov_merge_delta)
-EXPORT_SYMBOL (__gcov_merge_delta);
-
-DUMMY_FUNC(__gcov_merge_ior)
-EXPORT_SYMBOL (__gcov_merge_ior);
-
-DUMMY_FUNC (__gcov_merge_icall_topn)
-EXPORT_SYMBOL (__gcov_merge_icall_topn);
-
-DUMMY_FUNC (__gcov_merge_dc)
-EXPORT_SYMBOL (__gcov_merge_dc);
-
-DUMMY_FUNC (__gcov_merge_reusedist)
-EXPORT_SYMBOL (__gcov_merge_reusedist);
-
-EXPORT_SYMBOL (__gcov_average_profiler);
-EXPORT_SYMBOL (__gcov_indirect_call_profiler);
-EXPORT_SYMBOL (__gcov_interval_profiler);
-EXPORT_SYMBOL (__gcov_ior_profiler);
-EXPORT_SYMBOL (__gcov_one_value_profiler);
-EXPORT_SYMBOL (__gcov_pow2_profiler);
-
-#endif /* __GCOV_KERNEL__ */
-
-#endif /* inhibit_libc */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/README b/lib/gcc/mipsel-linux-android/4.6/include-fixed/README
deleted file mode 100644
index 7086a77..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/README
+++ /dev/null
@@ -1,14 +0,0 @@
-This README file is copied into the directory for GCC-only header files
-when fixincludes is run by the makefile for GCC.
-
-Many of the files in this directory were automatically edited from the
-standard system header files by the fixincludes process. They are
-system-specific, and will not work on any other kind of system. They
-are also not part of GCC. The reason we have to do this is because
-GCC requires ANSI C headers and many vendors supply ANSI-incompatible
-headers.
-
-Because this is an automated process, sometimes headers get "fixed"
-that do not, strictly speaking, need a fix. As long as nothing is broken
-by the process, it is just an unfortunate collateral inconvenience.
-We would like to rectify it, if it is not "too inconvenient".
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/limits.h b/lib/gcc/mipsel-linux-android/4.6/include-fixed/limits.h
deleted file mode 100644
index a1c35e9..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/limits.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 1992, 1994, 1997, 1998 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* This administrivia gets added to the beginning of limits.h
- if the system has its own version of limits.h. */
-
-/* We use _GCC_LIMITS_H_ because we want this not to match
- any macros that the system's limits.h uses for its own purposes. */
-#ifndef _GCC_LIMITS_H_ /* Terminated in limity.h. */
-#define _GCC_LIMITS_H_
-
-#ifndef _LIBC_LIMITS_H_
-/* Use "..." so that we find syslimits.h only in this same directory. */
-#include "syslimits.h"
-#endif
-/* Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-#ifndef _LIMITS_H___
-#define _LIMITS_H___
-
-/* Number of bits in a `char'. */
-#undef CHAR_BIT
-#define CHAR_BIT __CHAR_BIT__
-
-/* Maximum length of a multibyte character. */
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 1
-#endif
-
-/* Minimum and maximum values a `signed char' can hold. */
-#undef SCHAR_MIN
-#define SCHAR_MIN (-SCHAR_MAX - 1)
-#undef SCHAR_MAX
-#define SCHAR_MAX __SCHAR_MAX__
-
-/* Maximum value an `unsigned char' can hold. (Minimum is 0). */
-#undef UCHAR_MAX
-#if __SCHAR_MAX__ == __INT_MAX__
-# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
-#else
-# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `char' can hold. */
-#ifdef __CHAR_UNSIGNED__
-# undef CHAR_MIN
-# if __SCHAR_MAX__ == __INT_MAX__
-# define CHAR_MIN 0U
-# else
-# define CHAR_MIN 0
-# endif
-# undef CHAR_MAX
-# define CHAR_MAX UCHAR_MAX
-#else
-# undef CHAR_MIN
-# define CHAR_MIN SCHAR_MIN
-# undef CHAR_MAX
-# define CHAR_MAX SCHAR_MAX
-#endif
-
-/* Minimum and maximum values a `signed short int' can hold. */
-#undef SHRT_MIN
-#define SHRT_MIN (-SHRT_MAX - 1)
-#undef SHRT_MAX
-#define SHRT_MAX __SHRT_MAX__
-
-/* Maximum value an `unsigned short int' can hold. (Minimum is 0). */
-#undef USHRT_MAX
-#if __SHRT_MAX__ == __INT_MAX__
-# define USHRT_MAX (SHRT_MAX * 2U + 1U)
-#else
-# define USHRT_MAX (SHRT_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `signed int' can hold. */
-#undef INT_MIN
-#define INT_MIN (-INT_MAX - 1)
-#undef INT_MAX
-#define INT_MAX __INT_MAX__
-
-/* Maximum value an `unsigned int' can hold. (Minimum is 0). */
-#undef UINT_MAX
-#define UINT_MAX (INT_MAX * 2U + 1U)
-
-/* Minimum and maximum values a `signed long int' can hold.
- (Same as `int'). */
-#undef LONG_MIN
-#define LONG_MIN (-LONG_MAX - 1L)
-#undef LONG_MAX
-#define LONG_MAX __LONG_MAX__
-
-/* Maximum value an `unsigned long int' can hold. (Minimum is 0). */
-#undef ULONG_MAX
-#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* Minimum and maximum values a `signed long long int' can hold. */
-# undef LLONG_MIN
-# define LLONG_MIN (-LLONG_MAX - 1LL)
-# undef LLONG_MAX
-# define LLONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
-# undef ULLONG_MAX
-# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
-#endif
-
-#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
-/* Minimum and maximum values a `signed long long int' can hold. */
-# undef LONG_LONG_MIN
-# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
-# undef LONG_LONG_MAX
-# define LONG_LONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold. (Minimum is 0). */
-# undef ULONG_LONG_MAX
-# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
-#endif
-
-#endif /* _LIMITS_H___ */
-/* This administrivia gets added to the end of limits.h
- if the system has its own version of limits.h. */
-
-#else /* not _GCC_LIMITS_H_ */
-
-#ifdef _GCC_NEXT_LIMITS_H
-#include_next <limits.h> /* recurse down to the real one */
-#endif
-
-#endif /* not _GCC_LIMITS_H_ */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/linux/a.out.h b/lib/gcc/mipsel-linux-android/4.6/include-fixed/linux/a.out.h
deleted file mode 100644
index 0b5059a..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/linux/a.out.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* DO NOT EDIT THIS FILE.
-
- It has been auto-edited by fixincludes from:
-
- "/tmp/ndk-andrewhsieh/build/toolchain/prefix/sysroot/usr/include/linux/a.out.h"
-
- This had to be done to correct non-standard usages in the
- original, manufacturer supplied header file. */
-
-/****************************************************************************
- ****************************************************************************
- ***
- *** This header was automatically generated from a Linux kernel header
- *** of the same name, to make information necessary for userspace to
- *** call into the kernel available to libc. It contains only constants,
- *** structures, and macros generated from the original header, and thus,
- *** contains no copyrightable information.
- ***
- ****************************************************************************
- ****************************************************************************/
-#ifndef __A_OUT_GNU_H__
-#define __A_OUT_GNU_H__
-
-#define __GNU_EXEC_MACROS__
-
-#ifndef __STRUCT_EXEC_OVERRIDE__
-
-#include <asm/a.out.h>
-
-#endif
-
-enum machine_type {
-#ifdef M_OLDSUN2
- M__OLDSUN2 = M_OLDSUN2,
-#else
- M_OLDSUN2 = 0,
-#endif
-#ifdef M_68010
- M__68010 = M_68010,
-#else
- M_68010 = 1,
-#endif
-#ifdef M_68020
- M__68020 = M_68020,
-#else
- M_68020 = 2,
-#endif
-#ifdef M_SPARC
- M__SPARC = M_SPARC,
-#else
- M_SPARC = 3,
-#endif
-
- M_386 = 100,
- M_MIPS1 = 151,
- M_MIPS2 = 152
-};
-
-#ifndef N_MAGIC
-#define N_MAGIC(exec) ((exec).a_info & 0xffff)
-#endif
-#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
-#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
-#define N_SET_INFO(exec, magic, type, flags) ((exec).a_info = ((magic) & 0xffff) | (((int)(type) & 0xff) << 16) | (((flags) & 0xff) << 24))
-#define N_SET_MAGIC(exec, magic) ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
-
-#define N_SET_MACHTYPE(exec, machtype) ((exec).a_info = ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
-
-#define N_SET_FLAGS(exec, flags) ((exec).a_info = ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
-
-#define OMAGIC 0407
-
-#define NMAGIC 0410
-
-#define ZMAGIC 0413
-
-#define QMAGIC 0314
-
-#define CMAGIC 0421
-
-#ifndef N_BADMAG
-#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC)
-#endif
-
-#define _N_HDROFF(x) (1024 - sizeof (struct exec))
-
-#ifndef N_TXTOFF
-#define N_TXTOFF(x) (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec)))
-#endif
-
-#ifndef N_DATOFF
-#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
-#endif
-
-#ifndef N_TRELOFF
-#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
-#endif
-
-#ifndef N_DRELOFF
-#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x))
-#endif
-
-#ifndef N_SYMOFF
-#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x))
-#endif
-
-#ifndef N_STROFF
-#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x))
-#endif
-
-#ifndef N_TXTADDR
-#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0)
-#endif
-
-#if defined(vax) || defined(hp300) || defined(pyr)
-#define SEGMENT_SIZE page_size
-#endif
-#ifdef sony
-#define SEGMENT_SIZE 0x2000
-#endif
-#ifdef is68k
-#define SEGMENT_SIZE 0x20000
-#endif
-#if defined(m68k) && defined(PORTAR)
-#define PAGE_SIZE 0x400
-#define SEGMENT_SIZE PAGE_SIZE
-#endif
-
-#ifdef __linux__
-#include <asm/page.h>
-#if defined(__i386__) || defined(__mc68000__)
-#define SEGMENT_SIZE 1024
-#else
-#ifndef SEGMENT_SIZE
-#define SEGMENT_SIZE PAGE_SIZE
-#endif
-#endif
-#endif
-
-#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE)
-
-#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
-
-#ifndef N_DATADDR
-#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
-#endif
-
-#ifndef N_BSSADDR
-#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
-#endif
-
-#ifndef N_NLIST_DECLARED
-struct nlist {
- union {
- char *n_name;
- struct nlist *n_next;
- long n_strx;
- } n_un;
- unsigned char n_type;
- char n_other;
- short n_desc;
- unsigned long n_value;
-};
-#endif
-
-#ifndef N_UNDF
-#define N_UNDF 0
-#endif
-#ifndef N_ABS
-#define N_ABS 2
-#endif
-#ifndef N_TEXT
-#define N_TEXT 4
-#endif
-#ifndef N_DATA
-#define N_DATA 6
-#endif
-#ifndef N_BSS
-#define N_BSS 8
-#endif
-#ifndef N_FN
-#define N_FN 15
-#endif
-
-#ifndef N_EXT
-#define N_EXT 1
-#endif
-#ifndef N_TYPE
-#define N_TYPE 036
-#endif
-#ifndef N_STAB
-#define N_STAB 0340
-#endif
-
-#define N_INDR 0xa
-
-#define N_SETA 0x14
-#define N_SETT 0x16
-#define N_SETD 0x18
-#define N_SETB 0x1A
-
-#define N_SETV 0x1C
-
-#ifndef N_RELOCATION_INFO_DECLARED
-
-struct relocation_info
-{
-
- int r_address;
-
- unsigned int r_symbolnum:24;
-
- unsigned int r_pcrel:1;
-
- unsigned int r_length:2;
-
- unsigned int r_extern:1;
-
-#ifdef NS32K
- unsigned r_bsr:1;
- unsigned r_disp:1;
- unsigned r_pad:2;
-#else
- unsigned int r_pad:4;
-#endif
-};
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/stdio.h b/lib/gcc/mipsel-linux-android/4.6/include-fixed/stdio.h
deleted file mode 100644
index f436c47..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/stdio.h
+++ /dev/null
@@ -1,462 +0,0 @@
-/* DO NOT EDIT THIS FILE.
-
- It has been auto-edited by fixincludes from:
-
- "/tmp/ndk-andrewhsieh/build/toolchain/prefix/sysroot/usr/include/stdio.h"
-
- This had to be done to correct non-standard usages in the
- original, manufacturer supplied header file. */
-
-/* $OpenBSD: stdio.h,v 1.35 2006/01/13 18:10:09 miod Exp $ */
-/* $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ */
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Chris Torek.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)stdio.h 5.17 (Berkeley) 6/3/91
- */
-
-#ifndef _STDIO_H_
-#define _STDIO_H_
-
-#include <sys/cdefs.h>
-#include <sys/_types.h>
-
-/* __gnuc_va_list and size_t must be defined by stdio.h according to Posix */
-#define __need___va_list
-#include <stdarg.h>
-
-/* note that this forces stddef.h to *only* define size_t */
-#define __need_size_t
-#include <stddef.h>
-
-#include <stddef.h>
-
-#if __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE
-#include <sys/types.h> /* XXX should be removed */
-#endif
-
-#ifndef _SIZE_T_DEFINED_
-#define _SIZE_T_DEFINED_
-typedef unsigned long size_t;
-#endif
-
-#ifndef _OFF_T_DEFINED_
-#define _OFF_T_DEFINED_
-typedef long off_t;
-#endif
-
-#ifndef NULL
-#ifdef __GNUG__
-#define NULL __null
-#else
-#define NULL 0L
-#endif
-#endif
-
-#define _FSTDIO /* Define for new stdio with functions. */
-
-typedef off_t fpos_t; /* stdio file position type */
-
-/*
- * NB: to fit things in six character monocase externals, the stdio
- * code uses the prefix `__s' for stdio objects, typically followed
- * by a three-character attempt at a mnemonic.
- */
-
-/* stdio buffers */
-struct __sbuf {
- unsigned char *_base;
- int _size;
-};
-
-/*
- * stdio state variables.
- *
- * The following always hold:
- *
- * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
- * _lbfsize is -_bf._size, else _lbfsize is 0
- * if _flags&__SRD, _w is 0
- * if _flags&__SWR, _r is 0
- *
- * This ensures that the getc and putc macros (or inline functions) never
- * try to write or read from a file that is in `read' or `write' mode.
- * (Moreover, they can, and do, automatically switch from read mode to
- * write mode, and back, on "r+" and "w+" files.)
- *
- * _lbfsize is used only to make the inline line-buffered output stream
- * code as compact as possible.
- *
- * _ub, _up, and _ur are used when ungetc() pushes back more characters
- * than fit in the current _bf, or when ungetc() pushes back a character
- * that does not match the previous one in _bf. When this happens,
- * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
- * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
- *
- * NOTE: if you change this structure, you also need to update the
- * std() initializer in findfp.c.
- */
-typedef struct __sFILE {
- unsigned char *_p; /* current position in (some) buffer */
- int _r; /* read space left for getc() */
- int _w; /* write space left for putc() */
- short _flags; /* flags, below; this FILE is free if 0 */
- short _file; /* fileno, if Unix descriptor, else -1 */
- struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
- int _lbfsize; /* 0 or -_bf._size, for inline putc */
-
- /* operations */
- void *_cookie; /* cookie passed to io functions */
- int (*_close)(void *);
- int (*_read)(void *, char *, int);
- fpos_t (*_seek)(void *, fpos_t, int);
- int (*_write)(void *, const char *, int);
-
- /* extension data, to avoid further ABI breakage */
- struct __sbuf _ext;
- /* data for long sequences of ungetc() */
- unsigned char *_up; /* saved _p when _p is doing ungetc data */
- int _ur; /* saved _r when _r is counting ungetc data */
-
- /* tricks to meet minimum requirements even when malloc() fails */
- unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */
- unsigned char _nbuf[1]; /* guarantee a getc() buffer */
-
- /* separate buffer for fgetln() when line crosses buffer boundary */
- struct __sbuf _lb; /* buffer for fgetln() */
-
- /* Unix stdio files get aligned to block boundaries on fseek() */
- int _blksize; /* stat.st_blksize (may be != _bf._size) */
- fpos_t _offset; /* current lseek offset */
-} FILE;
-
-__BEGIN_DECLS
-extern FILE __sF[];
-__END_DECLS
-
-#define __SLBF 0x0001 /* line buffered */
-#define __SNBF 0x0002 /* unbuffered */
-#define __SRD 0x0004 /* OK to read */
-#define __SWR 0x0008 /* OK to write */
- /* RD and WR are never simultaneously asserted */
-#define __SRW 0x0010 /* open for reading & writing */
-#define __SEOF 0x0020 /* found EOF */
-#define __SERR 0x0040 /* found error */
-#define __SMBF 0x0080 /* _buf is from malloc */
-#define __SAPP 0x0100 /* fdopen()ed in append mode */
-#define __SSTR 0x0200 /* this is an sprintf/snprintf string */
-#define __SOPT 0x0400 /* do fseek() optimisation */
-#define __SNPT 0x0800 /* do not do fseek() optimisation */
-#define __SOFF 0x1000 /* set iff _offset is in fact correct */
-#define __SMOD 0x2000 /* true => fgetln modified _p text */
-#define __SALC 0x4000 /* allocate string space dynamically */
-
-/*
- * The following three definitions are for ANSI C, which took them
- * from System V, which brilliantly took internal interface macros and
- * made them official arguments to setvbuf(), without renaming them.
- * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
- *
- * Although numbered as their counterparts above, the implementation
- * does not rely on this.
- */
-#define _IOFBF 0 /* setvbuf should set fully buffered */
-#define _IOLBF 1 /* setvbuf should set line buffered */
-#define _IONBF 2 /* setvbuf should set unbuffered */
-
-#define BUFSIZ 1024 /* size of buffer used by setbuf */
-
-#define EOF (-1)
-
-/*
- * FOPEN_MAX is a minimum maximum, and should be the number of descriptors
- * that the kernel can provide without allocation of a resource that can
- * fail without the process sleeping. Do not use this for anything.
- */
-#define FOPEN_MAX 20 /* must be <= OPEN_MAX <sys/syslimits.h> */
-#define FILENAME_MAX 1024 /* must be <= PATH_MAX <sys/syslimits.h> */
-
-/* System V/ANSI C; this is the wrong way to do this, do *not* use these. */
-#if __BSD_VISIBLE || __XPG_VISIBLE
-#define P_tmpdir "/tmp/"
-#endif
-#define L_tmpnam 1024 /* XXX must be == PATH_MAX */
-#define TMP_MAX 308915776
-
-#ifndef SEEK_SET
-#define SEEK_SET 0 /* set file offset to offset */
-#endif
-#ifndef SEEK_CUR
-#define SEEK_CUR 1 /* set file offset to current plus offset */
-#endif
-#ifndef SEEK_END
-#define SEEK_END 2 /* set file offset to EOF plus offset */
-#endif
-
-#define stdin (&__sF[0])
-#define stdout (&__sF[1])
-#define stderr (&__sF[2])
-
-/*
- * Functions defined in ANSI C standard.
- */
-__BEGIN_DECLS
-void clearerr(FILE *);
-int fclose(FILE *);
-int feof(FILE *);
-int ferror(FILE *);
-int fflush(FILE *);
-int fgetc(FILE *);
-int fgetpos(FILE *, fpos_t *);
-char *fgets(char *, int, FILE *);
-FILE *fopen(const char *, const char *);
-int fprintf(FILE *, const char *, ...);
-int fputc(int, FILE *);
-int fputs(const char *, FILE *);
-size_t fread(void *, size_t, size_t, FILE *);
-FILE *freopen(const char *, const char *, FILE *);
-int fscanf(FILE *, const char *, ...);
-int fseek(FILE *, long, int);
-int fseeko(FILE *, off_t, int);
-int fsetpos(FILE *, const fpos_t *);
-long ftell(FILE *);
-off_t ftello(FILE *);
-size_t fwrite(const void *, size_t, size_t, FILE *);
-int getc(FILE *);
-int getchar(void);
-char *gets(char *);
-#if __BSD_VISIBLE && !defined(__SYS_ERRLIST)
-#define __SYS_ERRLIST
-
-extern int sys_nerr; /* perror(3) external variables */
-extern char *sys_errlist[];
-#endif
-void perror(const char *);
-int printf(const char *, ...);
-int putc(int, FILE *);
-int putchar(int);
-int puts(const char *);
-int remove(const char *);
-int rename(const char *, const char *);
-void rewind(FILE *);
-int scanf(const char *, ...);
-void setbuf(FILE *, char *);
-int setvbuf(FILE *, char *, int, size_t);
-int sprintf(char *, const char *, ...);
-int sscanf(const char *, const char *, ...);
-FILE *tmpfile(void);
-char *tmpnam(char *);
-int ungetc(int, FILE *);
-int vfprintf(FILE *, const char *, __gnuc_va_list);
-int vprintf(const char *, __gnuc_va_list);
-int vsprintf(char *, const char *, __gnuc_va_list);
-
-#if __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE
-int snprintf(char *, size_t, const char *, ...)
- __attribute__((__format__ (printf, 3, 4)))
- __attribute__((__nonnull__ (3)));
-int vfscanf(FILE *, const char *, __gnuc_va_list)
- __attribute__((__format__ (scanf, 2, 0)))
- __attribute__((__nonnull__ (2)));
-int vscanf(const char *, __gnuc_va_list)
- __attribute__((__format__ (scanf, 1, 0)))
- __attribute__((__nonnull__ (1)));
-int vsnprintf(char *, size_t, const char *, __gnuc_va_list)
- __attribute__((__format__ (printf, 3, 0)))
- __attribute__((__nonnull__ (3)));
-int vsscanf(const char *, const char *, __gnuc_va_list)
- __attribute__((__format__ (scanf, 2, 0)))
- __attribute__((__nonnull__ (2)));
-#endif /* __ISO_C_VISIBLE >= 1999 || __BSD_VISIBLE */
-
-__END_DECLS
-
-
-/*
- * Functions defined in POSIX 1003.1.
- */
-#if __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE
-#define L_ctermid 1024 /* size for ctermid(); PATH_MAX */
-#define L_cuserid 9 /* size for cuserid(); UT_NAMESIZE + 1 */
-
-__BEGIN_DECLS
-#if 0 /* MISSING FROM BIONIC */
-char *ctermid(char *);
-char *cuserid(char *);
-#endif /* MISSING */
-FILE *fdopen(int, const char *);
-int fileno(FILE *);
-
-#if (__POSIX_VISIBLE >= 199209)
-int pclose(FILE *);
-FILE *popen(const char *, const char *);
-#endif
-
-#if __POSIX_VISIBLE >= 199506
-void flockfile(FILE *);
-int ftrylockfile(FILE *);
-void funlockfile(FILE *);
-
-/*
- * These are normally used through macros as defined below, but POSIX
- * requires functions as well.
- */
-int getc_unlocked(FILE *);
-int getchar_unlocked(void);
-int putc_unlocked(int, FILE *);
-int putchar_unlocked(int);
-#endif /* __POSIX_VISIBLE >= 199506 */
-
-#if __XPG_VISIBLE
-char *tempnam(const char *, const char *);
-#endif
-__END_DECLS
-
-#endif /* __BSD_VISIBLE || __POSIX_VISIBLE || __XPG_VISIBLE */
-
-/*
- * Routines that are purely local.
- */
-#if __BSD_VISIBLE
-__BEGIN_DECLS
-int asprintf(char **, const char *, ...)
- __attribute__((__format__ (printf, 2, 3)))
- __attribute__((__nonnull__ (2)));
-char *fgetln(FILE *, size_t *);
-int fpurge(FILE *);
-int getw(FILE *);
-int putw(int, FILE *);
-void setbuffer(FILE *, char *, int);
-int setlinebuf(FILE *);
-int vasprintf(char **, const char *, __gnuc_va_list)
- __attribute__((__format__ (printf, 2, 0)))
- __attribute__((__nonnull__ (2)));
-__END_DECLS
-
-/*
- * Stdio function-access interface.
- */
-__BEGIN_DECLS
-FILE *funopen(const void *,
- int (*)(void *, char *, int),
- int (*)(void *, const char *, int),
- fpos_t (*)(void *, fpos_t, int),
- int (*)(void *));
-__END_DECLS
-#define fropen(cookie, fn) funopen(cookie, fn, 0, 0, 0)
-#define fwopen(cookie, fn) funopen(cookie, 0, fn, 0, 0)
-#endif /* __BSD_VISIBLE */
-
-/*
- * Functions internal to the implementation.
- */
-__BEGIN_DECLS
-int __srget(FILE *);
-int __swbuf(int, FILE *);
-__END_DECLS
-
-/*
- * The __sfoo macros are here so that we can
- * define function versions in the C library.
- */
-#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++))
-#if defined(__GNUC__)
-static __inline int __sputc(int _c, FILE *_p) {
- if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
- return (*_p->_p++ = _c);
- else
- return (__swbuf(_c, _p));
-}
-#else
-/*
- * This has been tuned to generate reasonable code on the vax using pcc.
- */
-#define __sputc(c, p) \
- (--(p)->_w < 0 ? \
- (p)->_w >= (p)->_lbfsize ? \
- (*(p)->_p = (c)), *(p)->_p != '\n' ? \
- (int)*(p)->_p++ : \
- __swbuf('\n', p) : \
- __swbuf((int)(c), p) : \
- (*(p)->_p = (c), (int)*(p)->_p++))
-#endif
-
-#define __sfeof(p) (((p)->_flags & __SEOF) != 0)
-#define __sferror(p) (((p)->_flags & __SERR) != 0)
-#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF)))
-#define __sfileno(p) ((p)->_file)
-
-#define feof(p) __sfeof(p)
-#define ferror(p) __sferror(p)
-
-#ifndef _POSIX_THREADS
-#define clearerr(p) __sclearerr(p)
-#endif
-
-#if __POSIX_VISIBLE
-#define fileno(p) __sfileno(p)
-#endif
-
-#ifndef lint
-#ifndef _POSIX_THREADS
-#define getc(fp) __sgetc(fp)
-#endif /* _POSIX_THREADS */
-#define getc_unlocked(fp) __sgetc(fp)
-/*
- * The macro implementations of putc and putc_unlocked are not
- * fully POSIX compliant; they do not set errno on failure
- */
-#if __BSD_VISIBLE
-#ifndef _POSIX_THREADS
-#define putc(x, fp) __sputc(x, fp)
-#endif /* _POSIX_THREADS */
-#define putc_unlocked(x, fp) __sputc(x, fp)
-#endif /* __BSD_VISIBLE */
-#endif /* lint */
-
-#define getchar() getc(stdin)
-#define putchar(x) putc(x, stdout)
-#define getchar_unlocked() getc_unlocked(stdin)
-#define putchar_unlocked(c) putc_unlocked(c, stdout)
-
-#ifdef _GNU_SOURCE
-/*
- * glibc defines dprintf(int, const char*, ...), which is poorly named
- * and likely to conflict with locally defined debugging printfs
- * fdprintf is a better name, and some programs that use fdprintf use a
- * #define fdprintf dprintf for compatibility
- */
-int fdprintf(int, const char*, ...);
-int vfdprintf(int, const char*, __gnuc_va_list);
-#endif /* _GNU_SOURCE */
-
-#endif /* _STDIO_H_ */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/sys/types.h b/lib/gcc/mipsel-linux-android/4.6/include-fixed/sys/types.h
deleted file mode 100644
index be4d572..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/sys/types.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* DO NOT EDIT THIS FILE.
-
- It has been auto-edited by fixincludes from:
-
- "/tmp/ndk-andrewhsieh/build/toolchain/prefix/sysroot/usr/include/sys/types.h"
-
- This had to be done to correct non-standard usages in the
- original, manufacturer supplied header file. */
-
-/*
- * Copyright (C) 2008 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-#ifndef _SYS_TYPES_H_
-#define _SYS_TYPES_H_
-
-#define __need_size_t
-#define __need_ptrdiff_t
-#include <stddef.h>
-#include <stdint.h>
-#include <sys/cdefs.h>
-
-#include <linux/posix_types.h>
-#include <asm/types.h>
-#include <linux/types.h>
-#include <machine/kernel.h>
-
-typedef __u32 __kernel_dev_t;
-
-/* be careful with __kernel_gid_t and __kernel_uid_t
- * these are defined as 16-bit for legacy reason, but
- * the kernel uses 32-bits instead.
- *
- * 32-bit valuea are required for Android, so use
- * __kernel_uid32_t and __kernel_gid32_t
- */
-
-typedef __kernel_blkcnt_t blkcnt_t;
-typedef __kernel_blksize_t blksize_t;
-typedef __kernel_clock_t clock_t;
-typedef __kernel_clockid_t clockid_t;
-typedef __kernel_dev_t dev_t;
-typedef __kernel_fsblkcnt_t fsblkcnt_t;
-typedef __kernel_fsfilcnt_t fsfilcnt_t;
-typedef __kernel_gid32_t gid_t;
-typedef __kernel_id_t id_t;
-typedef __kernel_ino_t ino_t;
-typedef __kernel_key_t key_t;
-typedef __kernel_mode_t mode_t;
-typedef __kernel_nlink_t nlink_t;
-#ifndef _OFF_T_DEFINED_
-#define _OFF_T_DEFINED_
-typedef __kernel_off_t off_t;
-#endif
-typedef __kernel_loff_t loff_t;
-typedef loff_t off64_t; /* GLibc-specific */
-
-typedef __kernel_pid_t pid_t;
-
-/* while POSIX wants these in <sys/types.h>, we
- * declare then in <pthread.h> instead */
-#if 0
-typedef .... pthread_attr_t;
-typedef .... pthread_cond_t;
-typedef .... pthread_condattr_t;
-typedef .... pthread_key_t;
-typedef .... pthread_mutex_t;
-typedef .... pthread_once_t;
-typedef .... pthread_rwlock_t;
-typedef .... pthread_rwlock_attr_t;
-typedef .... pthread_t;
-#endif
-
-#ifndef _SIZE_T_DEFINED_
-#define _SIZE_T_DEFINED_
-#if !defined(_GCC_SIZE_T)
-#define _GCC_SIZE_T
-typedef __SIZE_TYPE__ size_t;
-#endif
-
-#endif
-
-/* size_t is defined by the GCC-specific <stddef.h> */
-#ifndef _SSIZE_T_DEFINED_
-#define _SSIZE_T_DEFINED_
-typedef long int ssize_t;
-#endif
-
-typedef __kernel_suseconds_t suseconds_t;
-typedef __kernel_time_t time_t;
-typedef __kernel_uid32_t uid_t;
-typedef signed long useconds_t;
-
-typedef __kernel_daddr_t daddr_t;
-typedef __kernel_timer_t timer_t;
-typedef __kernel_mqd_t mqd_t;
-
-typedef __kernel_caddr_t caddr_t;
-typedef unsigned int uint_t;
-typedef unsigned int uint;
-
-/* for some applications */
-#include <sys/sysmacros.h>
-
-#ifdef __BSD_VISIBLE
-typedef unsigned char u_char;
-typedef unsigned short u_short;
-typedef unsigned int u_int;
-typedef unsigned long u_long;
-
-typedef uint32_t u_int32_t;
-typedef uint16_t u_int16_t;
-typedef uint8_t u_int8_t;
-typedef uint64_t u_int64_t;
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/include-fixed/syslimits.h b/lib/gcc/mipsel-linux-android/4.6/include-fixed/syslimits.h
deleted file mode 100644
index a362802..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include-fixed/syslimits.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* syslimits.h stands for the system's own limits.h file.
- If we can use it ok unmodified, then we install this text.
- If fixincludes fixes it, then the fixed version is installed
- instead of this text. */
-
-#define _GCC_NEXT_LIMITS_H /* tell gcc's limits.h to recurse */
-#include_next <limits.h>
-#undef _GCC_NEXT_LIMITS_H
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/float.h b/lib/gcc/mipsel-linux-android/4.6/include/float.h
deleted file mode 100644
index b78cc0c..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/float.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright (C) 2002, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h>
- */
-
-#ifndef _FLOAT_H___
-#define _FLOAT_H___
-
-/* Radix of exponent representation, b. */
-#undef FLT_RADIX
-#define FLT_RADIX __FLT_RADIX__
-
-/* Number of base-FLT_RADIX digits in the significand, p. */
-#undef FLT_MANT_DIG
-#undef DBL_MANT_DIG
-#undef LDBL_MANT_DIG
-#define FLT_MANT_DIG __FLT_MANT_DIG__
-#define DBL_MANT_DIG __DBL_MANT_DIG__
-#define LDBL_MANT_DIG __LDBL_MANT_DIG__
-
-/* Number of decimal digits, q, such that any floating-point number with q
- decimal digits can be rounded into a floating-point number with p radix b
- digits and back again without change to the q decimal digits,
-
- p * log10(b) if b is a power of 10
- floor((p - 1) * log10(b)) otherwise
-*/
-#undef FLT_DIG
-#undef DBL_DIG
-#undef LDBL_DIG
-#define FLT_DIG __FLT_DIG__
-#define DBL_DIG __DBL_DIG__
-#define LDBL_DIG __LDBL_DIG__
-
-/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */
-#undef FLT_MIN_EXP
-#undef DBL_MIN_EXP
-#undef LDBL_MIN_EXP
-#define FLT_MIN_EXP __FLT_MIN_EXP__
-#define DBL_MIN_EXP __DBL_MIN_EXP__
-#define LDBL_MIN_EXP __LDBL_MIN_EXP__
-
-/* Minimum negative integer such that 10 raised to that power is in the
- range of normalized floating-point numbers,
-
- ceil(log10(b) * (emin - 1))
-*/
-#undef FLT_MIN_10_EXP
-#undef DBL_MIN_10_EXP
-#undef LDBL_MIN_10_EXP
-#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
-#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
-#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
-
-/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */
-#undef FLT_MAX_EXP
-#undef DBL_MAX_EXP
-#undef LDBL_MAX_EXP
-#define FLT_MAX_EXP __FLT_MAX_EXP__
-#define DBL_MAX_EXP __DBL_MAX_EXP__
-#define LDBL_MAX_EXP __LDBL_MAX_EXP__
-
-/* Maximum integer such that 10 raised to that power is in the range of
- representable finite floating-point numbers,
-
- floor(log10((1 - b**-p) * b**emax))
-*/
-#undef FLT_MAX_10_EXP
-#undef DBL_MAX_10_EXP
-#undef LDBL_MAX_10_EXP
-#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
-#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
-#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
-
-/* Maximum representable finite floating-point number,
-
- (1 - b**-p) * b**emax
-*/
-#undef FLT_MAX
-#undef DBL_MAX
-#undef LDBL_MAX
-#define FLT_MAX __FLT_MAX__
-#define DBL_MAX __DBL_MAX__
-#define LDBL_MAX __LDBL_MAX__
-
-/* The difference between 1 and the least value greater than 1 that is
- representable in the given floating point type, b**1-p. */
-#undef FLT_EPSILON
-#undef DBL_EPSILON
-#undef LDBL_EPSILON
-#define FLT_EPSILON __FLT_EPSILON__
-#define DBL_EPSILON __DBL_EPSILON__
-#define LDBL_EPSILON __LDBL_EPSILON__
-
-/* Minimum normalized positive floating-point number, b**(emin - 1). */
-#undef FLT_MIN
-#undef DBL_MIN
-#undef LDBL_MIN
-#define FLT_MIN __FLT_MIN__
-#define DBL_MIN __DBL_MIN__
-#define LDBL_MIN __LDBL_MIN__
-
-/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */
-/* ??? This is supposed to change with calls to fesetround in <fenv.h>. */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* The floating-point expression evaluation method.
- -1 indeterminate
- 0 evaluate all operations and constants just to the range and
- precision of the type
- 1 evaluate operations and constants of type float and double
- to the range and precision of the double type, evaluate
- long double operations and constants to the range and
- precision of the long double type
- 2 evaluate all operations and constants to the range and
- precision of the long double type
-
- ??? This ought to change with the setting of the fp control word;
- the value provided by the compiler assumes the widest setting. */
-#undef FLT_EVAL_METHOD
-#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
-
-/* Number of decimal digits, n, such that any floating-point number in the
- widest supported floating type with pmax radix b digits can be rounded
- to a floating-point number with n decimal digits and back again without
- change to the value,
-
- pmax * log10(b) if b is a power of 10
- ceil(1 + pmax * log10(b)) otherwise
-*/
-#undef DECIMAL_DIG
-#define DECIMAL_DIG __DECIMAL_DIG__
-
-#endif /* C99 */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ > 199901L
-/* Versions of DECIMAL_DIG for each floating-point type. */
-#undef FLT_DECIMAL_DIG
-#undef DBL_DECIMAL_DIG
-#undef LDBL_DECIMAL_DIG
-#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
-#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
-#define LDBL_DECIMAL_DIG __DECIMAL_DIG__
-
-/* Whether types support subnormal numbers. */
-#undef FLT_HAS_SUBNORM
-#undef DBL_HAS_SUBNORM
-#undef LDBL_HAS_SUBNORM
-#define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
-#define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
-#define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
-
-/* Minimum positive values, including subnormals. */
-#undef FLT_TRUE_MIN
-#undef DBL_TRUE_MIN
-#undef LDBL_TRUE_MIN
-#if __FLT_HAS_DENORM__
-#define FLT_TRUE_MIN __FLT_DENORM_MIN__
-#else
-#define FLT_TRUE_MIN __FLT_MIN__
-#endif
-#if __DBL_HAS_DENORM__
-#define DBL_TRUE_MIN __DBL_DENORM_MIN__
-#else
-#define DBL_TRUE_MIN __DBL_MIN__
-#endif
-#if __LDBL_HAS_DENORM__
-#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
-#else
-#define LDBL_TRUE_MIN __LDBL_MIN__
-#endif
-
-#endif /* C1X */
-
-#ifdef __STDC_WANT_DEC_FP__
-/* Draft Technical Report 24732, extension for decimal floating-point
- arithmetic: Characteristic of decimal floating types <float.h>. */
-
-/* Number of base-FLT_RADIX digits in the significand, p. */
-#undef DEC32_MANT_DIG
-#undef DEC64_MANT_DIG
-#undef DEC128_MANT_DIG
-#define DEC32_MANT_DIG __DEC32_MANT_DIG__
-#define DEC64_MANT_DIG __DEC64_MANT_DIG__
-#define DEC128_MANT_DIG __DEC128_MANT_DIG__
-
-/* Minimum exponent. */
-#undef DEC32_MIN_EXP
-#undef DEC64_MIN_EXP
-#undef DEC128_MIN_EXP
-#define DEC32_MIN_EXP __DEC32_MIN_EXP__
-#define DEC64_MIN_EXP __DEC64_MIN_EXP__
-#define DEC128_MIN_EXP __DEC128_MIN_EXP__
-
-/* Maximum exponent. */
-#undef DEC32_MAX_EXP
-#undef DEC64_MAX_EXP
-#undef DEC128_MAX_EXP
-#define DEC32_MAX_EXP __DEC32_MAX_EXP__
-#define DEC64_MAX_EXP __DEC64_MAX_EXP__
-#define DEC128_MAX_EXP __DEC128_MAX_EXP__
-
-/* Maximum representable finite decimal floating-point number
- (there are 6, 15, and 33 9s after the decimal points respectively). */
-#undef DEC32_MAX
-#undef DEC64_MAX
-#undef DEC128_MAX
-#define DEC32_MAX __DEC32_MAX__
-#define DEC64_MAX __DEC64_MAX__
-#define DEC128_MAX __DEC128_MAX__
-
-/* The difference between 1 and the least value greater than 1 that is
- representable in the given floating point type. */
-#undef DEC32_EPSILON
-#undef DEC64_EPSILON
-#undef DEC128_EPSILON
-#define DEC32_EPSILON __DEC32_EPSILON__
-#define DEC64_EPSILON __DEC64_EPSILON__
-#define DEC128_EPSILON __DEC128_EPSILON__
-
-/* Minimum normalized positive floating-point number. */
-#undef DEC32_MIN
-#undef DEC64_MIN
-#undef DEC128_MIN
-#define DEC32_MIN __DEC32_MIN__
-#define DEC64_MIN __DEC64_MIN__
-#define DEC128_MIN __DEC128_MIN__
-
-/* Minimum subnormal positive floating-point number. */
-#undef DEC32_SUBNORMAL_MIN
-#undef DEC64_SUBNORMAL_MIN
-#undef DEC128_SUBNORMAL_MIN
-#define DEC32_SUBNORMAL_MIN __DEC32_SUBNORMAL_MIN__
-#define DEC64_SUBNORMAL_MIN __DEC64_SUBNORMAL_MIN__
-#define DEC128_SUBNORMAL_MIN __DEC128_SUBNORMAL_MIN__
-
-/* The floating-point expression evaluation method.
- -1 indeterminate
- 0 evaluate all operations and constants just to the range and
- precision of the type
- 1 evaluate operations and constants of type _Decimal32
- and _Decimal64 to the range and precision of the _Decimal64
- type, evaluate _Decimal128 operations and constants to the
- range and precision of the _Decimal128 type;
- 2 evaluate all operations and constants to the range and
- precision of the _Decimal128 type. */
-
-#undef DEC_EVAL_METHOD
-#define DEC_EVAL_METHOD __DEC_EVAL_METHOD__
-
-#endif /* __STDC_WANT_DEC_FP__ */
-
-#endif /* _FLOAT_H___ */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/iso646.h b/lib/gcc/mipsel-linux-android/4.6/include/iso646.h
deleted file mode 100644
index 28ff9d1..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/iso646.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 1997, 1999, 2009 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 7.9 Alternative spellings <iso646.h>
- */
-
-#ifndef _ISO646_H
-#define _ISO646_H
-
-#ifndef __cplusplus
-#define and &&
-#define and_eq &=
-#define bitand &
-#define bitor |
-#define compl ~
-#define not !
-#define not_eq !=
-#define or ||
-#define or_eq |=
-#define xor ^
-#define xor_eq ^=
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/loongson.h b/lib/gcc/mipsel-linux-android/4.6/include/loongson.h
deleted file mode 100644
index 6bfd4d7..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/loongson.h
+++ /dev/null
@@ -1,690 +0,0 @@
-/* Intrinsics for ST Microelectronics Loongson-2E/2F SIMD operations.
-
- Copyright (C) 2008, 2009 Free Software Foundation, Inc.
- Contributed by CodeSourcery.
-
- This file is part of GCC.
-
- GCC 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, 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#ifndef _GCC_LOONGSON_H
-#define _GCC_LOONGSON_H
-
-#if !defined(__mips_loongson_vector_rev)
-# error "You must select -march=loongson2e or -march=loongson2f to use loongson.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-/* Vectors of unsigned bytes, halfwords and words. */
-typedef uint8_t uint8x8_t __attribute__((vector_size (8)));
-typedef uint16_t uint16x4_t __attribute__((vector_size (8)));
-typedef uint32_t uint32x2_t __attribute__((vector_size (8)));
-
-/* Vectors of signed bytes, halfwords and words. */
-typedef int8_t int8x8_t __attribute__((vector_size (8)));
-typedef int16_t int16x4_t __attribute__((vector_size (8)));
-typedef int32_t int32x2_t __attribute__((vector_size (8)));
-
-/* SIMD intrinsics.
- Unless otherwise noted, calls to the functions below will expand into
- precisely one machine instruction, modulo any moves required to
- satisfy register allocation constraints. */
-
-/* Pack with signed saturation. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-packsswh (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_packsswh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-packsshb (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_packsshb (s, t);
-}
-
-/* Pack with unsigned saturation. */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-packushb (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_packushb (s, t);
-}
-
-/* Vector addition, treating overflow by wraparound. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-paddw_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_paddw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-paddh_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_paddh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-paddb_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_paddb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-paddw_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_paddw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-paddh_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_paddh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-paddb_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_paddb_s (s, t);
-}
-
-/* Addition of doubleword integers, treating overflow by wraparound. */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-paddd_u (uint64_t s, uint64_t t)
-{
- return __builtin_loongson_paddd_u (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-paddd_s (int64_t s, int64_t t)
-{
- return __builtin_loongson_paddd_s (s, t);
-}
-
-/* Vector addition, treating overflow by signed saturation. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-paddsh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_paddsh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-paddsb (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_paddsb (s, t);
-}
-
-/* Vector addition, treating overflow by unsigned saturation. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-paddush (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_paddush (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-paddusb (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_paddusb (s, t);
-}
-
-/* Logical AND NOT. */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-pandn_ud (uint64_t s, uint64_t t)
-{
- return __builtin_loongson_pandn_ud (s, t);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pandn_uw (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_pandn_uw (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pandn_uh (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pandn_uh (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pandn_ub (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pandn_ub (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-pandn_sd (int64_t s, int64_t t)
-{
- return __builtin_loongson_pandn_sd (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pandn_sw (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_pandn_sw (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pandn_sh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pandn_sh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pandn_sb (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_pandn_sb (s, t);
-}
-
-/* Average. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pavgh (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pavgh (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pavgb (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pavgb (s, t);
-}
-
-/* Equality test. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pcmpeqw_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_pcmpeqw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pcmpeqh_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pcmpeqh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pcmpeqb_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pcmpeqb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pcmpeqw_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_pcmpeqw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pcmpeqh_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pcmpeqh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pcmpeqb_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_pcmpeqb_s (s, t);
-}
-
-/* Greater-than test. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pcmpgtw_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_pcmpgtw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pcmpgth_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pcmpgth_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pcmpgtb_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pcmpgtb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pcmpgtw_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_pcmpgtw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pcmpgth_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pcmpgth_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pcmpgtb_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_pcmpgtb_s (s, t);
-}
-
-/* Extract halfword. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pextrh_u (uint16x4_t s, int field /* 0--3 */)
-{
- return __builtin_loongson_pextrh_u (s, field);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pextrh_s (int16x4_t s, int field /* 0--3 */)
-{
- return __builtin_loongson_pextrh_s (s, field);
-}
-
-/* Insert halfword. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_0_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pinsrh_0_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_1_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pinsrh_1_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_2_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pinsrh_2_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_3_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pinsrh_3_u (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_0_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pinsrh_0_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_1_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pinsrh_1_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_2_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pinsrh_2_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_3_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pinsrh_3_s (s, t);
-}
-
-/* Multiply and add. */
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pmaddhw (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pmaddhw (s, t);
-}
-
-/* Maximum of signed halfwords. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmaxsh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pmaxsh (s, t);
-}
-
-/* Maximum of unsigned bytes. */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pmaxub (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pmaxub (s, t);
-}
-
-/* Minimum of signed halfwords. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pminsh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pminsh (s, t);
-}
-
-/* Minimum of unsigned bytes. */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pminub (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pminub (s, t);
-}
-
-/* Move byte mask. */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pmovmskb_u (uint8x8_t s)
-{
- return __builtin_loongson_pmovmskb_u (s);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pmovmskb_s (int8x8_t s)
-{
- return __builtin_loongson_pmovmskb_s (s);
-}
-
-/* Multiply unsigned integers and store high result. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pmulhuh (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_pmulhuh (s, t);
-}
-
-/* Multiply signed integers and store high result. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmulhh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pmulhh (s, t);
-}
-
-/* Multiply signed integers and store low result. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmullh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_pmullh (s, t);
-}
-
-/* Multiply unsigned word integers. */
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-pmuluw (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_pmuluw (s, t);
-}
-
-/* Absolute difference. */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pasubub (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_pasubub (s, t);
-}
-
-/* Sum of unsigned byte integers. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-biadd (uint8x8_t s)
-{
- return __builtin_loongson_biadd (s);
-}
-
-/* Sum of absolute differences.
- Note that this intrinsic expands into two machine instructions:
- PASUBUB followed by BIADD. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psadbh (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_psadbh (s, t);
-}
-
-/* Shuffle halfwords. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pshufh_u (uint16x4_t dest, uint16x4_t s, uint8_t order)
-{
- return __builtin_loongson_pshufh_u (dest, s, order);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pshufh_s (int16x4_t dest, int16x4_t s, uint8_t order)
-{
- return __builtin_loongson_pshufh_s (dest, s, order);
-}
-
-/* Shift left logical. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psllh_u (uint16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psllh_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psllh_s (int16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psllh_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psllw_u (uint32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psllw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psllw_s (int32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psllw_s (s, amount);
-}
-
-/* Shift right logical. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psrlh_u (uint16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psrlh_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psrlh_s (int16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psrlh_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psrlw_u (uint32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psrlw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psrlw_s (int32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psrlw_s (s, amount);
-}
-
-/* Shift right arithmetic. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psrah_u (uint16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psrah_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psrah_s (int16x4_t s, uint8_t amount)
-{
- return __builtin_loongson_psrah_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psraw_u (uint32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psraw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psraw_s (int32x2_t s, uint8_t amount)
-{
- return __builtin_loongson_psraw_s (s, amount);
-}
-
-/* Vector subtraction, treating overflow by wraparound. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psubw_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_psubw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psubh_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_psubh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-psubb_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_psubb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psubw_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_psubw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psubh_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_psubh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-psubb_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_psubb_s (s, t);
-}
-
-/* Subtraction of doubleword integers, treating overflow by wraparound. */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-psubd_u (uint64_t s, uint64_t t)
-{
- return __builtin_loongson_psubd_u (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-psubd_s (int64_t s, int64_t t)
-{
- return __builtin_loongson_psubd_s (s, t);
-}
-
-/* Vector subtraction, treating overflow by signed saturation. */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psubsh (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_psubsh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-psubsb (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_psubsb (s, t);
-}
-
-/* Vector subtraction, treating overflow by unsigned saturation. */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psubush (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_psubush (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-psubusb (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_psubusb (s, t);
-}
-
-/* Unpack high data. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-punpckhwd_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_punpckhwd_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-punpckhhw_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_punpckhhw_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-punpckhbh_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_punpckhbh_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-punpckhwd_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_punpckhwd_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-punpckhhw_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_punpckhhw_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-punpckhbh_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_punpckhbh_s (s, t);
-}
-
-/* Unpack low data. */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-punpcklwd_u (uint32x2_t s, uint32x2_t t)
-{
- return __builtin_loongson_punpcklwd_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-punpcklhw_u (uint16x4_t s, uint16x4_t t)
-{
- return __builtin_loongson_punpcklhw_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-punpcklbh_u (uint8x8_t s, uint8x8_t t)
-{
- return __builtin_loongson_punpcklbh_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-punpcklwd_s (int32x2_t s, int32x2_t t)
-{
- return __builtin_loongson_punpcklwd_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-punpcklhw_s (int16x4_t s, int16x4_t t)
-{
- return __builtin_loongson_punpcklhw_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-punpcklbh_s (int8x8_t s, int8x8_t t)
-{
- return __builtin_loongson_punpcklbh_s (s, t);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stdarg.h b/lib/gcc/mipsel-linux-android/4.6/include/stdarg.h
deleted file mode 100644
index 54dc2e7..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stdarg.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 7.15 Variable arguments <stdarg.h>
- */
-
-#ifndef _STDARG_H
-#ifndef _ANSI_STDARG_H_
-#ifndef __need___va_list
-#define _STDARG_H
-#define _ANSI_STDARG_H_
-#endif /* not __need___va_list */
-#undef __need___va_list
-
-/* Define __gnuc_va_list. */
-
-#ifndef __GNUC_VA_LIST
-#define __GNUC_VA_LIST
-typedef __builtin_va_list __gnuc_va_list;
-#endif
-
-/* Define the standard macros for the user,
- if this invocation was from the user program. */
-#ifdef _STDARG_H
-
-#define va_start(v,l) __builtin_va_start(v,l)
-#define va_end(v) __builtin_va_end(v)
-#define va_arg(v,l) __builtin_va_arg(v,l)
-#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L || defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define va_copy(d,s) __builtin_va_copy(d,s)
-#endif
-#define __va_copy(d,s) __builtin_va_copy(d,s)
-
-/* Define va_list, if desired, from __gnuc_va_list. */
-/* We deliberately do not define va_list when called from
- stdio.h, because ANSI C says that stdio.h is not supposed to define
- va_list. stdio.h needs to have access to that data type,
- but must not use that name. It should use the name __gnuc_va_list,
- which is safe because it is reserved for the implementation. */
-
-#ifdef _HIDDEN_VA_LIST /* On OSF1, this means varargs.h is "half-loaded". */
-#undef _VA_LIST
-#endif
-
-#ifdef _BSD_VA_LIST
-#undef _BSD_VA_LIST
-#endif
-
-#if defined(__svr4__) || (defined(_SCO_DS) && !defined(__VA_LIST))
-/* SVR4.2 uses _VA_LIST for an internal alias for va_list,
- so we must avoid testing it and setting it here.
- SVR4 uses _VA_LIST as a flag in stdarg.h, but we should
- have no conflict with that. */
-#ifndef _VA_LIST_
-#define _VA_LIST_
-#ifdef __i860__
-#ifndef _VA_LIST
-#define _VA_LIST va_list
-#endif
-#endif /* __i860__ */
-typedef __gnuc_va_list va_list;
-#ifdef _SCO_DS
-#define __VA_LIST
-#endif
-#endif /* _VA_LIST_ */
-#else /* not __svr4__ || _SCO_DS */
-
-/* The macro _VA_LIST_ is the same thing used by this file in Ultrix.
- But on BSD NET2 we must not test or define or undef it.
- (Note that the comments in NET 2's ansi.h
- are incorrect for _VA_LIST_--see stdio.h!) */
-#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__) || defined(WINNT)
-/* The macro _VA_LIST_DEFINED is used in Windows NT 3.5 */
-#ifndef _VA_LIST_DEFINED
-/* The macro _VA_LIST is used in SCO Unix 3.2. */
-#ifndef _VA_LIST
-/* The macro _VA_LIST_T_H is used in the Bull dpx2 */
-#ifndef _VA_LIST_T_H
-/* The macro __va_list__ is used by BeOS. */
-#ifndef __va_list__
-typedef __gnuc_va_list va_list;
-#endif /* not __va_list__ */
-#endif /* not _VA_LIST_T_H */
-#endif /* not _VA_LIST */
-#endif /* not _VA_LIST_DEFINED */
-#if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__))
-#define _VA_LIST_
-#endif
-#ifndef _VA_LIST
-#define _VA_LIST
-#endif
-#ifndef _VA_LIST_DEFINED
-#define _VA_LIST_DEFINED
-#endif
-#ifndef _VA_LIST_T_H
-#define _VA_LIST_T_H
-#endif
-#ifndef __va_list__
-#define __va_list__
-#endif
-
-#endif /* not _VA_LIST_, except on certain systems */
-
-#endif /* not __svr4__ */
-
-#endif /* _STDARG_H */
-
-#endif /* not _ANSI_STDARG_H_ */
-#endif /* not _STDARG_H */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stdbool.h b/lib/gcc/mipsel-linux-android/4.6/include/stdbool.h
deleted file mode 100644
index 4ed911f..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stdbool.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 7.16 Boolean type and values <stdbool.h>
- */
-
-#ifndef _STDBOOL_H
-#define _STDBOOL_H
-
-#ifndef __cplusplus
-
-#define bool _Bool
-#define true 1
-#define false 0
-
-#else /* __cplusplus */
-
-/* Supporting <stdbool.h> in C++ is a GCC extension. */
-#define _Bool bool
-#define bool bool
-#define false false
-#define true true
-
-#endif /* __cplusplus */
-
-/* Signal that all the definitions are present. */
-#define __bool_true_false_are_defined 1
-
-#endif /* stdbool.h */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stddef.h b/lib/gcc/mipsel-linux-android/4.6/include/stddef.h
deleted file mode 100644
index 565ef7b..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stddef.h
+++ /dev/null
@@ -1,418 +0,0 @@
-/* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009
- Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 7.17 Common definitions <stddef.h>
- */
-#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \
- && !defined(__STDDEF_H__)) \
- || defined(__need_wchar_t) || defined(__need_size_t) \
- || defined(__need_ptrdiff_t) || defined(__need_NULL) \
- || defined(__need_wint_t)
-
-/* Any one of these symbols __need_* means that GNU libc
- wants us just to define one data type. So don't define
- the symbols that indicate this file's entire job has been done. */
-#if (!defined(__need_wchar_t) && !defined(__need_size_t) \
- && !defined(__need_ptrdiff_t) && !defined(__need_NULL) \
- && !defined(__need_wint_t))
-#define _STDDEF_H
-#define _STDDEF_H_
-/* snaroff@next.com says the NeXT needs this. */
-#define _ANSI_STDDEF_H
-/* Irix 5.1 needs this. */
-#define __STDDEF_H__
-#endif
-
-#ifndef __sys_stdtypes_h
-/* This avoids lossage on SunOS but only if stdtypes.h comes first.
- There's no way to win with the other order! Sun lossage. */
-
-/* On 4.3bsd-net2, make sure ansi.h is included, so we have
- one less case to deal with in the following. */
-#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
-#include <machine/ansi.h>
-#endif
-/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-#include <sys/_types.h>
-#endif
-
-/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
- defined if the corresponding type is *not* defined.
- FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
- NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_)
-#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_)
-#define _SIZE_T
-#endif
-#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_)
-#define _PTRDIFF_T
-#endif
-/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
- instead of _WCHAR_T_. */
-#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_)
-#ifndef _BSD_WCHAR_T_
-#define _WCHAR_T
-#endif
-#endif
-/* Undef _FOO_T_ if we are supposed to define foo_t. */
-#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_)
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#if defined (__need_size_t) || defined (_STDDEF_H_)
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#if defined (__need_wchar_t) || defined (_STDDEF_H_)
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) */
-
-/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
- Just ignore it. */
-#if defined (__sequent__) && defined (_PTRDIFF_T_)
-#undef _PTRDIFF_T_
-#endif
-
-/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
- _TYPE_size_t which will typedef size_t. fixincludes patched the
- vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
- not defined, and so that defining this macro defines _GCC_SIZE_T.
- If we find that the macros are still defined at this point, we must
- invoke them so that the type is defined as expected. */
-#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_))
-_TYPE_ptrdiff_t;
-#undef _TYPE_ptrdiff_t
-#endif
-#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_))
-_TYPE_size_t;
-#undef _TYPE_size_t
-#endif
-#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_))
-_TYPE_wchar_t;
-#undef _TYPE_wchar_t
-#endif
-
-/* In case nobody has defined these types, but we aren't running under
- GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
- __WCHAR_TYPE__ have reasonable values. This can happen if the
- parts of GCC is compiled by an older compiler, that actually
- include gstddef.h, such as collect2. */
-
-/* Signed type of difference of two pointers. */
-
-/* Define this type if we are doing the whole job,
- or if we want this type in particular. */
-#if defined (_STDDEF_H) || defined (__need_ptrdiff_t)
-#ifndef _PTRDIFF_T /* in case <sys/types.h> has defined it. */
-#ifndef _T_PTRDIFF_
-#ifndef _T_PTRDIFF
-#ifndef __PTRDIFF_T
-#ifndef _PTRDIFF_T_
-#ifndef _BSD_PTRDIFF_T_
-#ifndef ___int_ptrdiff_t_h
-#ifndef _GCC_PTRDIFF_T
-#define _PTRDIFF_T
-#define _T_PTRDIFF_
-#define _T_PTRDIFF
-#define __PTRDIFF_T
-#define _PTRDIFF_T_
-#define _BSD_PTRDIFF_T_
-#define ___int_ptrdiff_t_h
-#define _GCC_PTRDIFF_T
-#ifndef __PTRDIFF_TYPE__
-#define __PTRDIFF_TYPE__ long int
-#endif
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-#endif /* _GCC_PTRDIFF_T */
-#endif /* ___int_ptrdiff_t_h */
-#endif /* _BSD_PTRDIFF_T_ */
-#endif /* _PTRDIFF_T_ */
-#endif /* __PTRDIFF_T */
-#endif /* _T_PTRDIFF */
-#endif /* _T_PTRDIFF_ */
-#endif /* _PTRDIFF_T */
-
-/* If this symbol has done its job, get rid of it. */
-#undef __need_ptrdiff_t
-
-#endif /* _STDDEF_H or __need_ptrdiff_t. */
-
-/* Unsigned type of `sizeof' something. */
-
-/* Define this type if we are doing the whole job,
- or if we want this type in particular. */
-#if defined (_STDDEF_H) || defined (__need_size_t)
-#ifndef __size_t__ /* BeOS */
-#ifndef __SIZE_T__ /* Cray Unicos/Mk */
-#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
-#ifndef _SYS_SIZE_T_H
-#ifndef _T_SIZE_
-#ifndef _T_SIZE
-#ifndef __SIZE_T
-#ifndef _SIZE_T_
-#ifndef _BSD_SIZE_T_
-#ifndef _SIZE_T_DEFINED_
-#ifndef _SIZE_T_DEFINED
-#ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */
-#ifndef _SIZE_T_DECLARED /* FreeBSD 5 */
-#ifndef ___int_size_t_h
-#ifndef _GCC_SIZE_T
-#ifndef _SIZET_
-#ifndef __size_t
-#define __size_t__ /* BeOS */
-#define __SIZE_T__ /* Cray Unicos/Mk */
-#define _SIZE_T
-#define _SYS_SIZE_T_H
-#define _T_SIZE_
-#define _T_SIZE
-#define __SIZE_T
-#define _SIZE_T_
-#define _BSD_SIZE_T_
-#define _SIZE_T_DEFINED_
-#define _SIZE_T_DEFINED
-#define _BSD_SIZE_T_DEFINED_ /* Darwin */
-#define _SIZE_T_DECLARED /* FreeBSD 5 */
-#define ___int_size_t_h
-#define _GCC_SIZE_T
-#define _SIZET_
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-/* __size_t is a typedef on FreeBSD 5!, must not trash it. */
-#else
-#define __size_t
-#endif
-#ifndef __SIZE_TYPE__
-#define __SIZE_TYPE__ long unsigned int
-#endif
-#if !(defined (__GNUG__) && defined (size_t))
-typedef __SIZE_TYPE__ size_t;
-#ifdef __BEOS__
-typedef long ssize_t;
-#endif /* __BEOS__ */
-#endif /* !(defined (__GNUG__) && defined (size_t)) */
-#endif /* __size_t */
-#endif /* _SIZET_ */
-#endif /* _GCC_SIZE_T */
-#endif /* ___int_size_t_h */
-#endif /* _SIZE_T_DECLARED */
-#endif /* _BSD_SIZE_T_DEFINED_ */
-#endif /* _SIZE_T_DEFINED */
-#endif /* _SIZE_T_DEFINED_ */
-#endif /* _BSD_SIZE_T_ */
-#endif /* _SIZE_T_ */
-#endif /* __SIZE_T */
-#endif /* _T_SIZE */
-#endif /* _T_SIZE_ */
-#endif /* _SYS_SIZE_T_H */
-#endif /* _SIZE_T */
-#endif /* __SIZE_T__ */
-#endif /* __size_t__ */
-#undef __need_size_t
-#endif /* _STDDEF_H or __need_size_t. */
-
-
-/* Wide character type.
- Locale-writers should change this as necessary to
- be big enough to hold unique values not between 0 and 127,
- and not (wchar_t) -1, for each defined multibyte character. */
-
-/* Define this type if we are doing the whole job,
- or if we want this type in particular. */
-#if defined (_STDDEF_H) || defined (__need_wchar_t)
-#ifndef __wchar_t__ /* BeOS */
-#ifndef __WCHAR_T__ /* Cray Unicos/Mk */
-#ifndef _WCHAR_T
-#ifndef _T_WCHAR_
-#ifndef _T_WCHAR
-#ifndef __WCHAR_T
-#ifndef _WCHAR_T_
-#ifndef _BSD_WCHAR_T_
-#ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */
-#ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */
-#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
-#ifndef _WCHAR_T_DEFINED_
-#ifndef _WCHAR_T_DEFINED
-#ifndef _WCHAR_T_H
-#ifndef ___int_wchar_t_h
-#ifndef __INT_WCHAR_T_H
-#ifndef _GCC_WCHAR_T
-#define __wchar_t__ /* BeOS */
-#define __WCHAR_T__ /* Cray Unicos/Mk */
-#define _WCHAR_T
-#define _T_WCHAR_
-#define _T_WCHAR
-#define __WCHAR_T
-#define _WCHAR_T_
-#define _BSD_WCHAR_T_
-#define _WCHAR_T_DEFINED_
-#define _WCHAR_T_DEFINED
-#define _WCHAR_T_H
-#define ___int_wchar_t_h
-#define __INT_WCHAR_T_H
-#define _GCC_WCHAR_T
-#define _WCHAR_T_DECLARED
-
-/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
- instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
- symbols in the _FOO_T_ family, stays defined even after its
- corresponding type is defined). If we define wchar_t, then we
- must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
- we undef _WCHAR_T_, then we must also define rune_t, since
- headers like runetype.h assume that if machine/ansi.h is included,
- and _BSD_WCHAR_T_ is not defined, then rune_t is available.
- machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
- the same type." */
-#ifdef _BSD_WCHAR_T_
-#undef _BSD_WCHAR_T_
-#ifdef _BSD_RUNE_T_
-#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
-typedef _BSD_RUNE_T_ rune_t;
-#define _BSD_WCHAR_T_DEFINED_
-#define _BSD_RUNE_T_DEFINED_ /* Darwin */
-#if defined (__FreeBSD__) && (__FreeBSD__ < 5)
-/* Why is this file so hard to maintain properly? In contrast to
- the comment above regarding BSD/386 1.1, on FreeBSD for as long
- as the symbol has existed, _BSD_RUNE_T_ must not stay defined or
- redundant typedefs will occur when stdlib.h is included after this file. */
-#undef _BSD_RUNE_T_
-#endif
-#endif
-#endif
-#endif
-/* FreeBSD 5 can't be handled well using "traditional" logic above
- since it no longer defines _BSD_RUNE_T_ yet still desires to export
- rune_t in some cases... */
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
-#if __BSD_VISIBLE
-#ifndef _RUNE_T_DECLARED
-typedef __rune_t rune_t;
-#define _RUNE_T_DECLARED
-#endif
-#endif
-#endif
-#endif
-
-#ifndef __WCHAR_TYPE__
-#define __WCHAR_TYPE__ int
-#endif
-#ifndef __cplusplus
-typedef __WCHAR_TYPE__ wchar_t;
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif /* _WCHAR_T_DECLARED */
-#endif /* _BSD_RUNE_T_DEFINED_ */
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif /* __WCHAR_T__ */
-#endif /* __wchar_t__ */
-#undef __need_wchar_t
-#endif /* _STDDEF_H or __need_wchar_t. */
-
-#if defined (__need_wint_t)
-#ifndef _WINT_T
-#define _WINT_T
-
-#ifndef __WINT_TYPE__
-#define __WINT_TYPE__ unsigned int
-#endif
-typedef __WINT_TYPE__ wint_t;
-#endif
-#undef __need_wint_t
-#endif
-
-/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
- are already defined. */
-/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
-/* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */
-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_)
-/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_
- are probably typos and should be removed before 2.8 is released. */
-#ifdef _GCC_PTRDIFF_T_
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#ifdef _GCC_SIZE_T_
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#ifdef _GCC_WCHAR_T_
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-/* The following ones are the real ones. */
-#ifdef _GCC_PTRDIFF_T
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#ifdef _GCC_SIZE_T
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#ifdef _GCC_WCHAR_T
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ || _X86_64_ANSI_H_ || _I386_ANSI_H_ */
-
-#endif /* __sys_stdtypes_h */
-
-/* A null pointer constant. */
-
-#if defined (_STDDEF_H) || defined (__need_NULL)
-#undef NULL /* in case <stdio.h> has defined it. */
-#ifdef __GNUG__
-#define NULL __null
-#else /* G++ */
-#ifndef __cplusplus
-#define NULL ((void *)0)
-#else /* C++ */
-#define NULL 0
-#endif /* C++ */
-#endif /* G++ */
-#endif /* NULL not defined and <stddef.h> or need NULL. */
-#undef __need_NULL
-
-#ifdef _STDDEF_H
-
-/* Offset of member MEMBER in a struct of type TYPE. */
-#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
-
-#endif /* _STDDEF_H was defined this time */
-
-#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__
- || __need_XXX was not defined before */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stdfix.h b/lib/gcc/mipsel-linux-android/4.6/include/stdfix.h
deleted file mode 100644
index 3c3ec00..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stdfix.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/* ISO/IEC JTC1 SC22 WG14 N1169
- * Date: 2006-04-04
- * ISO/IEC TR 18037
- * Programming languages - C - Extensions to support embedded processors
- */
-
-#ifndef _STDFIX_H
-#define _STDFIX_H
-
-/* 7.18a.1 Introduction. */
-
-#undef fract
-#undef accum
-#undef sat
-#define fract _Fract
-#define accum _Accum
-#define sat _Sat
-
-/* 7.18a.3 Precision macros. */
-
-#undef SFRACT_FBIT
-#undef SFRACT_MIN
-#undef SFRACT_MAX
-#undef SFRACT_EPSILON
-#define SFRACT_FBIT __SFRACT_FBIT__
-#define SFRACT_MIN __SFRACT_MIN__
-#define SFRACT_MAX __SFRACT_MAX__
-#define SFRACT_EPSILON __SFRACT_EPSILON__
-
-#undef USFRACT_FBIT
-#undef USFRACT_MIN
-#undef USFRACT_MAX
-#undef USFRACT_EPSILON
-#define USFRACT_FBIT __USFRACT_FBIT__
-#define USFRACT_MIN __USFRACT_MIN__ /* GCC extension. */
-#define USFRACT_MAX __USFRACT_MAX__
-#define USFRACT_EPSILON __USFRACT_EPSILON__
-
-#undef FRACT_FBIT
-#undef FRACT_MIN
-#undef FRACT_MAX
-#undef FRACT_EPSILON
-#define FRACT_FBIT __FRACT_FBIT__
-#define FRACT_MIN __FRACT_MIN__
-#define FRACT_MAX __FRACT_MAX__
-#define FRACT_EPSILON __FRACT_EPSILON__
-
-#undef UFRACT_FBIT
-#undef UFRACT_MIN
-#undef UFRACT_MAX
-#undef UFRACT_EPSILON
-#define UFRACT_FBIT __UFRACT_FBIT__
-#define UFRACT_MIN __UFRACT_MIN__ /* GCC extension. */
-#define UFRACT_MAX __UFRACT_MAX__
-#define UFRACT_EPSILON __UFRACT_EPSILON__
-
-#undef LFRACT_FBIT
-#undef LFRACT_MIN
-#undef LFRACT_MAX
-#undef LFRACT_EPSILON
-#define LFRACT_FBIT __LFRACT_FBIT__
-#define LFRACT_MIN __LFRACT_MIN__
-#define LFRACT_MAX __LFRACT_MAX__
-#define LFRACT_EPSILON __LFRACT_EPSILON__
-
-#undef ULFRACT_FBIT
-#undef ULFRACT_MIN
-#undef ULFRACT_MAX
-#undef ULFRACT_EPSILON
-#define ULFRACT_FBIT __ULFRACT_FBIT__
-#define ULFRACT_MIN __ULFRACT_MIN__ /* GCC extension. */
-#define ULFRACT_MAX __ULFRACT_MAX__
-#define ULFRACT_EPSILON __ULFRACT_EPSILON__
-
-#undef LLFRACT_FBIT
-#undef LLFRACT_MIN
-#undef LLFRACT_MAX
-#undef LLFRACT_EPSILON
-#define LLFRACT_FBIT __LLFRACT_FBIT__ /* GCC extension. */
-#define LLFRACT_MIN __LLFRACT_MIN__ /* GCC extension. */
-#define LLFRACT_MAX __LLFRACT_MAX__ /* GCC extension. */
-#define LLFRACT_EPSILON __LLFRACT_EPSILON__ /* GCC extension. */
-
-#undef ULLFRACT_FBIT
-#undef ULLFRACT_MIN
-#undef ULLFRACT_MAX
-#undef ULLFRACT_EPSILON
-#define ULLFRACT_FBIT __ULLFRACT_FBIT__ /* GCC extension. */
-#define ULLFRACT_MIN __ULLFRACT_MIN__ /* GCC extension. */
-#define ULLFRACT_MAX __ULLFRACT_MAX__ /* GCC extension. */
-#define ULLFRACT_EPSILON __ULLFRACT_EPSILON__ /* GCC extension. */
-
-#undef SACCUM_FBIT
-#undef SACCUM_IBIT
-#undef SACCUM_MIN
-#undef SACCUM_MAX
-#undef SACCUM_EPSILON
-#define SACCUM_FBIT __SACCUM_FBIT__
-#define SACCUM_IBIT __SACCUM_IBIT__
-#define SACCUM_MIN __SACCUM_MIN__
-#define SACCUM_MAX __SACCUM_MAX__
-#define SACCUM_EPSILON __SACCUM_EPSILON__
-
-#undef USACCUM_FBIT
-#undef USACCUM_IBIT
-#undef USACCUM_MIN
-#undef USACCUM_MAX
-#undef USACCUM_EPSILON
-#define USACCUM_FBIT __USACCUM_FBIT__
-#define USACCUM_IBIT __USACCUM_IBIT__
-#define USACCUM_MIN __USACCUM_MIN__ /* GCC extension. */
-#define USACCUM_MAX __USACCUM_MAX__
-#define USACCUM_EPSILON __USACCUM_EPSILON__
-
-#undef ACCUM_FBIT
-#undef ACCUM_IBIT
-#undef ACCUM_MIN
-#undef ACCUM_MAX
-#undef ACCUM_EPSILON
-#define ACCUM_FBIT __ACCUM_FBIT__
-#define ACCUM_IBIT __ACCUM_IBIT__
-#define ACCUM_MIN __ACCUM_MIN__
-#define ACCUM_MAX __ACCUM_MAX__
-#define ACCUM_EPSILON __ACCUM_EPSILON__
-
-#undef UACCUM_FBIT
-#undef UACCUM_IBIT
-#undef UACCUM_MIN
-#undef UACCUM_MAX
-#undef UACCUM_EPSILON
-#define UACCUM_FBIT __UACCUM_FBIT__
-#define UACCUM_IBIT __UACCUM_IBIT__
-#define UACCUM_MIN __UACCUM_MIN__ /* GCC extension. */
-#define UACCUM_MAX __UACCUM_MAX__
-#define UACCUM_EPSILON __UACCUM_EPSILON__
-
-#undef LACCUM_FBIT
-#undef LACCUM_IBIT
-#undef LACCUM_MIN
-#undef LACCUM_MAX
-#undef LACCUM_EPSILON
-#define LACCUM_FBIT __LACCUM_FBIT__
-#define LACCUM_IBIT __LACCUM_IBIT__
-#define LACCUM_MIN __LACCUM_MIN__
-#define LACCUM_MAX __LACCUM_MAX__
-#define LACCUM_EPSILON __LACCUM_EPSILON__
-
-#undef ULACCUM_FBIT
-#undef ULACCUM_IBIT
-#undef ULACCUM_MIN
-#undef ULACCUM_MAX
-#undef ULACCUM_EPSILON
-#define ULACCUM_FBIT __ULACCUM_FBIT__
-#define ULACCUM_IBIT __ULACCUM_IBIT__
-#define ULACCUM_MIN __ULACCUM_MIN__ /* GCC extension. */
-#define ULACCUM_MAX __ULACCUM_MAX__
-#define ULACCUM_EPSILON __ULACCUM_EPSILON__
-
-#undef LLACCUM_FBIT
-#undef LLACCUM_IBIT
-#undef LLACCUM_MIN
-#undef LLACCUM_MAX
-#undef LLACCUM_EPSILON
-#define LLACCUM_FBIT __LLACCUM_FBIT__ /* GCC extension. */
-#define LLACCUM_IBIT __LLACCUM_IBIT__ /* GCC extension. */
-#define LLACCUM_MIN __LLACCUM_MIN__ /* GCC extension. */
-#define LLACCUM_MAX __LLACCUM_MAX__ /* GCC extension. */
-#define LLACCUM_EPSILON __LLACCUM_EPSILON__ /* GCC extension. */
-
-#undef ULLACCUM_FBIT
-#undef ULLACCUM_IBIT
-#undef ULLACCUM_MIN
-#undef ULLACCUM_MAX
-#undef ULLACCUM_EPSILON
-#define ULLACCUM_FBIT __ULLACCUM_FBIT__ /* GCC extension. */
-#define ULLACCUM_IBIT __ULLACCUM_IBIT__ /* GCC extension. */
-#define ULLACCUM_MIN __ULLACCUM_MIN__ /* GCC extension. */
-#define ULLACCUM_MAX __ULLACCUM_MAX__ /* GCC extension. */
-#define ULLACCUM_EPSILON __ULLACCUM_EPSILON__ /* GCC extension. */
-
-#endif /* _STDFIX_H */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stdint-gcc.h b/lib/gcc/mipsel-linux-android/4.6/include/stdint-gcc.h
deleted file mode 100644
index 22780a1..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stdint-gcc.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-<http://www.gnu.org/licenses/>. */
-
-/*
- * ISO C Standard: 7.18 Integer types <stdint.h>
- */
-
-#ifndef _GCC_STDINT_H
-#define _GCC_STDINT_H
-
-/* 7.8.1.1 Exact-width integer types */
-
-#ifdef __INT8_TYPE__
-typedef __INT8_TYPE__ int8_t;
-#endif
-#ifdef __INT16_TYPE__
-typedef __INT16_TYPE__ int16_t;
-#endif
-#ifdef __INT32_TYPE__
-typedef __INT32_TYPE__ int32_t;
-#endif
-#ifdef __INT64_TYPE__
-typedef __INT64_TYPE__ int64_t;
-#endif
-#ifdef __UINT8_TYPE__
-typedef __UINT8_TYPE__ uint8_t;
-#endif
-#ifdef __UINT16_TYPE__
-typedef __UINT16_TYPE__ uint16_t;
-#endif
-#ifdef __UINT32_TYPE__
-typedef __UINT32_TYPE__ uint32_t;
-#endif
-#ifdef __UINT64_TYPE__
-typedef __UINT64_TYPE__ uint64_t;
-#endif
-
-/* 7.8.1.2 Minimum-width integer types */
-
-typedef __INT_LEAST8_TYPE__ int_least8_t;
-typedef __INT_LEAST16_TYPE__ int_least16_t;
-typedef __INT_LEAST32_TYPE__ int_least32_t;
-typedef __INT_LEAST64_TYPE__ int_least64_t;
-typedef __UINT_LEAST8_TYPE__ uint_least8_t;
-typedef __UINT_LEAST16_TYPE__ uint_least16_t;
-typedef __UINT_LEAST32_TYPE__ uint_least32_t;
-typedef __UINT_LEAST64_TYPE__ uint_least64_t;
-
-/* 7.8.1.3 Fastest minimum-width integer types */
-
-typedef __INT_FAST8_TYPE__ int_fast8_t;
-typedef __INT_FAST16_TYPE__ int_fast16_t;
-typedef __INT_FAST32_TYPE__ int_fast32_t;
-typedef __INT_FAST64_TYPE__ int_fast64_t;
-typedef __UINT_FAST8_TYPE__ uint_fast8_t;
-typedef __UINT_FAST16_TYPE__ uint_fast16_t;
-typedef __UINT_FAST32_TYPE__ uint_fast32_t;
-typedef __UINT_FAST64_TYPE__ uint_fast64_t;
-
-/* 7.8.1.4 Integer types capable of holding object pointers */
-
-#ifdef __INTPTR_TYPE__
-typedef __INTPTR_TYPE__ intptr_t;
-#endif
-#ifdef __UINTPTR_TYPE__
-typedef __UINTPTR_TYPE__ uintptr_t;
-#endif
-
-/* 7.8.1.5 Greatest-width integer types */
-
-typedef __INTMAX_TYPE__ intmax_t;
-typedef __UINTMAX_TYPE__ uintmax_t;
-
-#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
-
-/* 7.18.2 Limits of specified-width integer types */
-
-#ifdef __INT8_MAX__
-# undef INT8_MAX
-# define INT8_MAX __INT8_MAX__
-# undef INT8_MIN
-# define INT8_MIN (-INT8_MAX - 1)
-#endif
-#ifdef __UINT8_MAX__
-# undef UINT8_MAX
-# define UINT8_MAX __UINT8_MAX__
-#endif
-#ifdef __INT16_MAX__
-# undef INT16_MAX
-# define INT16_MAX __INT16_MAX__
-# undef INT16_MIN
-# define INT16_MIN (-INT16_MAX - 1)
-#endif
-#ifdef __UINT16_MAX__
-# undef UINT16_MAX
-# define UINT16_MAX __UINT16_MAX__
-#endif
-#ifdef __INT32_MAX__
-# undef INT32_MAX
-# define INT32_MAX __INT32_MAX__
-# undef INT32_MIN
-# define INT32_MIN (-INT32_MAX - 1)
-#endif
-#ifdef __UINT32_MAX__
-# undef UINT32_MAX
-# define UINT32_MAX __UINT32_MAX__
-#endif
-#ifdef __INT64_MAX__
-# undef INT64_MAX
-# define INT64_MAX __INT64_MAX__
-# undef INT64_MIN
-# define INT64_MIN (-INT64_MAX - 1)
-#endif
-#ifdef __UINT64_MAX__
-# undef UINT64_MAX
-# define UINT64_MAX __UINT64_MAX__
-#endif
-
-#undef INT_LEAST8_MAX
-#define INT_LEAST8_MAX __INT_LEAST8_MAX__
-#undef INT_LEAST8_MIN
-#define INT_LEAST8_MIN (-INT_LEAST8_MAX - 1)
-#undef UINT_LEAST8_MAX
-#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
-#undef INT_LEAST16_MAX
-#define INT_LEAST16_MAX __INT_LEAST16_MAX__
-#undef INT_LEAST16_MIN
-#define INT_LEAST16_MIN (-INT_LEAST16_MAX - 1)
-#undef UINT_LEAST16_MAX
-#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
-#undef INT_LEAST32_MAX
-#define INT_LEAST32_MAX __INT_LEAST32_MAX__
-#undef INT_LEAST32_MIN
-#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)
-#undef UINT_LEAST32_MAX
-#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
-#undef INT_LEAST64_MAX
-#define INT_LEAST64_MAX __INT_LEAST64_MAX__
-#undef INT_LEAST64_MIN
-#define INT_LEAST64_MIN (-INT_LEAST64_MAX - 1)
-#undef UINT_LEAST64_MAX
-#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
-
-#undef INT_FAST8_MAX
-#define INT_FAST8_MAX __INT_FAST8_MAX__
-#undef INT_FAST8_MIN
-#define INT_FAST8_MIN (-INT_FAST8_MAX - 1)
-#undef UINT_FAST8_MAX
-#define UINT_FAST8_MAX __UINT_FAST8_MAX__
-#undef INT_FAST16_MAX
-#define INT_FAST16_MAX __INT_FAST16_MAX__
-#undef INT_FAST16_MIN
-#define INT_FAST16_MIN (-INT_FAST16_MAX - 1)
-#undef UINT_FAST16_MAX
-#define UINT_FAST16_MAX __UINT_FAST16_MAX__
-#undef INT_FAST32_MAX
-#define INT_FAST32_MAX __INT_FAST32_MAX__
-#undef INT_FAST32_MIN
-#define INT_FAST32_MIN (-INT_FAST32_MAX - 1)
-#undef UINT_FAST32_MAX
-#define UINT_FAST32_MAX __UINT_FAST32_MAX__
-#undef INT_FAST64_MAX
-#define INT_FAST64_MAX __INT_FAST64_MAX__
-#undef INT_FAST64_MIN
-#define INT_FAST64_MIN (-INT_FAST64_MAX - 1)
-#undef UINT_FAST64_MAX
-#define UINT_FAST64_MAX __UINT_FAST64_MAX__
-
-#ifdef __INTPTR_MAX__
-# undef INTPTR_MAX
-# define INTPTR_MAX __INTPTR_MAX__
-# undef INTPTR_MIN
-# define INTPTR_MIN (-INTPTR_MAX - 1)
-#endif
-#ifdef __UINTPTR_MAX__
-# undef UINTPTR_MAX
-# define UINTPTR_MAX __UINTPTR_MAX__
-#endif
-
-#undef INTMAX_MAX
-#define INTMAX_MAX __INTMAX_MAX__
-#undef INTMAX_MIN
-#define INTMAX_MIN (-INTMAX_MAX - 1)
-#undef UINTMAX_MAX
-#define UINTMAX_MAX __UINTMAX_MAX__
-
-/* 7.18.3 Limits of other integer types */
-
-#undef PTRDIFF_MAX
-#define PTRDIFF_MAX __PTRDIFF_MAX__
-#undef PTRDIFF_MIN
-#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
-
-#undef SIG_ATOMIC_MAX
-#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX__
-#undef SIG_ATOMIC_MIN
-#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN__
-
-#undef SIZE_MAX
-#define SIZE_MAX __SIZE_MAX__
-
-#undef WCHAR_MAX
-#define WCHAR_MAX __WCHAR_MAX__
-#undef WCHAR_MIN
-#define WCHAR_MIN __WCHAR_MIN__
-
-#undef WINT_MAX
-#define WINT_MAX __WINT_MAX__
-#undef WINT_MIN
-#define WINT_MIN __WINT_MIN__
-
-#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
-
-#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS
-
-#undef INT8_C
-#define INT8_C(c) __INT8_C(c)
-#undef INT16_C
-#define INT16_C(c) __INT16_C(c)
-#undef INT32_C
-#define INT32_C(c) __INT32_C(c)
-#undef INT64_C
-#define INT64_C(c) __INT64_C(c)
-#undef UINT8_C
-#define UINT8_C(c) __UINT8_C(c)
-#undef UINT16_C
-#define UINT16_C(c) __UINT16_C(c)
-#undef UINT32_C
-#define UINT32_C(c) __UINT32_C(c)
-#undef UINT64_C
-#define UINT64_C(c) __UINT64_C(c)
-#undef INTMAX_C
-#define INTMAX_C(c) __INTMAX_C(c)
-#undef UINTMAX_C
-#define UINTMAX_C(c) __UINTMAX_C(c)
-
-#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
-
-#endif /* _GCC_STDINT_H */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/stdint.h b/lib/gcc/mipsel-linux-android/4.6/include/stdint.h
deleted file mode 100644
index e45f819..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/stdint.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef _GCC_WRAP_STDINT_H
-#if __STDC_HOSTED__
-# include_next <stdint.h>
-#else
-# include "stdint-gcc.h"
-#endif
-#define _GCC_WRAP_STDINT_H
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/unwind.h b/lib/gcc/mipsel-linux-android/4.6/include/unwind.h
deleted file mode 100644
index 4ff9017..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/unwind.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 2001, 2003, 2004, 2006, 2008, 2009 Free Software Foundation, Inc.
-
- This file is part of GCC.
-
- GCC 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, 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.
-
- Under Section 7 of GPL version 3, you are granted additional
- permissions described in the GCC Runtime Library Exception, version
- 3.1, as published by the Free Software Foundation.
-
- You should have received a copy of the GNU General Public License and
- a copy of the GCC Runtime Library Exception along with this program;
- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- <http://www.gnu.org/licenses/>. */
-
-/* This is derived from the C++ ABI for IA-64. Where we diverge
- for cross-architecture compatibility are noted with "@@@". */
-
-#ifndef _UNWIND_H
-#define _UNWIND_H
-
-#ifndef HIDE_EXPORTS
-#pragma GCC visibility push(default)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Level 1: Base ABI */
-
-/* @@@ The IA-64 ABI uses uint64 throughout. Most places this is
- inefficient for 32-bit and smaller machines. */
-typedef unsigned _Unwind_Word __attribute__((__mode__(__unwind_word__)));
-typedef signed _Unwind_Sword __attribute__((__mode__(__unwind_word__)));
-#if defined(__ia64__) && defined(__hpux__)
-typedef unsigned _Unwind_Ptr __attribute__((__mode__(__word__)));
-#else
-typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
-#endif
-typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));
-
-/* @@@ The IA-64 ABI uses a 64-bit word to identify the producer and
- consumer of an exception. We'll go along with this for now even on
- 32-bit machines. We'll need to provide some other option for
- 16-bit machines and for machines with > 8 bits per byte. */
-typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
-
-/* The unwind interface uses reason codes in several contexts to
- identify the reasons for failures or other actions. */
-typedef enum
-{
- _URC_NO_REASON = 0,
- _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
- _URC_FATAL_PHASE2_ERROR = 2,
- _URC_FATAL_PHASE1_ERROR = 3,
- _URC_NORMAL_STOP = 4,
- _URC_END_OF_STACK = 5,
- _URC_HANDLER_FOUND = 6,
- _URC_INSTALL_CONTEXT = 7,
- _URC_CONTINUE_UNWIND = 8
-} _Unwind_Reason_Code;
-
-
-/* The unwind interface uses a pointer to an exception header object
- as its representation of an exception being thrown. In general, the
- full representation of an exception object is language- and
- implementation-specific, but it will be prefixed by a header
- understood by the unwind interface. */
-
-struct _Unwind_Exception;
-
-typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code,
- struct _Unwind_Exception *);
-
-struct _Unwind_Exception
-{
- _Unwind_Exception_Class exception_class;
- _Unwind_Exception_Cleanup_Fn exception_cleanup;
- _Unwind_Word private_1;
- _Unwind_Word private_2;
-
- /* @@@ The IA-64 ABI says that this structure must be double-word aligned.
- Taking that literally does not make much sense generically. Instead we
- provide the maximum alignment required by any type for the machine. */
-} __attribute__((__aligned__));
-
-
-/* The ACTIONS argument to the personality routine is a bitwise OR of one
- or more of the following constants. */
-typedef int _Unwind_Action;
-
-#define _UA_SEARCH_PHASE 1
-#define _UA_CLEANUP_PHASE 2
-#define _UA_HANDLER_FRAME 4
-#define _UA_FORCE_UNWIND 8
-#define _UA_END_OF_STACK 16
-
-/* The target can override this macro to define any back-end-specific
- attributes required for the lowest-level stack frame. */
-#ifndef LIBGCC2_UNWIND_ATTRIBUTE
-#define LIBGCC2_UNWIND_ATTRIBUTE
-#endif
-
-/* This is an opaque type used to refer to a system-specific data
- structure used by the system unwinder. This context is created and
- destroyed by the system, and passed to the personality routine
- during unwinding. */
-struct _Unwind_Context;
-
-/* Raise an exception, passing along the given exception object. */
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_RaiseException (struct _Unwind_Exception *);
-
-/* Raise an exception for forced unwinding. */
-
-typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
- (int, _Unwind_Action, _Unwind_Exception_Class,
- struct _Unwind_Exception *, struct _Unwind_Context *, void *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-
-/* Helper to invoke the exception_cleanup routine. */
-extern void _Unwind_DeleteException (struct _Unwind_Exception *);
-
-/* Resume propagation of an existing exception. This is used after
- e.g. executing cleanup code, and not to implement rethrowing. */
-extern void LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Resume (struct _Unwind_Exception *);
-
-/* @@@ Resume propagation of a FORCE_UNWIND exception, or to rethrow
- a normal exception that was handled. */
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *);
-
-/* @@@ Use unwind data to perform a stack backtrace. The trace callback
- is called for every stack frame in the call chain, but no cleanup
- actions are performed. */
-typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
- (struct _Unwind_Context *, void *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Backtrace (_Unwind_Trace_Fn, void *);
-
-/* These functions are used for communicating information about the unwind
- context (i.e. the unwind descriptors and the user register state) between
- the unwind library and the personality routine and landing pad. Only
- selected registers may be manipulated. */
-
-extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int);
-extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
-
-extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
-extern _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *);
-extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
-
-/* @@@ Retrieve the CFA of the given context. */
-extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
-
-extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
-
-extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
-
-
-/* The personality routine is the function in the C++ (or other language)
- runtime library which serves as an interface between the system unwind
- library and language-specific exception handling semantics. It is
- specific to the code fragment described by an unwind info block, and
- it is always referenced via the pointer in the unwind info block, and
- hence it has no ABI-specified name.
-
- Note that this implies that two different C++ implementations can
- use different names, and have different contents in the language
- specific data area. Moreover, that the language specific data
- area contains no version info because name of the function invoked
- provides more effective versioning by detecting at link time the
- lack of code to handle the different data format. */
-
-typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
- (int, _Unwind_Action, _Unwind_Exception_Class,
- struct _Unwind_Exception *, struct _Unwind_Context *);
-
-/* @@@ The following alternate entry points are for setjmp/longjmp
- based unwinding. */
-
-struct SjLj_Function_Context;
-extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *);
-extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_RaiseException (struct _Unwind_Exception *);
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-extern void LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_Resume (struct _Unwind_Exception *);
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_Resume_or_Rethrow (struct _Unwind_Exception *);
-
-/* @@@ The following provide access to the base addresses for text
- and data-relative addressing in the LDSA. In order to stay link
- compatible with the standard ABI for IA-64, we inline these. */
-
-#ifdef __ia64__
-#include <stdlib.h>
-
-static inline _Unwind_Ptr
-_Unwind_GetDataRelBase (struct _Unwind_Context *_C)
-{
- /* The GP is stored in R1. */
- return _Unwind_GetGR (_C, 1);
-}
-
-static inline _Unwind_Ptr
-_Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
-{
- abort ();
- return 0;
-}
-
-/* @@@ Retrieve the Backing Store Pointer of the given context. */
-extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
-#else
-extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
-extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
-#endif
-
-/* @@@ Given an address, return the entry point of the function that
- contains it. */
-extern void * _Unwind_FindEnclosingFunction (void *pc);
-
-#ifndef __SIZEOF_LONG__
- #error "__SIZEOF_LONG__ macro not defined"
-#endif
-
-#ifndef __SIZEOF_POINTER__
- #error "__SIZEOF_POINTER__ macro not defined"
-#endif
-
-
-/* leb128 type numbers have a potentially unlimited size.
- The target of the following definitions of _sleb128_t and _uleb128_t
- is to have efficient data types large enough to hold the leb128 type
- numbers used in the unwind code.
- Mostly these types will simply be defined to long and unsigned long
- except when a unsigned long data type on the target machine is not
- capable of storing a pointer. */
-
-#if __SIZEOF_LONG__ >= __SIZEOF_POINTER__
- typedef long _sleb128_t;
- typedef unsigned long _uleb128_t;
-#elif __SIZEOF_LONG_LONG__ >= __SIZEOF_POINTER__
- typedef long long _sleb128_t;
- typedef unsigned long long _uleb128_t;
-#else
-# error "What type shall we use for _sleb128_t?"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef HIDE_EXPORTS
-#pragma GCC visibility pop
-#endif
-
-#endif /* unwind.h */
diff --git a/lib/gcc/mipsel-linux-android/4.6/include/varargs.h b/lib/gcc/mipsel-linux-android/4.6/include/varargs.h
deleted file mode 100644
index 4b9803e..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/include/varargs.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _VARARGS_H
-#define _VARARGS_H
-
-#error "GCC no longer implements <varargs.h>."
-#error "Revise your code to use <stdarg.h>."
-
-#endif
diff --git a/lib/gcc/mipsel-linux-android/4.6/libgcc.a b/lib/gcc/mipsel-linux-android/4.6/libgcc.a
deleted file mode 100644
index 978121a..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/libgcc.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/libgcov.a b/lib/gcc/mipsel-linux-android/4.6/libgcov.a
deleted file mode 100644
index 8bcd369..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/libgcov.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbegin.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbegin.o
deleted file mode 100644
index d71a311..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbegin.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginS.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginS.o
deleted file mode 100644
index 2c94e68..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginT.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginT.o
deleted file mode 100644
index d71a311..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtbeginT.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtend.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtend.o
deleted file mode 100644
index c1de15e..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtend.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtendS.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtendS.o
deleted file mode 100644
index c1de15e..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtendS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtfastmath.o b/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtfastmath.o
deleted file mode 100644
index 0c78818..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/crtfastmath.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcc.a b/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcc.a
deleted file mode 100644
index c6d9d0d..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcc.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcov.a b/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcov.a
deleted file mode 100644
index 71217cc..0000000
--- a/lib/gcc/mipsel-linux-android/4.6/mips-r2/libgcov.a
+++ /dev/null
Binary files differ
diff --git a/lib/libiberty.a b/lib/libiberty.a
deleted file mode 100644
index 8e360ae..0000000
--- a/lib/libiberty.a
+++ /dev/null
Binary files differ
diff --git a/lib/libmipsel-unknown-linux-android-sim.a b/lib/libmipsel-unknown-linux-android-sim.a
deleted file mode 100644
index 8e569d7..0000000
--- a/lib/libmipsel-unknown-linux-android-sim.a
+++ /dev/null
Binary files differ