Updates WindCharger toolchain.

uClibc config is updated to fix a minor compatibility issue with
protobuf-3.0.0-a2.  This issue is caused by a missing PP macro.

Main updates include the uClibc config, the crosstool config, and the
README.  Everything else is binary.

Change-Id: I1d3769793b93199300cfd8ad2370bf623692f757
diff --git a/README.build b/README.build
index 30663fe..f08cc0f 100644
--- a/README.build
+++ b/README.build
@@ -19,7 +19,7 @@
   -- WCHAR
   -- RPC
   -- IPV6
-  -- PTHREADS (w/ debugging.  NPTL impl)
+  -- PTHREADS (w/ debugging.  old linux impl.  No TLS)
 
 Some patches had to be made to the base installation of crosstool-ng, namely the
 inclusion of a proper PATH variable in order not to use the default host
diff --git a/bin/mips-linux-uclibc-addr2line b/bin/mips-linux-uclibc-addr2line
new file mode 120000
index 0000000..7281628
--- /dev/null
+++ b/bin/mips-linux-uclibc-addr2line
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-addr2line
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-ar b/bin/mips-linux-uclibc-ar
new file mode 120000
index 0000000..050b103
--- /dev/null
+++ b/bin/mips-linux-uclibc-ar
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-ar
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-as b/bin/mips-linux-uclibc-as
new file mode 120000
index 0000000..5fb0a1b
--- /dev/null
+++ b/bin/mips-linux-uclibc-as
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-as
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-c++ b/bin/mips-linux-uclibc-c++
new file mode 120000
index 0000000..c764434
--- /dev/null
+++ b/bin/mips-linux-uclibc-c++
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-c++
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-c++filt b/bin/mips-linux-uclibc-c++filt
new file mode 120000
index 0000000..a208641
--- /dev/null
+++ b/bin/mips-linux-uclibc-c++filt
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-c++filt
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-cc b/bin/mips-linux-uclibc-cc
new file mode 120000
index 0000000..e559203
--- /dev/null
+++ b/bin/mips-linux-uclibc-cc
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-cc
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-cpp b/bin/mips-linux-uclibc-cpp
new file mode 120000
index 0000000..3c42dad
--- /dev/null
+++ b/bin/mips-linux-uclibc-cpp
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-cpp
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-ct-ng.config b/bin/mips-linux-uclibc-ct-ng.config
new file mode 120000
index 0000000..d6f2f77
--- /dev/null
+++ b/bin/mips-linux-uclibc-ct-ng.config
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-ct-ng.config
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-elfedit b/bin/mips-linux-uclibc-elfedit
new file mode 120000
index 0000000..e575d11
--- /dev/null
+++ b/bin/mips-linux-uclibc-elfedit
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-elfedit
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-g++ b/bin/mips-linux-uclibc-g++
new file mode 120000
index 0000000..386eda0
--- /dev/null
+++ b/bin/mips-linux-uclibc-g++
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-g++
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-gcc b/bin/mips-linux-uclibc-gcc
new file mode 120000
index 0000000..8724085
--- /dev/null
+++ b/bin/mips-linux-uclibc-gcc
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-gcc
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-gcc-4.6.4 b/bin/mips-linux-uclibc-gcc-4.6.4
new file mode 120000
index 0000000..77af136
--- /dev/null
+++ b/bin/mips-linux-uclibc-gcc-4.6.4
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-gcc-4.6.4
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-gcov b/bin/mips-linux-uclibc-gcov
new file mode 120000
index 0000000..63d6fdc
--- /dev/null
+++ b/bin/mips-linux-uclibc-gcov
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-gcov
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-gdb b/bin/mips-linux-uclibc-gdb
new file mode 120000
index 0000000..02e90a4
--- /dev/null
+++ b/bin/mips-linux-uclibc-gdb
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-gdb
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-gprof b/bin/mips-linux-uclibc-gprof
new file mode 120000
index 0000000..6bb4972
--- /dev/null
+++ b/bin/mips-linux-uclibc-gprof
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-gprof
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-ld b/bin/mips-linux-uclibc-ld
new file mode 120000
index 0000000..ca100d0
--- /dev/null
+++ b/bin/mips-linux-uclibc-ld
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-ld
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-ld.bfd b/bin/mips-linux-uclibc-ld.bfd
new file mode 120000
index 0000000..f14aa9d
--- /dev/null
+++ b/bin/mips-linux-uclibc-ld.bfd
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-ld.bfd
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-nm b/bin/mips-linux-uclibc-nm
new file mode 120000
index 0000000..b95b4b1
--- /dev/null
+++ b/bin/mips-linux-uclibc-nm
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-nm
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-objcopy b/bin/mips-linux-uclibc-objcopy
new file mode 120000
index 0000000..4751125
--- /dev/null
+++ b/bin/mips-linux-uclibc-objcopy
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-objcopy
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-objdump b/bin/mips-linux-uclibc-objdump
new file mode 120000
index 0000000..57c933a
--- /dev/null
+++ b/bin/mips-linux-uclibc-objdump
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-objdump
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-populate b/bin/mips-linux-uclibc-populate
new file mode 120000
index 0000000..36b9539
--- /dev/null
+++ b/bin/mips-linux-uclibc-populate
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-populate
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-ranlib b/bin/mips-linux-uclibc-ranlib
new file mode 120000
index 0000000..df98498
--- /dev/null
+++ b/bin/mips-linux-uclibc-ranlib
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-ranlib
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-readelf b/bin/mips-linux-uclibc-readelf
new file mode 120000
index 0000000..ef4aa1e
--- /dev/null
+++ b/bin/mips-linux-uclibc-readelf
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-readelf
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-size b/bin/mips-linux-uclibc-size
new file mode 120000
index 0000000..3d45871
--- /dev/null
+++ b/bin/mips-linux-uclibc-size
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-size
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-strings b/bin/mips-linux-uclibc-strings
new file mode 120000
index 0000000..5c9e240
--- /dev/null
+++ b/bin/mips-linux-uclibc-strings
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-strings
\ No newline at end of file
diff --git a/bin/mips-linux-uclibc-strip b/bin/mips-linux-uclibc-strip
new file mode 120000
index 0000000..46f5da6
--- /dev/null
+++ b/bin/mips-linux-uclibc-strip
@@ -0,0 +1 @@
+mips-qca-linux-uclibc-strip
\ No newline at end of file
diff --git a/bin/mips-qca-linux-uclibc-as b/bin/mips-qca-linux-uclibc-as
index 57a9ce1..832d300 100755
--- a/bin/mips-qca-linux-uclibc-as
+++ b/bin/mips-qca-linux-uclibc-as
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-c++ b/bin/mips-qca-linux-uclibc-c++
index 23076b3..e682358 100755
--- a/bin/mips-qca-linux-uclibc-c++
+++ b/bin/mips-qca-linux-uclibc-c++
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-c++filt b/bin/mips-qca-linux-uclibc-c++filt
index 027214e..8585430 100755
--- a/bin/mips-qca-linux-uclibc-c++filt
+++ b/bin/mips-qca-linux-uclibc-c++filt
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-cpp b/bin/mips-qca-linux-uclibc-cpp
index 65f35f8..ca888e9 100755
--- a/bin/mips-qca-linux-uclibc-cpp
+++ b/bin/mips-qca-linux-uclibc-cpp
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-ct-ng.config b/bin/mips-qca-linux-uclibc-ct-ng.config
index 183d73f..9f3f20e 100755
--- a/bin/mips-qca-linux-uclibc-ct-ng.config
+++ b/bin/mips-qca-linux-uclibc-ct-ng.config
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-elfedit b/bin/mips-qca-linux-uclibc-elfedit
index c9981b0..459b404 100755
--- a/bin/mips-qca-linux-uclibc-elfedit
+++ b/bin/mips-qca-linux-uclibc-elfedit
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-g++ b/bin/mips-qca-linux-uclibc-g++
index 23076b3..e682358 100755
--- a/bin/mips-qca-linux-uclibc-g++
+++ b/bin/mips-qca-linux-uclibc-g++
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-gcc b/bin/mips-qca-linux-uclibc-gcc
index a53d492..13ed9fa 100755
--- a/bin/mips-qca-linux-uclibc-gcc
+++ b/bin/mips-qca-linux-uclibc-gcc
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-gcc-4.6.4 b/bin/mips-qca-linux-uclibc-gcc-4.6.4
index a53d492..13ed9fa 100755
--- a/bin/mips-qca-linux-uclibc-gcc-4.6.4
+++ b/bin/mips-qca-linux-uclibc-gcc-4.6.4
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-gcov b/bin/mips-qca-linux-uclibc-gcov
index c82d524..a9cd9a8 100755
--- a/bin/mips-qca-linux-uclibc-gcov
+++ b/bin/mips-qca-linux-uclibc-gcov
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-gdb b/bin/mips-qca-linux-uclibc-gdb
index 0837a3c..18b44fb 100755
--- a/bin/mips-qca-linux-uclibc-gdb
+++ b/bin/mips-qca-linux-uclibc-gdb
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-gprof b/bin/mips-qca-linux-uclibc-gprof
index 366039c..d380c70 100755
--- a/bin/mips-qca-linux-uclibc-gprof
+++ b/bin/mips-qca-linux-uclibc-gprof
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-ld b/bin/mips-qca-linux-uclibc-ld
index 75af92e..8348002 100755
--- a/bin/mips-qca-linux-uclibc-ld
+++ b/bin/mips-qca-linux-uclibc-ld
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-ld.bfd b/bin/mips-qca-linux-uclibc-ld.bfd
index 75af92e..8348002 100755
--- a/bin/mips-qca-linux-uclibc-ld.bfd
+++ b/bin/mips-qca-linux-uclibc-ld.bfd
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-nm b/bin/mips-qca-linux-uclibc-nm
index ae22d62..f2ef614 100755
--- a/bin/mips-qca-linux-uclibc-nm
+++ b/bin/mips-qca-linux-uclibc-nm
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-objcopy b/bin/mips-qca-linux-uclibc-objcopy
index 04cdec9..fc0ddfe 100755
--- a/bin/mips-qca-linux-uclibc-objcopy
+++ b/bin/mips-qca-linux-uclibc-objcopy
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-objdump b/bin/mips-qca-linux-uclibc-objdump
index 9f708c2..11c0b62 100755
--- a/bin/mips-qca-linux-uclibc-objdump
+++ b/bin/mips-qca-linux-uclibc-objdump
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-populate b/bin/mips-qca-linux-uclibc-populate
new file mode 100755
index 0000000..16d7de1
--- /dev/null
+++ b/bin/mips-qca-linux-uclibc-populate
@@ -0,0 +1,297 @@
+#!/bin/sh
+# This script will populate the root directory with libs from the sysroot.
+# (C) 2007 Yann E. MORIN
+# Licensed under the GPL v2
+set -e
+
+# Use the tools discovered by crosstool-NG's ./configure:
+install="/usr/bin/install -c"
+grep="/bin/grep"
+sed="/bin/sed"
+
+# Detect where the toolchain is:
+CT_PREFIX_DIR="$(cd "$(dirname "$0")/.."; pwd)"
+CT_GCC="${0%-populate}-gcc"
+CT_READELF="${0%-populate}-readelf"
+CT_CFG_PREFIX_DIR="$("${CT_GCC}" -v 2>&1            \
+                     |tr ' ' '\n'                   \
+                     |"${grep}" -E -- '--prefix='   \
+                     |cut -d = -f 2-
+                    )"
+CT_CFG_SYSROOT_DIR="$("${CT_GCC}" -v 2>&1                   \
+                      |tr ' ' '\n'                          \
+                      |"${grep}" -E -- '--with-sysroot='    \
+                      |cut -d = -f 2-
+                     )"
+CT_SYSROOT_DIR="$(printf "${CT_CFG_SYSROOT_DIR}\n"                              \
+                  |"${sed}" -r -e "s:^${CT_CFG_PREFIX_DIR}:${CT_PREFIX_DIR}:;"  \
+                  |"${sed}" -r -e 's,/+,/,g;'                                   \
+                 )"
+
+myname=$(basename "$0")
+
+doHelp() {
+    cat <<_EOF_
+NAME
+    $myname - populate the target root file system
+
+SYNOPSIS
+    $myname OPTIONS -s source_root -d destination_root
+
+DESCRIPTION
+    This script will 'populate' your target root file system 'source_root'
+    with libraries from the toolchain (eg. libc.so...), storing the result
+    into 'dst_dir'.
+
+OPTIONS
+    -s src_dir
+        Use 'src_dir' as the un-populated (source) root directory.
+
+    -d dst_dir
+        Use 'dst_dir' as the place to put the populated root directory.
+        See the -f and -m options, below, on the required (non-)existence
+        of this directory.
+
+    -r sysroot_dir
+        Use 'sysroot_dir' as the sysroot instead of the toolchain default.
+
+    -l name1[:name2[...]]
+        Always add the specified shared library/ies name1, name2... from the
+        toolchain (in the sysroot). Actual library names are searched as
+        follows (where 'name' is replaced with the given name) in the
+        sysroot directory:
+          - libname.so
+          - name.so
+          - name
+        If the file is found, then the SONAME of the library is used, and the
+        library is copied with that name. If the library was not found, this
+        yields an error (unless -f was given).
+
+    -L file
+        Read 'file' for a list of shared libraries to always add from the
+        toolchain. The file should contain one library name per line; text
+        after a # is ignored until the end of the line; spaces are ignored;
+        empty lines are ignored. Libraries are searched for as with -l.
+
+    -f  Force execution: if destination directory already exists, it will be
+        removed first; if a specified library (above) was not found, continue.
+        Note: if using -m and the destination directory already exists, it
+        is *not* removed, see below.
+
+    -m  Merge the source root directory with the destination root directory.
+        If the latter does not exist, it is created, and -m is ignored.
+        If the destination root directory exists, then the content of the
+        source root directory is copied in there, and the result is populated
+        as usual.
+        It can be useful if constructing a rootfs incrementally from many
+        smaller source root directories, or if your destination root directory
+        is an NFS export that your target mounts as / (and you don't want to
+        re-run exportfs -av everytime). USE WITH CARE!
+
+    -v  Be verbose. By default, populate is absolutely silent.
+
+_EOF_
+}
+
+CT_ROOT_SRC_DIR=
+CT_ROOT_DST_DIR=
+CT_LIB_LIST=
+CT_LIB_FILE=
+CT_MERGE=
+CT_FORCE=
+CT_PRINTF=:
+OPTIND=1
+while getopts ":s:d:r:l:L:fmvh" CT_OPT; do
+    case "${CT_OPT}" in
+        s)  CT_ROOT_SRC_DIR="${OPTARG}";;
+        d)  CT_ROOT_DST_DIR="${OPTARG}";;
+        r)  CT_SYSROOT_DIR="${OPTARG}";;
+        l)  CT_LIB_LIST="${CT_LIB_LIST}:${OPTARG}";;
+        L)  CT_LIB_FILE="${OPTARG}";;
+        f)  CT_FORCE=y;;
+        m)  CT_MERGE=y;;
+        v)  CT_PRINTF=printf;;
+        h)  doHelp
+            exit 0
+            ;;
+        :)  printf "$myname: '-${OPTARG}' takes exactly one argument.\n"
+            exit 1
+            ;;
+        ?)  printf "$myname: unknown option '-${OPTARG}'.\n"
+            exit 1
+            ;;
+    esac
+done
+
+# Sanity checks
+if [ -z "${CT_ROOT_SRC_DIR}" -o -z "${CT_ROOT_DST_DIR}" ]; then
+    doHelp
+    exit 1
+fi
+if [ ! -d "${CT_ROOT_SRC_DIR}" ]; then
+    printf "$myname: '${CT_ROOT_SRC_DIR}': no such file or directory\n"
+    exit 1
+fi
+if [ ! -d "${CT_SYSROOT_DIR}" ]; then
+    printf "$myname: '${CT_SYSROOT_DIR}': no such file or directory\n"
+    exit 1
+fi
+# If the dest dir does not exist, all is well
+# If merging, we accept an existing dest directory
+# If forcing and not merging, we remove an exiting dest directory
+# If not forcing and not merging, we do not accept an exiting dest directory
+if [ -d "${CT_ROOT_DST_DIR}" ]; then
+    case "${CT_FORCE}:${CT_MERGE}" in
+        *:y)    ;;
+        y:)     rm -rf "${CT_ROOT_DST_DIR}";;
+        :)      printf "$myname: '${CT_ROOT_DST_DIR}': already exists\n"
+                exit 1
+                ;;
+    esac
+fi
+src_inode=$(ls -1id "${CT_ROOT_SRC_DIR}/." |awk '{ print $1 }')
+dst_inode=$(ls -1id "${CT_ROOT_DST_DIR}/." 2>/dev/null |awk '{ print $1 }')
+if [ "${src_inode}" -eq "$((dst_inode+0))" ]; then
+    printf "$myname: source and destination are the same!\n"
+    exit 1
+fi
+
+# Check existence of the forced libraries file
+if [ -n "${CT_LIB_FILE}" -a ! \( -f "${CT_LIB_FILE}" -a -r "${CT_LIB_FILE}" \) ]; then
+    printf "$myname: forced libraries file '${CT_LIB_FILE}' not found!\n"
+    exit 1
+fi
+
+# Create the working copy, no issue if already existing
+mkdir -p "${CT_ROOT_DST_DIR}"
+
+# Make all path absolute
+CT_ROOT_SRC_DIR=$(cd "${CT_ROOT_SRC_DIR}"; pwd)
+CT_ROOT_DST_DIR=$(cd "${CT_ROOT_DST_DIR}"; pwd)
+CT_SYSROOT_DIR=$(cd "${CT_SYSROOT_DIR}"; pwd)
+
+# Populate the destination directory with files from the source directory
+cd "${CT_ROOT_SRC_DIR}"
+cp -a . "${CT_ROOT_DST_DIR}"
+cd - >/dev/null
+
+# A function do search for a library
+# Usage: do_add_lib libname
+# returns: 0 if library was found and added, !0 otherwise
+do_add_lib() {
+    local libname="$1"
+    local true_libname
+    local dir
+    local mode
+
+    for dir in lib usr/lib; do
+        if [ -e "${dir}/${libname}" ]; then
+            ${CT_PRINTF} "    already present\n"
+            return 0
+        fi
+    done
+    for dir in lib usr/lib; do
+        ${CT_PRINTF} "    trying in '%s'" "${dir}"
+        libfile="${CT_SYSROOT_DIR}/${dir}/${libname}"
+        ${CT_PRINTF} ": '%s'\n" "${libfile}"
+        if [ -e "${libfile}" ]; then
+            mkdir -p "${dir}"
+            true_libname=$("${CT_READELF}" -d "${libfile}"          \
+                           |"${grep}" "Library soname:"             \
+                           |"${sed}" -r -e 's,.+\[(.+)\] *$,\1,;'   \
+                          )
+            case "${libfile}" in
+                */ld*)  mode=0755;;
+                *)      mode=0644;;
+            esac
+            ${CT_PRINTF} "      installing as '%s/%s', mode='%s'\n" "${dir}" "${true_libname}" "${mode}"
+            ${install} -m "${mode}" "${libfile}" "${dir}/${true_libname}"
+            do_resolve_deps "${dir}/${true_libname}"
+            return 0
+        fi
+    done
+    return 1
+}
+
+# A function to resolve all NEEDED entries for the given file, relative
+# to the working directory (eg. dst_dir)
+# Usage: do_resolve_deps some/where/some/file
+# Returns: 0, meaning all dependencies were found
+# If not all dependencies could be found, exists with error code 1
+# (unless forced)
+do_resolve_deps() {
+    local file="${1}"
+    local libname
+    
+    for libname in $("${CT_READELF}" -d "${file}"                           \
+                     |"${grep}" -E '\(NEEDED\)[[:space:]]+Shared library:'  \
+                     |"${sed}" -r -e 's,.+\[(.+)\] *$,\1,;'                 \
+                    ); do
+        [ -n "${libname}" ] || continue
+        ${CT_PRINTF} "Searching for '%s' needed by '%s'\n" "${libname}" "${file}"
+        if ! do_add_lib "${libname}"; then
+            printf "$myname: library '${libname}' not found!\n"
+            [ "${CT_FORCE}" = "y" ] || exit 1
+        fi
+    done
+}
+
+# We'll work in the copied rootfs
+cd "${CT_ROOT_DST_DIR}"
+
+# First of, copy the forced libraries into the working copy
+lib_list=
+if [ -n "${CT_LIB_FILE}" ]; then
+    lib_list=$("${sed}" -r -e ':loop; s/#.*//;'         \
+                           -e 's/[[:space:]]+//g;'      \
+                           -e 's/([^:])$/\1:/;'         \
+                           -e '/$/N; s/\n//; tloop;'    \
+                        "${CT_LIB_FILE}"
+              )
+fi
+CT_LIB_LIST=$(printf "${CT_LIB_LIST}:${lib_list}\n"         \
+              |"${sed}" -r -e 's/^:+//; s/:+$//; s/:+/ /g;' \
+             )
+if [ -n "${CT_LIB_LIST}" ]; then
+    for name in ${CT_LIB_LIST}; do
+        [ -z "${name}" ] && continue
+        found=0
+        for libname in "lib${name}.so" "${name}.so" "${name}"; do
+            ${CT_PRINTF} "Searching for forced library '%s'\n" "${libname}"
+            if do_add_lib "${libname}"; then
+                found=1
+                break
+            fi
+        done
+        if [ ${found} -eq 0 ]; then
+            printf "$myname: library '${libname}' not found!\n"
+            [ "${CT_FORCE}" = "y" ] || exit 1
+        fi
+    done
+fi
+
+# Create a temporary place where to store... temp files.
+rand="$( dd if=/dev/urandom bs=1024 count=1 2>/dev/null \
+         |md5sum                                        \
+         |awk '{ print $1; }'
+       )"
+CT_TMP_DIR="${TMPDIR:-/tmp}/populate-${rand}-${$}"
+( umask 0077; mkdir "${CT_TMP_DIR}" ) || { printf "Could not create temporary directory\n"; exit 1; }
+trap "rm -rf ${CT_TMP_DIR}" EXIT
+
+# List all ELF (executables|shared objects)...
+find . -type f -exec file {} \;                                             \
+|"${grep}" -E ': ELF [[:digit:]]+-bit (L|M)SB +(executable|shared object),' \
+|cut -d ":" -f 1                                                            \
+>"${CT_TMP_DIR}/files.list"
+
+# ... and use that list to find missing dependencies
+while read file; do
+    do_resolve_deps "${file}"
+done <"${CT_TMP_DIR}/files.list"
+
+rm -rf "${CT_TMP_DIR}"
+trap - EXIT
+
+# OK, we're done. Back off.
+cd - >/dev/null
diff --git a/bin/mips-qca-linux-uclibc-ranlib b/bin/mips-qca-linux-uclibc-ranlib
index 662788e..1c15b95 100755
--- a/bin/mips-qca-linux-uclibc-ranlib
+++ b/bin/mips-qca-linux-uclibc-ranlib
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-readelf b/bin/mips-qca-linux-uclibc-readelf
index 6beaf92..a6281f3 100755
--- a/bin/mips-qca-linux-uclibc-readelf
+++ b/bin/mips-qca-linux-uclibc-readelf
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-size b/bin/mips-qca-linux-uclibc-size
index 825ea4d..3fc94c3 100755
--- a/bin/mips-qca-linux-uclibc-size
+++ b/bin/mips-qca-linux-uclibc-size
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-strings b/bin/mips-qca-linux-uclibc-strings
index ec6db59..6a2c85d 100755
--- a/bin/mips-qca-linux-uclibc-strings
+++ b/bin/mips-qca-linux-uclibc-strings
Binary files differ
diff --git a/bin/mips-qca-linux-uclibc-strip b/bin/mips-qca-linux-uclibc-strip
index 12e3a08..12be6b8 100755
--- a/bin/mips-qca-linux-uclibc-strip
+++ b/bin/mips-qca-linux-uclibc-strip
Binary files differ
diff --git a/build/crosstool-1.20-build.config b/build/crosstool-1.20-build.config
index 92561af..adc4ccc 100644
--- a/build/crosstool-1.20-build.config
+++ b/build/crosstool-1.20-build.config
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # crosstool-NG 1.20.0 Configuration
-# Fri Feb  6 17:37:36 2015
+# Fri Feb 20 10:26:13 2015
 #
 CT_CONFIGURE_has_make381=y
 CT_CONFIGURE_has_xz=y
@@ -100,14 +100,14 @@
 CT_ARCH_DEFAULT_BE=y
 CT_ARCH_DEFAULT_32=y
 CT_ARCH_ARCH="mips32r2"
-CT_ARCH_TUNE="24kc"
+CT_ARCH_TUNE="mips32r2"
 CT_ARCH_BE=y
 # CT_ARCH_LE is not set
 CT_ARCH_32=y
 CT_ARCH_BITNESS=32
 # CT_ARCH_FLOAT_HW is not set
 CT_ARCH_FLOAT_SW=y
-CT_TARGET_CFLAGS="-fPIC"
+CT_TARGET_CFLAGS=""
 CT_TARGET_LDFLAGS=""
 # CT_ARCH_alpha is not set
 # CT_ARCH_arm is not set
@@ -174,9 +174,9 @@
 #
 # Tuple completion and aliasing
 #
-CT_TARGET_VENDOR="qca"
+CT_TARGET_VENDOR=""
 CT_TARGET_ALIAS_SED_EXPR=""
-CT_TARGET_ALIAS=""
+CT_TARGET_ALIAS="mips-linux-uclibc"
 
 #
 # Toolchain type
@@ -309,7 +309,7 @@
 # CT_LIBC_musl is not set
 CT_LIBC_uClibc=y
 CT_LIBC_eglibc_AVAILABLE=y
-CT_THREADS="nptl"
+CT_THREADS="linuxthreads"
 CT_LIBC_glibc_AVAILABLE=y
 CT_LIBC_mingw_AVAILABLE=y
 CT_LIBC_musl_AVAILABLE=y
@@ -347,15 +347,17 @@
 #
 # Common C library options
 #
-CT_THREADS_NATIVE=y
-# CT_THREADS_LT is not set
+# CT_THREADS_NATIVE is not set
+CT_THREADS_LT=y
 # CT_THREADS_NONE is not set
-CT_LIBC_XLDD=y
+# CT_LIBC_XLDD is not set
 
 #
 # uClibc other options
 #
-CT_LIBC_UCLIBC_LNXTHRD=""
+CT_LIBC_UCLIBC_LNXTHRD_OLD=y
+# CT_LIBC_UCLIBC_LNXTHRD_NEW is not set
+CT_LIBC_UCLIBC_LNXTHRD="old"
 # CT_LIBC_UCLIBC_LOCALES is not set
 CT_LIBC_UCLIBC_WCHAR=y
 # CT_LIBC_UCLIBC_FENV is not set
@@ -441,8 +443,8 @@
 # gcc other options
 #
 CT_CC_ENABLE_CXX_FLAGS=""
-CT_CC_CORE_EXTRA_CONFIG_ARRAY="--with-float=soft --disable-libssp --disable-decimal-float --enable-target-optspace --disable-__cxa_atexit --disable-nls"
-CT_CC_EXTRA_CONFIG_ARRAY="--disable-libssp --disable-__cxa_atexit --with-float=soft --enable-target-optspace --with-gnu-ld --disable-decimal-float --enable-threads --disable-nls --with-abi=\"32\" --disable-multilib --with-fPIC --disable-nls"
+CT_CC_CORE_EXTRA_CONFIG_ARRAY="--with-float=soft --disable-libssp --disable-decimal-float --enable-target-optspace --disable-__cxa_atexit --disable-nls --disable-tls"
+CT_CC_EXTRA_CONFIG_ARRAY="--disable-libssp --disable-__cxa_atexit --with-float=soft --enable-target-optspace --with-gnu-ld --disable-decimal-float --enable-threads --disable-nls --with-abi=\"32\" --disable-multilib --with-fPIC --disable-nls -disable-tls"
 # CT_CC_STATIC_LIBSTDCXX is not set
 # CT_CC_GCC_SYSTEM_ZLIB is not set
 
@@ -467,10 +469,6 @@
 CT_CC_GCC_SJLJ_EXCEPTIONS=m
 CT_CC_GCC_LDBL_128=m
 CT_CC_GCC_BUILD_ID=y
-# CT_CC_GCC_LNK_HASH_STYLE_DEFAULT is not set
-# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set
-# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set
-# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set
 # CT_CC_GCC_DEC_FLOAT_AUTO is not set
 # CT_CC_GCC_DEC_FLOAT_BID is not set
 # CT_CC_GCC_DEC_FLOAT_DPD is not set
diff --git a/build/uClibc-0.9.33.2.config b/build/uClibc-0.9.33.2.config
index 5596728..a4865c9 100644
--- a/build/uClibc-0.9.33.2.config
+++ b/build/uClibc-0.9.33.2.config
@@ -43,7 +43,7 @@
 ARCH_HAS_MMU=y
 ARCH_USE_MMU=y
 UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=n
+# UCLIBC_HAS_FPU is not set
 DO_C99_MATH=y
 # UCLIBC_HAS_FENV is not set
 UCLIBC_HAS_LONG_DOUBLE_MATH=y
@@ -60,19 +60,20 @@
 HAVE_SHARED=y
 FORCE_SHAREABLE_TEXT_SEGMENTS=y
 LDSO_LDD_SUPPORT=y
-# LDSO_CACHE_SUPPORT is not set
+LDSO_CACHE_SUPPORT=y
 # LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
 # UCLIBC_STATIC_LDCONFIG is not set
 LDSO_RUNPATH=y
 UCLIBC_CTOR_DTOR=y
 # LDSO_GNU_HASH_SUPPORT is not set
 # HAS_NO_THREADS is not set
 UCLIBC_HAS_THREADS=y
-UCLIBC_HAS_THREADS_NATIVE=y
-UCLIBC_HAS_TLS=y
-UCLIBC_HAS_STDIO_FUTEXES=y
+# UCLIBC_HAS_THREADS_NATIVE is not set
+# UCLIBC_HAS_TLS is not set
+# UCLIBC_HAS_STDIO_FUTEXES is not set
 PTHREADS_DEBUG_SUPPORT=y
-#LINUXTHREADS_OLD is not set
+LINUXTHREADS_OLD=y
 UCLIBC_HAS_SYSLOG=y
 UCLIBC_HAS_LFS=y
 UCLIBC_HAS_LIBUTIL=y
@@ -131,7 +132,7 @@
 UCLIBC_HAS_IPV6=y
 UCLIBC_HAS_RPC=y
 UCLIBC_HAS_FULL_RPC=y
-# UCLIBC_HAS_REENTRANT_RPC is not set
+UCLIBC_HAS_REENTRANT_RPC=y
 UCLIBC_USE_NETLINK=y
 UCLIBC_HAS_LIBRESOLV_STUB=y
 UCLIBC_HAS_LIBNSL_STUB=y
@@ -142,14 +143,14 @@
 #
 # String and Stdio Support
 #
-# UCLIBC_HAS_STRING_GENERIC_OPT is not set
-# UCLIBC_HAS_STRING_ARCH_OPT is not set
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
 UCLIBC_HAS_CTYPE_TABLES=y
 UCLIBC_HAS_CTYPE_SIGNED=y
 # UCLIBC_HAS_CTYPE_UNSAFE is not set
-# UCLIBC_HAS_CTYPE_CHECKED is not set
-UCLIBC_HAS_CTYPE_ENFORCED=y
-# UCLIBC_HAS_WCHAR is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
 # UCLIBC_HAS_LOCALE is not set
 UCLIBC_HAS_HEXADECIMAL_FLOATS=y
 UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
@@ -167,8 +168,8 @@
 # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
 # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
 # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-# UCLIBC_HAS_STDIO_GETC_MACRO is not set
-# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
 UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
 # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
 UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
@@ -179,15 +180,15 @@
 UCLIBC_HAS_SIGNUM_MESSAGES=y
 # UCLIBC_HAS_SYS_SIGLIST is not set
 UCLIBC_HAS_GNU_GETOPT=y
-# UCLIBC_HAS_GNU_GETSUBOPT is not set
+UCLIBC_HAS_GNU_GETSUBOPT=y
 
 #
 # Big and Tall
 #
 UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_REGEX_OLD=y
 UCLIBC_HAS_FNMATCH=y
-# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_FNMATCH_OLD=y
 # UCLIBC_HAS_WORDEXP is not set
 UCLIBC_HAS_FTW=y
 UCLIBC_HAS_GLOB=y
@@ -206,7 +207,7 @@
 # UCLIBC_BUILD_PIE is not set
 # UCLIBC_HAS_ARC4RANDOM is not set
 # HAVE_NO_SSP is not set
-UCLIBC_HAS_SSP=y
+# UCLIBC_HAS_SSP is not set
 # UCLIBC_HAS_SSP_COMPAT is not set
 # SSP_QUICK_CANARY is not set
 PROPOLICE_BLOCK_ABRT=y
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbegin.o b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbegin.o
index 5455636..9b1569c 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbegin.o
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginS.o b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginS.o
index e934307..224f8c0 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginS.o
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginT.o b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginT.o
index 611930d..9a20c6e 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginT.o
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtendS.o b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtendS.o
index 89a410c..2f2dae0 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtendS.o
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/crtendS.o
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc.a b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc.a
index f28d8ac..76323c7 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc.a
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc.a
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc_eh.a b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc_eh.a
index 18d6dac..d409f22 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc_eh.a
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcc_eh.a
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcov.a b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcov.a
index d3f4b2f..38c054e 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcov.a
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/libgcov.a
Binary files differ
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/auto-host.h b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/auto-host.h
index 17ea7a3..6446f97 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/auto-host.h
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/auto-host.h
@@ -470,7 +470,7 @@
 
 /* Define if your assembler and linker support thread-local storage. */
 #ifndef USED_FOR_TARGET
-#define HAVE_AS_TLS 1
+/* #undef HAVE_AS_TLS */
 #endif
 
 
@@ -1717,7 +1717,7 @@
 
 /* Define if your target C library provides stack protector support */
 #ifndef USED_FOR_TARGET
-#define TARGET_LIBC_PROVIDES_SSP 1
+/* #undef TARGET_LIBC_PROVIDES_SSP */
 #endif
 
 
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/configargs.h b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/configargs.h
index a117c15..6885b73 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/configargs.h
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/configargs.h
@@ -1,7 +1,7 @@
 /* Generated automatically. */
-static const char configuration_arguments[] = "/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/src/gcc-4.6.4/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=mips-qca-linux-uclibc --prefix=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc --with-sysroot=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc/mips-qca-linux-uclibc/sysroot --enable-languages=c,c++ --with-arch=mips32r2 --with-abi=32 --with-tune=24kc --with-float=soft --with-pkgversion='crosstool-NG 1.20.0' --disable-__cxa_atexit --enable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-mpfr=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-mpc=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-ppl=no --with-isl=no --with-cloog=no --with-libelf=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --enable-threads=posix --enable-target-optspace --enable-linker-build-id --enable-decimal-float=no --with-mips-plt --disable-nls --disable-multilib --with-local-prefix=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc/mips-qca-linux-uclibc/sysroot --enable-c99 --enable-long-long --disable-libssp --disable-__cxa_atexit --with-float=soft --enable-target-optspace --with-gnu-ld --disable-decimal-float --enable-threads --disable-nls --with-abi=32 --disable-multilib --with-fPIC --disable-nls";
+static const char configuration_arguments[] = "/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/src/gcc-4.6.4/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=mips-qca-linux-uclibc --prefix=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc --with-sysroot=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc/mips-qca-linux-uclibc/sysroot --enable-languages=c,c++ --with-arch=mips32r2 --with-abi=32 --with-tune=mips32r2 --with-float=soft --with-pkgversion='crosstool-NG 1.20.0' --disable-__cxa_atexit --enable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --with-gmp=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-mpfr=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-mpc=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --with-ppl=no --with-isl=no --with-cloog=no --with-libelf=/usr/local/google/home/awdavies/proj/crosstool/mips32r2/.build/mips-qca-linux-uclibc/buildtools --enable-threads=posix --enable-target-optspace --enable-linker-build-id --enable-decimal-float=no --with-mips-plt --disable-nls --disable-multilib --with-local-prefix=/usr/local/google/home/awdavies/x-tools/mips-qca-linux-uclibc/mips-qca-linux-uclibc/sysroot --enable-c99 --enable-long-long --disable-libssp --disable-__cxa_atexit --with-float=soft --enable-target-optspace --with-gnu-ld --disable-decimal-float --enable-threads --disable-nls --with-abi=32 --disable-multilib --with-fPIC --disable-nls -disable-tls";
 static const char thread_model[] = "posix";
 
 static const struct {
   const char *name, *value;
-} configure_default_options[] = { { "abi", "32" }, { "arch", "mips32r2" }, { "tune", "24kc" }, { "float", "soft" }, { "llsc", "llsc" }, { "mips-plt", "plt" }, { "synci", "no-synci" } };
+} configure_default_options[] = { { "abi", "32" }, { "arch", "mips32r2" }, { "tune", "mips32r2" }, { "float", "soft" }, { "llsc", "llsc" }, { "mips-plt", "plt" }, { "synci", "no-synci" } };
diff --git a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/insn-flags.h b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/insn-flags.h
index 05bc828..ac1fff2 100644
--- a/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/insn-flags.h
+++ b/lib/gcc/mips-qca-linux-uclibc/4.6.4/plugin/include/insn-flags.h
@@ -248,8 +248,6 @@
 #define HAVE_consttable_int (TARGET_MIPS16)
 #define HAVE_consttable_float (TARGET_MIPS16)
 #define HAVE_align 1
-#define HAVE_tls_get_tp_si ((HAVE_AS_TLS && !TARGET_MIPS16) && (Pmode == SImode))
-#define HAVE_tls_get_tp_di ((HAVE_AS_TLS && !TARGET_MIPS16) && (Pmode == DImode))
 #define HAVE_sync_compare_and_swapsi (GENERATE_LL_SC)
 #define HAVE_sync_compare_and_swapdi ((GENERATE_LL_SC) && (TARGET_64BIT))
 #define HAVE_compare_and_swap_12 (GENERATE_LL_SC)
@@ -1046,8 +1044,18 @@
 extern rtx        gen_consttable_int                  (rtx, rtx);
 extern rtx        gen_consttable_float                (rtx);
 extern rtx        gen_align                           (rtx);
-extern rtx        gen_tls_get_tp_si                   (rtx);
-extern rtx        gen_tls_get_tp_di                   (rtx);
+static inline rtx gen_tls_get_tp_si                   (rtx);
+static inline rtx
+gen_tls_get_tp_si(rtx ARG_UNUSED (a))
+{
+  return 0;
+}
+static inline rtx gen_tls_get_tp_di                   (rtx);
+static inline rtx
+gen_tls_get_tp_di(rtx ARG_UNUSED (a))
+{
+  return 0;
+}
 extern rtx        gen_sync_compare_and_swapsi         (rtx, rtx, rtx, rtx);
 extern rtx        gen_sync_compare_and_swapdi         (rtx, rtx, rtx, rtx);
 extern rtx        gen_compare_and_swap_12             (rtx, rtx, rtx, rtx, rtx, rtx);
diff --git a/lib/libiberty.a b/lib/libiberty.a
index 5d5ab15..52e5c06 100644
--- a/lib/libiberty.a
+++ b/lib/libiberty.a
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1 b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1
index 8b6bfc0..d9946c9 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1plus b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1plus
index 164c66a..a89d9ca 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1plus
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/cc1plus
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/collect2 b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/collect2
index aea8067..040a08e 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/collect2
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/collect2
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/install-tools/fixincl b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/install-tools/fixincl
index e285e35..2cd98ba 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/install-tools/fixincl
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/install-tools/fixincl
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto-wrapper b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto-wrapper
index 498fc20..631f1e1 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto-wrapper
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto1 b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto1
index a4f39a6..d681240 100755
--- a/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto1
+++ b/libexec/gcc/mips-qca-linux-uclibc/4.6.4/lto1
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/as b/mips-qca-linux-uclibc/bin/as
index 57a9ce1..832d300 100755
--- a/mips-qca-linux-uclibc/bin/as
+++ b/mips-qca-linux-uclibc/bin/as
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/c++ b/mips-qca-linux-uclibc/bin/c++
index 23076b3..e682358 100755
--- a/mips-qca-linux-uclibc/bin/c++
+++ b/mips-qca-linux-uclibc/bin/c++
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/g++ b/mips-qca-linux-uclibc/bin/g++
index 23076b3..e682358 100755
--- a/mips-qca-linux-uclibc/bin/g++
+++ b/mips-qca-linux-uclibc/bin/g++
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/gcc b/mips-qca-linux-uclibc/bin/gcc
index a53d492..13ed9fa 100755
--- a/mips-qca-linux-uclibc/bin/gcc
+++ b/mips-qca-linux-uclibc/bin/gcc
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/ld b/mips-qca-linux-uclibc/bin/ld
index 75af92e..8348002 100755
--- a/mips-qca-linux-uclibc/bin/ld
+++ b/mips-qca-linux-uclibc/bin/ld
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/ld.bfd b/mips-qca-linux-uclibc/bin/ld.bfd
index 75af92e..8348002 100755
--- a/mips-qca-linux-uclibc/bin/ld.bfd
+++ b/mips-qca-linux-uclibc/bin/ld.bfd
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/nm b/mips-qca-linux-uclibc/bin/nm
index ae22d62..f2ef614 100755
--- a/mips-qca-linux-uclibc/bin/nm
+++ b/mips-qca-linux-uclibc/bin/nm
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/objcopy b/mips-qca-linux-uclibc/bin/objcopy
index 04cdec9..fc0ddfe 100755
--- a/mips-qca-linux-uclibc/bin/objcopy
+++ b/mips-qca-linux-uclibc/bin/objcopy
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/objdump b/mips-qca-linux-uclibc/bin/objdump
index 9f708c2..11c0b62 100755
--- a/mips-qca-linux-uclibc/bin/objdump
+++ b/mips-qca-linux-uclibc/bin/objdump
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/ranlib b/mips-qca-linux-uclibc/bin/ranlib
index 662788e..1c15b95 100755
--- a/mips-qca-linux-uclibc/bin/ranlib
+++ b/mips-qca-linux-uclibc/bin/ranlib
Binary files differ
diff --git a/mips-qca-linux-uclibc/bin/strip b/mips-qca-linux-uclibc/bin/strip
index 12e3a08..12be6b8 100755
--- a/mips-qca-linux-uclibc/bin/strip
+++ b/mips-qca-linux-uclibc/bin/strip
Binary files differ
diff --git a/mips-qca-linux-uclibc/debug-root/usr/bin/gdbserver b/mips-qca-linux-uclibc/debug-root/usr/bin/gdbserver
index 54a1eb1..88701c9 100755
--- a/mips-qca-linux-uclibc/debug-root/usr/bin/gdbserver
+++ b/mips-qca-linux-uclibc/debug-root/usr/bin/gdbserver
Binary files differ
diff --git a/mips-qca-linux-uclibc/include/c++/4.6.4/mips-qca-linux-uclibc/bits/c++config.h b/mips-qca-linux-uclibc/include/c++/4.6.4/mips-qca-linux-uclibc/bits/c++config.h
index 353d84c..0a1b959 100644
--- a/mips-qca-linux-uclibc/include/c++/4.6.4/mips-qca-linux-uclibc/bits/c++config.h
+++ b/mips-qca-linux-uclibc/include/c++/4.6.4/mips-qca-linux-uclibc/bits/c++config.h
@@ -844,7 +844,7 @@
 #define _GLIBCXX_HAVE_TGMATH_H 1
 
 /* Define to 1 if the target supports thread-local storage. */
-#define _GLIBCXX_HAVE_TLS 1
+/* #undef _GLIBCXX_HAVE_TLS */
 
 /* Define to 1 if you have the <unistd.h> header file. */
 #define _GLIBCXX_HAVE_UNISTD_H 1
diff --git a/mips-qca-linux-uclibc/sysroot/lib/ld-uClibc-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/ld-uClibc-0.9.33.2.so
index 6b18eb1..90e0c78 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/ld-uClibc-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/ld-uClibc-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libcrypt-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libcrypt-0.9.33.2.so
index cfc7562..f42abf4 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libcrypt-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libcrypt-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libdl-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libdl-0.9.33.2.so
index 1ce6d5e..c6c306c 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libdl-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libdl-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libgcc_s.so.1 b/mips-qca-linux-uclibc/sysroot/lib/libgcc_s.so.1
index e8e560f..f62bff1 100644
--- a/mips-qca-linux-uclibc/sysroot/lib/libgcc_s.so.1
+++ b/mips-qca-linux-uclibc/sysroot/lib/libgcc_s.so.1
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libm-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libm-0.9.33.2.so
index 2c5aa6b..cafefa2 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libm-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libm-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libmudflap.a b/mips-qca-linux-uclibc/sysroot/lib/libmudflap.a
index 7cf2f9c..45969ab 100644
--- a/mips-qca-linux-uclibc/sysroot/lib/libmudflap.a
+++ b/mips-qca-linux-uclibc/sysroot/lib/libmudflap.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libmudflap.so.0.0.0 b/mips-qca-linux-uclibc/sysroot/lib/libmudflap.so.0.0.0
index 5dddbc3..2a2646d 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libmudflap.so.0.0.0
+++ b/mips-qca-linux-uclibc/sysroot/lib/libmudflap.so.0.0.0
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.a b/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.a
index 629427e..a4d7a47 100644
--- a/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.a
+++ b/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.so.0.0.0 b/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.so.0.0.0
index c80442a..f11839e 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.so.0.0.0
+++ b/mips-qca-linux-uclibc/sysroot/lib/libmudflapth.so.0.0.0
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libpthread-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libpthread-0.9.33.2.so
index 96503bf..2d85ac6 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libpthread-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libpthread-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/librt-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/librt-0.9.33.2.so
index 328861a..1590228 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/librt-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/librt-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libstdc++.a b/mips-qca-linux-uclibc/sysroot/lib/libstdc++.a
index c565836..da08684 100644
--- a/mips-qca-linux-uclibc/sysroot/lib/libstdc++.a
+++ b/mips-qca-linux-uclibc/sysroot/lib/libstdc++.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libstdc++.so.6.0.16 b/mips-qca-linux-uclibc/sysroot/lib/libstdc++.so.6.0.16
index 60b8bbe..b3a0351 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libstdc++.so.6.0.16
+++ b/mips-qca-linux-uclibc/sysroot/lib/libstdc++.so.6.0.16
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libsupc++.a b/mips-qca-linux-uclibc/sysroot/lib/libsupc++.a
index ed40981..9ac4c75 100644
--- a/mips-qca-linux-uclibc/sysroot/lib/libsupc++.a
+++ b/mips-qca-linux-uclibc/sysroot/lib/libsupc++.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libthread_db-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libthread_db-0.9.33.2.so
index af21827..a38344f 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libthread_db-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libthread_db-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/lib/libuClibc-0.9.33.2.so b/mips-qca-linux-uclibc/sysroot/lib/libuClibc-0.9.33.2.so
index 5a6b17f..cb429d1 100755
--- a/mips-qca-linux-uclibc/sysroot/lib/libuClibc-0.9.33.2.so
+++ b/mips-qca-linux-uclibc/sysroot/lib/libuClibc-0.9.33.2.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/atomic.h b/mips-qca-linux-uclibc/sysroot/usr/include/atomic.h
deleted file mode 100644
index 6383572..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/include/atomic.h
+++ /dev/null
@@ -1,537 +0,0 @@
-/* Internal macros for atomic operations for GNU C Library.
-   Copyright (C) 2002-2006, 2009 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _ATOMIC_H
-#define _ATOMIC_H	1
-
-/* This header defines three types of macros:
-
-   - atomic arithmetic and logic operation on memory.  They all
-     have the prefix "atomic_".
-
-   - conditionally atomic operations of the same kinds.  These
-     always behave identical but can be faster when atomicity
-     is not really needed since only one thread has access to
-     the memory location.  In that case the code is slower in
-     the multi-thread case.  The interfaces have the prefix
-     "catomic_".
-
-   - support functions like barriers.  They also have the preifx
-     "atomic_".
-
-   Architectures must provide a few lowlevel macros (the compare
-   and exchange definitions).  All others are optional.  They
-   should only be provided if the architecture has specific
-   support for the operation.
-
-   As <atomic.h> macros are usually heavily nested and often use local
-   variables to make sure side-effects are evaluated properly, use for
-   macro local variables a per-macro unique prefix.  This file uses
-   __atgN_ prefix where N is different in each macro.  */
-
-#include <stdlib.h>
-
-#include <bits/atomic.h>
-
-/* Wrapper macros to call pre_NN_post (mem, ...) where NN is the
-   bit width of *MEM.  The calling macro puts parens around MEM
-   and following args.  */
-#define __atomic_val_bysize(pre, post, mem, ...)			      \
-  ({									      \
-    __typeof (*mem) __atg1_result;					      \
-    if (sizeof (*mem) == 1)						      \
-      __atg1_result = pre##_8_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 2)					      \
-      __atg1_result = pre##_16_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 4)					      \
-      __atg1_result = pre##_32_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 8)					      \
-      __atg1_result = pre##_64_##post (mem, __VA_ARGS__);		      \
-    else								      \
-      abort ();								      \
-    __atg1_result;							      \
-  })
-#define __atomic_bool_bysize(pre, post, mem, ...)			      \
-  ({									      \
-    int __atg2_result;							      \
-    if (sizeof (*mem) == 1)						      \
-      __atg2_result = pre##_8_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 2)					      \
-      __atg2_result = pre##_16_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 4)					      \
-      __atg2_result = pre##_32_##post (mem, __VA_ARGS__);		      \
-    else if (sizeof (*mem) == 8)					      \
-      __atg2_result = pre##_64_##post (mem, __VA_ARGS__);		      \
-    else								      \
-      abort ();								      \
-    __atg2_result;							      \
-  })
-
-
-/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
-   Return the old *MEM value.  */
-#if !defined atomic_compare_and_exchange_val_acq \
-    && defined __arch_compare_and_exchange_val_32_acq
-# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
-  __atomic_val_bysize (__arch_compare_and_exchange_val,acq,		      \
-		       mem, newval, oldval)
-#endif
-
-
-#ifndef catomic_compare_and_exchange_val_acq
-# ifdef __arch_c_compare_and_exchange_val_32_acq
-#  define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
-  __atomic_val_bysize (__arch_c_compare_and_exchange_val,acq,		      \
-		       mem, newval, oldval)
-# else
-#  define catomic_compare_and_exchange_val_acq(mem, newval, oldval) \
-  atomic_compare_and_exchange_val_acq (mem, newval, oldval)
-# endif
-#endif
-
-
-#ifndef catomic_compare_and_exchange_val_rel
-# ifndef atomic_compare_and_exchange_val_rel
-#  define catomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
-  catomic_compare_and_exchange_val_acq (mem, newval, oldval)
-# else
-#  define catomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
-  atomic_compare_and_exchange_val_rel (mem, newval, oldval)
-# endif
-#endif
-
-
-#ifndef atomic_compare_and_exchange_val_rel
-# define atomic_compare_and_exchange_val_rel(mem, newval, oldval)	      \
-  atomic_compare_and_exchange_val_acq (mem, newval, oldval)
-#endif
-
-
-/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
-   Return zero if *MEM was changed or non-zero if no exchange happened.  */
-#ifndef atomic_compare_and_exchange_bool_acq
-# ifdef __arch_compare_and_exchange_bool_32_acq
-#  define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
-  __atomic_bool_bysize (__arch_compare_and_exchange_bool,acq,		      \
-		        mem, newval, oldval)
-# else
-#  define atomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
-  ({ /* Cannot use __oldval here, because macros later in this file might     \
-	call this macro with __oldval argument.	 */			      \
-     __typeof (oldval) __atg3_old = (oldval);				      \
-     atomic_compare_and_exchange_val_acq (mem, newval, __atg3_old)	      \
-       != __atg3_old;							      \
-  })
-# endif
-#endif
-
-
-#ifndef catomic_compare_and_exchange_bool_acq
-# ifdef __arch_c_compare_and_exchange_bool_32_acq
-#  define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
-  __atomic_bool_bysize (__arch_c_compare_and_exchange_bool,acq,		      \
-		        mem, newval, oldval)
-# else
-#  define catomic_compare_and_exchange_bool_acq(mem, newval, oldval) \
-  ({ /* Cannot use __oldval here, because macros later in this file might     \
-	call this macro with __oldval argument.	 */			      \
-     __typeof (oldval) __atg4_old = (oldval);				      \
-     catomic_compare_and_exchange_val_acq (mem, newval, __atg4_old)	      \
-       != __atg4_old;							      \
-  })
-# endif
-#endif
-
-
-#ifndef catomic_compare_and_exchange_bool_rel
-# ifndef atomic_compare_and_exchange_bool_rel
-#  define catomic_compare_and_exchange_bool_rel(mem, newval, oldval)	      \
-  catomic_compare_and_exchange_bool_acq (mem, newval, oldval)
-# else
-#  define catomic_compare_and_exchange_bool_rel(mem, newval, oldval)	      \
-  atomic_compare_and_exchange_bool_rel (mem, newval, oldval)
-# endif
-#endif
-
-
-#ifndef atomic_compare_and_exchange_bool_rel
-# define atomic_compare_and_exchange_bool_rel(mem, newval, oldval) \
-  atomic_compare_and_exchange_bool_acq (mem, newval, oldval)
-#endif
-
-
-/* Store NEWVALUE in *MEM and return the old value.  */
-#ifndef atomic_exchange_acq
-# define atomic_exchange_acq(mem, newvalue) \
-  ({ __typeof (*(mem)) __atg5_oldval;					      \
-     __typeof (mem) __atg5_memp = (mem);				      \
-     __typeof (*(mem)) __atg5_value = (newvalue);			      \
-									      \
-     do									      \
-       __atg5_oldval = *__atg5_memp;					      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \
-						   __atg5_oldval), 0));	      \
-									      \
-     __atg5_oldval; })
-#endif
-
-#ifndef atomic_exchange_rel
-# define atomic_exchange_rel(mem, newvalue) atomic_exchange_acq (mem, newvalue)
-#endif
-
-
-/* Add VALUE to *MEM and return the old value of *MEM.  */
-#ifndef atomic_exchange_and_add
-# define atomic_exchange_and_add(mem, value) \
-  ({ __typeof (*(mem)) __atg6_oldval;					      \
-     __typeof (mem) __atg6_memp = (mem);				      \
-     __typeof (*(mem)) __atg6_value = (value);				      \
-									      \
-     do									      \
-       __atg6_oldval = *__atg6_memp;					      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg6_memp,		      \
-						   __atg6_oldval	      \
-						   + __atg6_value,	      \
-						   __atg6_oldval), 0));	      \
-									      \
-     __atg6_oldval; })
-#endif
-
-
-#ifndef catomic_exchange_and_add
-# define catomic_exchange_and_add(mem, value) \
-  ({ __typeof (*(mem)) __atg7_oldv;					      \
-     __typeof (mem) __atg7_memp = (mem);				      \
-     __typeof (*(mem)) __atg7_value = (value);				      \
-									      \
-     do									      \
-       __atg7_oldv = *__atg7_memp;					      \
-     while (__builtin_expect						      \
-	    (catomic_compare_and_exchange_bool_acq (__atg7_memp,	      \
-						    __atg7_oldv		      \
-						    + __atg7_value,	      \
-						    __atg7_oldv), 0));	      \
-									      \
-     __atg7_oldv; })
-#endif
-
-
-#ifndef atomic_max
-# define atomic_max(mem, value) \
-  do {									      \
-    __typeof (*(mem)) __atg8_oldval;					      \
-    __typeof (mem) __atg8_memp = (mem);					      \
-    __typeof (*(mem)) __atg8_value = (value);				      \
-    do {								      \
-      __atg8_oldval = *__atg8_memp;					      \
-      if (__atg8_oldval >= __atg8_value)				      \
-	break;								      \
-    } while (__builtin_expect						      \
-	     (atomic_compare_and_exchange_bool_acq (__atg8_memp, __atg8_value,\
-						    __atg8_oldval), 0));      \
-  } while (0)
-#endif
-
-
-#ifndef catomic_max
-# define catomic_max(mem, value) \
-  do {									      \
-    __typeof (*(mem)) __atg9_oldv;					      \
-    __typeof (mem) __atg9_memp = (mem);					      \
-    __typeof (*(mem)) __atg9_value = (value);				      \
-    do {								      \
-      __atg9_oldv = *__atg9_memp;					      \
-      if (__atg9_oldv >= __atg9_value)					      \
-	break;								      \
-    } while (__builtin_expect						      \
-	     (catomic_compare_and_exchange_bool_acq (__atg9_memp,	      \
-						     __atg9_value,	      \
-						     __atg9_oldv), 0));	      \
-  } while (0)
-#endif
-
-
-#ifndef atomic_min
-# define atomic_min(mem, value) \
-  do {									      \
-    __typeof (*(mem)) __atg10_oldval;					      \
-    __typeof (mem) __atg10_memp = (mem);				      \
-    __typeof (*(mem)) __atg10_value = (value);				      \
-    do {								      \
-      __atg10_oldval = *__atg10_memp;					      \
-      if (__atg10_oldval <= __atg10_value)				      \
-	break;								      \
-    } while (__builtin_expect						      \
-	     (atomic_compare_and_exchange_bool_acq (__atg10_memp,	      \
-						    __atg10_value,	      \
-						    __atg10_oldval), 0));     \
-  } while (0)
-#endif
-
-
-#ifndef atomic_add
-# define atomic_add(mem, value) (void) atomic_exchange_and_add ((mem), (value))
-#endif
-
-
-#ifndef catomic_add
-# define catomic_add(mem, value) \
-  (void) catomic_exchange_and_add ((mem), (value))
-#endif
-
-
-#ifndef atomic_increment
-# define atomic_increment(mem) atomic_add ((mem), 1)
-#endif
-
-
-#ifndef catomic_increment
-# define catomic_increment(mem) catomic_add ((mem), 1)
-#endif
-
-
-#ifndef atomic_increment_val
-# define atomic_increment_val(mem) (atomic_exchange_and_add ((mem), 1) + 1)
-#endif
-
-
-#ifndef catomic_increment_val
-# define catomic_increment_val(mem) (catomic_exchange_and_add ((mem), 1) + 1)
-#endif
-
-
-/* Add one to *MEM and return true iff it's now zero.  */
-#ifndef atomic_increment_and_test
-# define atomic_increment_and_test(mem) \
-  (atomic_exchange_and_add ((mem), 1) + 1 == 0)
-#endif
-
-
-#ifndef atomic_decrement
-# define atomic_decrement(mem) atomic_add ((mem), -1)
-#endif
-
-
-#ifndef catomic_decrement
-# define catomic_decrement(mem) catomic_add ((mem), -1)
-#endif
-
-
-#ifndef atomic_decrement_val
-# define atomic_decrement_val(mem) (atomic_exchange_and_add ((mem), -1) - 1)
-#endif
-
-
-#ifndef catomic_decrement_val
-# define catomic_decrement_val(mem) (catomic_exchange_and_add ((mem), -1) - 1)
-#endif
-
-
-/* Subtract 1 from *MEM and return true iff it's now zero.  */
-#ifndef atomic_decrement_and_test
-# define atomic_decrement_and_test(mem) \
-  (atomic_exchange_and_add ((mem), -1) == 1)
-#endif
-
-
-/* Decrement *MEM if it is > 0, and return the old value.  */
-#ifndef atomic_decrement_if_positive
-# define atomic_decrement_if_positive(mem) \
-  ({ __typeof (*(mem)) __atg11_oldval;					      \
-     __typeof (mem) __atg11_memp = (mem);				      \
-									      \
-     do									      \
-       {								      \
-	 __atg11_oldval = *__atg11_memp;				      \
-	 if (__builtin_expect (__atg11_oldval <= 0, 0))			      \
-	   break;							      \
-       }								      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg11_memp,	      \
-						   __atg11_oldval - 1,	      \
-						   __atg11_oldval), 0));      \
-     __atg11_oldval; })
-#endif
-
-
-#ifndef atomic_add_negative
-# define atomic_add_negative(mem, value)				      \
-  ({ __typeof (value) __atg12_value = (value);				      \
-     atomic_exchange_and_add (mem, __atg12_value) < -__atg12_value; })
-#endif
-
-
-#ifndef atomic_add_zero
-# define atomic_add_zero(mem, value)					      \
-  ({ __typeof (value) __atg13_value = (value);				      \
-     atomic_exchange_and_add (mem, __atg13_value) == -__atg13_value; })
-#endif
-
-
-#ifndef atomic_bit_set
-# define atomic_bit_set(mem, bit) \
-  (void) atomic_bit_test_set(mem, bit)
-#endif
-
-
-#ifndef atomic_bit_test_set
-# define atomic_bit_test_set(mem, bit) \
-  ({ __typeof (*(mem)) __atg14_old;					      \
-     __typeof (mem) __atg14_memp = (mem);				      \
-     __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit));	      \
-									      \
-     do									      \
-       __atg14_old = (*__atg14_memp);					      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg14_memp,	      \
-						   __atg14_old | __atg14_mask,\
-						   __atg14_old), 0));	      \
-									      \
-     __atg14_old & __atg14_mask; })
-#endif
-
-/* Atomically *mem &= mask.  */
-#ifndef atomic_and
-# define atomic_and(mem, mask) \
-  do {									      \
-    __typeof (*(mem)) __atg15_old;					      \
-    __typeof (mem) __atg15_memp = (mem);				      \
-    __typeof (*(mem)) __atg15_mask = (mask);				      \
-									      \
-    do									      \
-      __atg15_old = (*__atg15_memp);					      \
-    while (__builtin_expect						      \
-	   (atomic_compare_and_exchange_bool_acq (__atg15_memp,		      \
-						  __atg15_old & __atg15_mask, \
-						  __atg15_old), 0));	      \
-  } while (0)
-#endif
-
-#ifndef catomic_and
-# define catomic_and(mem, mask) \
-  do {									      \
-    __typeof (*(mem)) __atg20_old;					      \
-    __typeof (mem) __atg20_memp = (mem);				      \
-    __typeof (*(mem)) __atg20_mask = (mask);				      \
-									      \
-    do									      \
-      __atg20_old = (*__atg20_memp);					      \
-    while (__builtin_expect						      \
-	   (catomic_compare_and_exchange_bool_acq (__atg20_memp,	      \
-						   __atg20_old & __atg20_mask,\
-						   __atg20_old), 0));	      \
-  } while (0)
-#endif
-
-/* Atomically *mem &= mask and return the old value of *mem.  */
-#ifndef atomic_and_val
-# define atomic_and_val(mem, mask) \
-  ({ __typeof (*(mem)) __atg16_old;					      \
-     __typeof (mem) __atg16_memp = (mem);				      \
-     __typeof (*(mem)) __atg16_mask = (mask);				      \
-									      \
-     do									      \
-       __atg16_old = (*__atg16_memp);					      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg16_memp,	      \
-						   __atg16_old & __atg16_mask,\
-						   __atg16_old), 0));	      \
-									      \
-     __atg16_old; })
-#endif
-
-/* Atomically *mem |= mask and return the old value of *mem.  */
-#ifndef atomic_or
-# define atomic_or(mem, mask) \
-  do {									      \
-    __typeof (*(mem)) __atg17_old;					      \
-    __typeof (mem) __atg17_memp = (mem);				      \
-    __typeof (*(mem)) __atg17_mask = (mask);				      \
-									      \
-    do									      \
-      __atg17_old = (*__atg17_memp);					      \
-    while (__builtin_expect						      \
-	   (atomic_compare_and_exchange_bool_acq (__atg17_memp,		      \
-						  __atg17_old | __atg17_mask, \
-						  __atg17_old), 0));	      \
-  } while (0)
-#endif
-
-#ifndef catomic_or
-# define catomic_or(mem, mask) \
-  do {									      \
-    __typeof (*(mem)) __atg18_old;					      \
-    __typeof (mem) __atg18_memp = (mem);				      \
-    __typeof (*(mem)) __atg18_mask = (mask);				      \
-									      \
-    do									      \
-      __atg18_old = (*__atg18_memp);					      \
-    while (__builtin_expect						      \
-	   (catomic_compare_and_exchange_bool_acq (__atg18_memp,	      \
-						   __atg18_old | __atg18_mask,\
-						   __atg18_old), 0));	      \
-  } while (0)
-#endif
-
-/* Atomically *mem |= mask and return the old value of *mem.  */
-#ifndef atomic_or_val
-# define atomic_or_val(mem, mask) \
-  ({ __typeof (*(mem)) __atg19_old;					      \
-     __typeof (mem) __atg19_memp = (mem);				      \
-     __typeof (*(mem)) __atg19_mask = (mask);				      \
-									      \
-     do									      \
-       __atg19_old = (*__atg19_memp);					      \
-     while (__builtin_expect						      \
-	    (atomic_compare_and_exchange_bool_acq (__atg19_memp,	      \
-						   __atg19_old | __atg19_mask,\
-						   __atg19_old), 0));	      \
-									      \
-     __atg19_old; })
-#endif
-
-#ifndef atomic_full_barrier
-# define atomic_full_barrier() __asm__ ("" ::: "memory")
-#endif
-
-
-#ifndef atomic_read_barrier
-# define atomic_read_barrier() atomic_full_barrier ()
-#endif
-
-
-#ifndef atomic_write_barrier
-# define atomic_write_barrier() atomic_full_barrier ()
-#endif
-
-
-#ifndef atomic_forced_read
-# define atomic_forced_read(x) \
-  ({ __typeof (x) __x; __asm__ ("" : "=r" (__x) : "0" (x)); __x; })
-#endif
-
-
-#ifndef atomic_delay
-# define atomic_delay() do { /* nothing */ } while (0)
-#endif
-
-#endif	/* atomic.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/atomic.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/atomic.h
deleted file mode 100644
index 3fab829..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/atomic.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* Low-level functions for atomic operations. Mips version.
-   Copyright (C) 2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _MIPS_BITS_ATOMIC_H
-#define _MIPS_BITS_ATOMIC_H 1
-
-#include <inttypes.h>
-#include <sgidefs.h>
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef int64_t atomic64_t;
-typedef uint64_t uatomic64_t;
-typedef int_fast64_t atomic_fast64_t;
-typedef uint_fast64_t uatomic_fast64_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-#if _MIPS_SIM == _ABIO32
-#define MIPS_PUSH_MIPS2 ".set	mips2\n\t"
-#else
-#define MIPS_PUSH_MIPS2
-#endif
-
-/* See the comments in <sys/asm.h> about the use of the sync instruction.  */
-#ifndef MIPS_SYNC
-# define MIPS_SYNC	sync
-#endif
-
-/* Certain revisions of the R10000 Processor need an LL/SC Workaround
-   enabled.  Revisions before 3.0 misbehave on atomic operations, and
-   Revs 2.6 and lower deadlock after several seconds due to other errata.
-
-   To quote the R10K Errata:
-      Workaround: The basic idea is to inhibit the four instructions
-      from simultaneously becoming active in R10000. Padding all
-      ll/sc sequences with nops or changing the looping branch in the
-      routines to a branch likely (which is always predicted taken
-      by R10000) will work. The nops should go after the loop, and the
-      number of them should be 28. This number could be decremented for
-      each additional instruction in the ll/sc loop such as the lock
-      modifier(s) between the ll and sc, the looping branch and its
-      delay slot. For typical short routines with one ll/sc loop, any
-      instructions after the loop could also count as a decrement. The
-      nop workaround pollutes the cache more but would be a few cycles
-      faster if all the code is in the cache and the looping branch
-      is predicted not taken.  */
-
-
-#ifdef _MIPS_ARCH_R10000
-#define R10K_BEQZ_INSN "beqzl"
-#else
-#define R10K_BEQZ_INSN "beqz"
-#endif
-
-#define MIPS_SYNC_STR_2(X) #X
-#define MIPS_SYNC_STR_1(X) MIPS_SYNC_STR_2(X)
-#define MIPS_SYNC_STR MIPS_SYNC_STR_1(MIPS_SYNC)
-
-/* Compare and exchange.  For all of the "xxx" routines, we expect a
-   "__prev" and a "__cmp" variable to be provided by the enclosing scope,
-   in which values are returned.  */
-
-#define __arch_compare_and_exchange_xxx_8_int(mem, newval, oldval, rel, acq) \
-  (abort (), __prev = __cmp = 0)
-
-#define __arch_compare_and_exchange_xxx_16_int(mem, newval, oldval, rel, acq) \
-  (abort (), __prev = __cmp = 0)
-
-#define __arch_compare_and_exchange_xxx_32_int(mem, newval, oldval, rel, acq) \
-     __asm__ __volatile__ (						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\t"								      \
-     "ll	%0,%5\n\t"						      \
-     "move	%1,$0\n\t"						      \
-     "bne	%0,%3,2f\n\t"						      \
-     "move	%1,%4\n\t"						      \
-     "sc	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (oldval), "r" (newval), "m" (*mem)			      \
-	      : "memory")
-
-#if _MIPS_SIM == _ABIO32
-/* We can't do an atomic 64-bit operation in O32.  */
-#define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
-  (abort (), __prev = __cmp = 0)
-#else
-#define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
-     __asm__ __volatile__ ("\n"						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\t"								      \
-     "lld	%0,%5\n\t"						      \
-     "move	%1,$0\n\t"						      \
-     "bne	%0,%3,2f\n\t"						      \
-     "move	%1,%4\n\t"						      \
-     "scd	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (oldval), "r" (newval), "m" (*mem)			      \
-	      : "memory")
-#endif
-
-/* For all "bool" routines, we return FALSE if exchange succesful.  */
-
-#define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq)	\
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
-   !__cmp; })
-
-#define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
-   !__cmp; })
-
-#define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
-   !__cmp; })
-
-#define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
-   !__cmp; })
-
-/* For all "val" routines, return the old value whether exchange
-   successful or not.  */
-
-#define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq)	\
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq);	\
-   (__typeof (*mem))__prev; })
-
-#define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq);	\
-   (__typeof (*mem))__prev; })
-
-#define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq);	\
-   (__typeof (*mem))__prev; })
-
-#define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					\
-   __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq);	\
-   (__typeof (*mem))__prev; })
-
-/* Compare and exchange with "acquire" semantics, ie barrier after.  */
-
-#define atomic_compare_and_exchange_bool_acq(mem, new, old)	\
-  __atomic_bool_bysize (__arch_compare_and_exchange_bool, int,	\
-		        mem, new, old, "", MIPS_SYNC_STR)
-
-#define atomic_compare_and_exchange_val_acq(mem, new, old)	\
-  __atomic_val_bysize (__arch_compare_and_exchange_val, int,	\
-		       mem, new, old, "", MIPS_SYNC_STR)
-
-/* Compare and exchange with "release" semantics, ie barrier before.  */
-
-#define atomic_compare_and_exchange_bool_rel(mem, new, old)	\
-  __atomic_bool_bysize (__arch_compare_and_exchange_bool, int,	\
-		        mem, new, old, MIPS_SYNC_STR, "")
-
-#define atomic_compare_and_exchange_val_rel(mem, new, old)	\
-  __atomic_val_bysize (__arch_compare_and_exchange_val, int,	\
-		       mem, new, old, MIPS_SYNC_STR, "")
-
-
-
-/* Atomic exchange (without compare).  */
-
-#define __arch_exchange_xxx_8_int(mem, newval, rel, acq) \
-  (abort (), 0)
-
-#define __arch_exchange_xxx_16_int(mem, newval, rel, acq) \
-  (abort (), 0)
-
-#define __arch_exchange_xxx_32_int(mem, newval, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					      \
-     __asm__ __volatile__ ("\n"						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\t"								      \
-     "ll	%0,%4\n\t"						      \
-     "move	%1,%3\n\t"						      \
-     "sc	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (newval), "m" (*mem)				      \
-	      : "memory");						      \
-  __prev; })
-
-#if _MIPS_SIM == _ABIO32
-/* We can't do an atomic 64-bit operation in O32.  */
-#define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \
-  (abort (), 0)
-#else
-#define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					      \
-     __asm__ __volatile__ ("\n"						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\n"								      \
-     "lld	%0,%4\n\t"						      \
-     "move	%1,%3\n\t"						      \
-     "scd	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (newval), "m" (*mem)				      \
-	      : "memory");						      \
-  __prev; })
-#endif
-
-#define atomic_exchange_acq(mem, value) \
-  __atomic_val_bysize (__arch_exchange_xxx, int, mem, value, "", MIPS_SYNC_STR)
-
-#define atomic_exchange_rel(mem, value) \
-  __atomic_val_bysize (__arch_exchange_xxx, int, mem, value, MIPS_SYNC_STR, "")
-
-
-/* Atomically add value and return the previous (unincremented) value.  */
-
-#define __arch_exchange_and_add_8_int(mem, newval, rel, acq) \
-  (abort (), (__typeof(*mem)) 0)
-
-#define __arch_exchange_and_add_16_int(mem, newval, rel, acq) \
-  (abort (), (__typeof(*mem)) 0)
-
-#define __arch_exchange_and_add_32_int(mem, value, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					      \
-     __asm__ __volatile__ ("\n"						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\t"								      \
-     "ll	%0,%4\n\t"						      \
-     "addu	%1,%0,%3\n\t"						      \
-     "sc	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (value), "m" (*mem)					      \
-	      : "memory");						      \
-  __prev; })
-
-#if _MIPS_SIM == _ABIO32
-/* We can't do an atomic 64-bit operation in O32.  */
-#define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
-  (abort (), (__typeof(*mem)) 0)
-#else
-#define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp;					      \
-     __asm__ __volatile__ (						      \
-     ".set	push\n\t"						      \
-     MIPS_PUSH_MIPS2							      \
-     rel	"\n"							      \
-     "1:\t"								      \
-     "lld	%0,%4\n\t"						      \
-     "daddu	%1,%0,%3\n\t"						      \
-     "scd	%1,%2\n\t"						      \
-     R10K_BEQZ_INSN"	%1,1b\n"					      \
-     acq	"\n\t"							      \
-     ".set	pop\n"							      \
-     "2:\n\t"								      \
-	      : "=&r" (__prev), "=&r" (__cmp), "=m" (*mem)		      \
-	      : "r" (value), "m" (*mem)					      \
-	      : "memory");						      \
-  __prev; })
-#endif
-
-/* ??? Barrier semantics for atomic_exchange_and_add appear to be
-   undefined.  Use full barrier for now, as that's safe.  */
-#define atomic_exchange_and_add(mem, value) \
-  __atomic_val_bysize (__arch_exchange_and_add, int, mem, value,	      \
-		       MIPS_SYNC_STR, MIPS_SYNC_STR)
-
-/* TODO: More atomic operations could be implemented efficiently; only the
-   basic requirements are done.  */
-
-#define atomic_full_barrier() \
-  __asm__ __volatile__ (".set push\n\t"					      \
-			MIPS_PUSH_MIPS2					      \
-			MIPS_SYNC_STR "\n\t"				      \
-			".set pop" : : : "memory")
-
-#endif /* bits/atomic.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/libc-lock.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/libc-lock.h
deleted file mode 100644
index b69f0f9..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/libc-lock.h
+++ /dev/null
@@ -1,460 +0,0 @@
-/* libc-internal interface for mutex locks.  NPTL version.
-   Copyright (C) 1996-2003, 2005, 2007 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#ifndef _BITS_LIBC_LOCK_H
-#define _BITS_LIBC_LOCK_H 1
-
-#include <bits/initspin.h>
-#include <pthread.h>
-#define __need_NULL
-#include <stddef.h>
-
-
-/* Fortunately Linux now has a mean to do locking which is realtime
-   safe without the aid of the thread library.  We also need no fancy
-   options like error checking mutexes etc.  We only need simple
-   locks, maybe recursive.  This can be easily and cheaply implemented
-   using futexes.  We will use them everywhere except in ld.so since
-   ld.so might be used on old kernels with a different libc.so.  */
-
-/* Mutex type.  */
-#if defined _LIBC || defined _IO_MTSAFE_IO
-typedef pthread_mutex_t __libc_lock_t;
-typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
-typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t;
-# ifdef __USE_UNIX98
-typedef pthread_rwlock_t __libc_rwlock_t;
-# else
-typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
-# endif
-#else
-typedef struct __libc_lock_opaque__ __libc_lock_t;
-typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
-typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
-#endif
-
-/* Type for key to thread-specific data.  */
-typedef pthread_key_t __libc_key_t;
-
-# define __libc_freeres_fn_section \
-      __attribute__ ((section ("__libc_freeres_fn")))
-
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#define __libc_rwlock_define(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME;
-#define __libc_lock_define_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME;
-#define __rtld_lock_define_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME;
-
-/* Define an initialized lock variable NAME with storage class CLASS.
-
-   For the C library we take a deeper look at the initializer.  For
-   this implementation all fields are initialized to zero.  Therefore
-   we don't initialize the variable which allows putting it into the
-   BSS section.  (Except on PA-RISC and other odd architectures, where
-   initialized locks must be set to one due to the lack of normal
-   atomic operations.) */
-
-# if __LT_SPINLOCK_INIT == 0
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-# else
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
-# endif
-
-#define __libc_rwlock_define_initialized(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
-
-/* Define an initialized recursive lock variable NAME with storage
-   class CLASS.  */
-# define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
-# define _LIBC_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-
-#define __rtld_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME = _RTLD_LOCK_RECURSIVE_INITIALIZER;
-#define _RTLD_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-
-#define __rtld_lock_initialize(NAME) \
-  (void) ((NAME) = (__rtld_lock_recursive_t) _RTLD_LOCK_RECURSIVE_INITIALIZER)
-
-/* If we check for a weakly referenced symbol and then perform a
-   normal jump to it te code generated for some platforms in case of
-   PIC is unnecessarily slow.  What would happen is that the function
-   is first referenced as data and then it is called indirectly
-   through the PLT.  We can make this a direct jump.  */
-#ifdef __PIC__
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (__extension__ ({ __typeof (FUNC) *_fn = (FUNC); \
-                    _fn != NULL ? (*_fn) ARGS : ELSE; }))
-#else
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (FUNC != NULL ? FUNC ARGS : ELSE)
-#endif
-
-/* Call thread functions through the function pointer table.  */
-#if defined SHARED && !defined NOT_IN_libc
-# define PTFAVAIL(NAME) __libc_pthread_functions_init
-# define __libc_ptf_call(FUNC, ARGS, ELSE) \
-  (__libc_pthread_functions_init ? PTHFCT_CALL (ptr_##FUNC, ARGS) : ELSE)
-# define __libc_ptf_call_always(FUNC, ARGS) \
-  PTHFCT_CALL (ptr_##FUNC, ARGS)
-#else
-# define PTFAVAIL(NAME) (NAME != NULL)
-# define __libc_ptf_call(FUNC, ARGS, ELSE) \
-  __libc_maybe_call (FUNC, ARGS, ELSE)
-# define __libc_ptf_call_always(FUNC, ARGS) \
-  FUNC ARGS
-#endif
-
-
-/* Initialize the named lock variable, leaving it in a consistent, unlocked
-   state.  */
-# define __libc_lock_init(NAME) \
-  __libc_maybe_call (__pthread_mutex_init, (&(NAME), NULL), 0)
-#if defined SHARED && !defined NOT_IN_libc
-/* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER, 0) is
-   inefficient.  */
-# define __libc_rwlock_init(NAME) \
-  (__builtin_memset (&(NAME), '\0', sizeof (NAME)), 0)
-#else
-# define __libc_rwlock_init(NAME) \
-  __libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0)
-#endif
-
-/* Same as last but this time we initialize a recursive mutex.  */
-# define __libc_lock_init_recursive(NAME) \
-  do {									      \
-    if (__pthread_mutex_init != NULL)					      \
-      {									      \
-	pthread_mutexattr_t __attr;					      \
-	__pthread_mutexattr_init (&__attr);				      \
-	__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP);    \
-	__pthread_mutex_init (&(NAME).mutex, &__attr);			      \
-	__pthread_mutexattr_destroy (&__attr);				      \
-      }									      \
-  } while (0)
-
-#define __rtld_lock_init_recursive(NAME) \
-  do {									      \
-    if (__pthread_mutex_init != NULL)					      \
-      {									      \
-	pthread_mutexattr_t __attr;					      \
-	__pthread_mutexattr_init (&__attr);				      \
-	__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP);    \
-	__pthread_mutex_init (&(NAME).mutex, &__attr);			      \
-	__pthread_mutexattr_destroy (&__attr);				      \
-      }									      \
-  } while (0)
-
-/* Finalize the named lock variable, which must be locked.  It cannot be
-   used again until __libc_lock_init is called again on it.  This must be
-   called on a lock variable before the containing storage is reused.  */
-# define __libc_lock_fini(NAME) \
-  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
-#if defined SHARED && !defined NOT_IN_libc
-# define __libc_rwlock_fini(NAME) ((void) 0)
-#else
-# define __libc_rwlock_fini(NAME) \
-  __libc_maybe_call (__pthread_rwlock_destroy, (&(NAME)), 0)
-#endif
-
-/* Finalize recursive named lock.  */
-# define __libc_lock_fini_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
-
-/* Lock the named lock variable.  */
-# define __libc_lock_lock(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME)), 0)
-#define __libc_rwlock_rdlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_rdlock, (&(NAME)), 0)
-#define __libc_rwlock_wrlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_wrlock, (&(NAME)), 0)
-
-/* Lock the recursive named lock variable.  */
-# define __libc_lock_lock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
-
-/* Try to lock the named lock variable.  */
-# define __libc_lock_trylock(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME)), 0)
-#define __libc_rwlock_tryrdlock(NAME) \
-  __libc_maybe_call (__pthread_rwlock_tryrdlock, (&(NAME)), 0)
-#define __libc_rwlock_trywrlock(NAME) \
-  __libc_maybe_call (__pthread_rwlock_trywrlock, (&(NAME)), 0)
-
-/* Try to lock the recursive named lock variable.  */
-# define __libc_lock_trylock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME)), 0)
-
-#define __rtld_lock_trylock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0)
-
-/* Unlock the named lock variable.  */
-# define __libc_lock_unlock(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
-#define __libc_rwlock_unlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_unlock, (&(NAME)), 0)
-
-/* Unlock the recursive named lock variable.  */
-# define __libc_lock_unlock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
-
-# define __rtld_lock_lock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
-
-# define __rtld_lock_unlock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
-
-/* Define once control variable.  */
-#if PTHREAD_ONCE_INIT == 0
-/* Special case for static variables where we can avoid the initialization
-   if it is zero.  */
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME
-#else
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
-#endif
-
-/* Call handler iff the first call.  */
-#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
-  do {									      \
-    if (PTFAVAIL (__pthread_once))					      \
-      __libc_ptf_call_always (__pthread_once, (&(ONCE_CONTROL),		      \
-					       INIT_FUNCTION));		      \
-    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {			      \
-      INIT_FUNCTION ();							      \
-      (ONCE_CONTROL) |= 2;						      \
-    }									      \
-  } while (0)
-
-
-/* Note that for I/O cleanup handling we are using the old-style
-   cancel handling.  It does not have to be integrated with C++ snce
-   no C++ code is called in the middle.  The old-style handling is
-   faster and the support is not going away.  */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
-                                   void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
-                                  int execute);
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-                                         void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-                                          int execute);
-
-/* Start critical region with cleanup.  */
-#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail;								      \
-    if (DOIT) {								      \
-      _avail = PTFAVAIL (_pthread_cleanup_push_defer);			      \
-      if (_avail) {							      \
-	__libc_ptf_call_always (_pthread_cleanup_push_defer, (&_buffer, FCT,  \
-							      ARG));	      \
-      } else {								      \
-	_buffer.__routine = (FCT);					      \
-	_buffer.__arg = (ARG);						      \
-      }									      \
-    } else {								      \
-      _avail = 0;							      \
-    }
-
-/* End critical region with cleanup.  */
-#define __libc_cleanup_region_end(DOIT) \
-    if (_avail) {							      \
-      __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
-    } else if (DOIT)							      \
-      _buffer.__routine (_buffer.__arg);				      \
-  }
-
-/* Sometimes we have to exit the block in the middle.  */
-#define __libc_cleanup_end(DOIT) \
-    if (_avail) {							      \
-      __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
-    } else if (DOIT)							      \
-      _buffer.__routine (_buffer.__arg)
-
-
-/* Normal cleanup handling, based on C cleanup attribute.  */
-static inline void
-__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
-{
-  if (f->__do_it)
-    f->__cancel_routine (f->__cancel_arg);
-}
-
-#define __libc_cleanup_push(fct, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__libc_cleanup_routine)))		      \
-      = { .__cancel_routine = (fct), .__cancel_arg = (arg),		      \
-          .__do_it = 1 };
-
-#define __libc_cleanup_pop(execute) \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-
-
-/* Create thread-specific key.  */
-#define __libc_key_create(KEY, DESTRUCTOR) \
-  __libc_ptf_call (__pthread_key_create, (KEY, DESTRUCTOR), 1)
-
-/* Get thread-specific data.  */
-#define __libc_getspecific(KEY) \
-  __libc_ptf_call (__pthread_getspecific, (KEY), NULL)
-
-/* Set thread-specific data.  */
-#define __libc_setspecific(KEY, VALUE) \
-  __libc_ptf_call (__pthread_setspecific, (KEY, VALUE), 0)
-
-/* Register handlers to execute before and after `fork'.  Note that the
-   last parameter is NULL.  The handlers registered by the libc are
-   never removed so this is OK.  */
-#define __libc_atfork(PREPARE, PARENT, CHILD) \
-  __register_atfork (PREPARE, PARENT, CHILD, NULL)
-extern int __register_atfork (void (*__prepare) (void),
-			      void (*__parent) (void),
-			      void (*__child) (void),
-			      void *__dso_handle);
-
-/* Functions that are used by this file and are internal to the GNU C
-   library.  */
-
-extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-				 __const pthread_mutexattr_t *__mutex_attr);
-
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
-					int __kind);
-
-#ifdef __USE_UNIX98
-extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-				  __const pthread_rwlockattr_t *__attr);
-
-extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
-#endif
-
-extern int __pthread_key_create (pthread_key_t *__key,
-				 void (*__destr_function) (void *));
-
-extern int __pthread_setspecific (pthread_key_t __key,
-				  __const void *__pointer);
-
-extern void *__pthread_getspecific (pthread_key_t __key);
-
-extern int __pthread_once (pthread_once_t *__once_control,
-			   void (*__init_routine) (void));
-
-extern int __pthread_atfork (void (*__prepare) (void),
-			     void (*__parent) (void),
-			     void (*__child) (void));
-
-
-
-/* Make the pthread functions weak so that we can elide them from
-   single-threaded processes.  */
-#ifndef __NO_WEAK_PTHREAD_ALIASES
-# ifdef weak_extern
-weak_extern (__pthread_mutex_init)
-weak_extern (__pthread_mutex_destroy)
-weak_extern (__pthread_mutex_lock)
-weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutex_unlock)
-weak_extern (__pthread_mutexattr_init)
-weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_settype)
-weak_extern (__pthread_rwlock_init)
-weak_extern (__pthread_rwlock_destroy)
-weak_extern (__pthread_rwlock_rdlock)
-weak_extern (__pthread_rwlock_tryrdlock)
-weak_extern (__pthread_rwlock_wrlock)
-weak_extern (__pthread_rwlock_trywrlock)
-weak_extern (__pthread_rwlock_unlock)
-weak_extern (__pthread_key_create)
-weak_extern (__pthread_setspecific)
-weak_extern (__pthread_getspecific)
-weak_extern (__pthread_once)
-//weak_extern (__pthread_initialize)
-weak_extern (__pthread_atfork)
-weak_extern (_pthread_cleanup_push_defer)
-weak_extern (_pthread_cleanup_pop_restore)
-weak_extern (pthread_setcancelstate)
-# else
-#  pragma weak __pthread_mutex_init
-#  pragma weak __pthread_mutex_destroy
-#  pragma weak __pthread_mutex_lock
-#  pragma weak __pthread_mutex_trylock
-#  pragma weak __pthread_mutex_unlock
-#  pragma weak __pthread_mutexattr_init
-#  pragma weak __pthread_mutexattr_destroy
-#  pragma weak __pthread_mutexattr_settype
-#  pragma weak __pthread_rwlock_destroy
-#  pragma weak __pthread_rwlock_rdlock
-#  pragma weak __pthread_rwlock_tryrdlock
-#  pragma weak __pthread_rwlock_wrlock
-#  pragma weak __pthread_rwlock_trywrlock
-#  pragma weak __pthread_rwlock_unlock
-#  pragma weak __pthread_key_create
-#  pragma weak __pthread_setspecific
-#  pragma weak __pthread_getspecific
-#  pragma weak __pthread_once
-//#  pragma weak __pthread_initialize
-#  pragma weak __pthread_atfork
-#  pragma weak _pthread_cleanup_push_defer
-#  pragma weak _pthread_cleanup_pop_restore
-#  pragma weak pthread_setcancelstate
-# endif
-#endif
-
-#endif	/* bits/libc-lock.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/local_lim.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/local_lim.h
index 8f0df4f..a263b5d 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/local_lim.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/bits/local_lim.h
@@ -71,8 +71,6 @@
 
 /* The number of threads per process.  */
 #define _POSIX_THREAD_THREADS_MAX	64
-/* We have no predefined limit on the number of threads.  */
-#undef PTHREAD_THREADS_MAX
 
 /* Maximum amount by which a process can descrease its asynchronous I/O
    priority level.  */
@@ -95,6 +93,3 @@
 
 /* Maximum message queue priority level.  */
 #define MQ_PRIO_MAX		32768
-
-/* Maximum value the semaphore can have.  */
-#define SEM_VALUE_MAX   (2147483647)
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/posix_opt.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/posix_opt.h
index 200dcf6..aa40eae 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/posix_opt.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/bits/posix_opt.h
@@ -1,5 +1,5 @@
 /* Define POSIX options for Linux.
-   Copyright (C) 1996-2004, 2006, 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -17,8 +17,8 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef	_BITS_POSIX_OPT_H
-#define	_BITS_POSIX_OPT_H	1
+#ifndef	_POSIX_OPT_H
+#define	_POSIX_OPT_H	1
 
 /* Job control is supported.  */
 #define	_POSIX_JOB_CONTROL	1
@@ -27,28 +27,28 @@
 #define	_POSIX_SAVED_IDS	1
 
 /* Priority scheduling is supported.  */
-#define	_POSIX_PRIORITY_SCHEDULING	200809L
+#define	_POSIX_PRIORITY_SCHEDULING	200112L
 
 /* Synchronizing file data is supported.  */
-#define	_POSIX_SYNCHRONIZED_IO	200809L
+#define	_POSIX_SYNCHRONIZED_IO	200112L
 
 /* The fsync function is present.  */
-#define	_POSIX_FSYNC	200809L
+#define	_POSIX_FSYNC	200112L
 
 /* Mapping of files to memory is supported.  */
-#define	_POSIX_MAPPED_FILES	200809L
+#define	_POSIX_MAPPED_FILES	200112L
 
 /* Locking of all memory is supported.  */
-#define	_POSIX_MEMLOCK	200809L
+#define	_POSIX_MEMLOCK	200112L
 
 /* Locking of ranges of memory is supported.  */
-#define	_POSIX_MEMLOCK_RANGE	200809L
+#define	_POSIX_MEMLOCK_RANGE	200112L
 
 /* Setting of memory protections is supported.  */
-#define	_POSIX_MEMORY_PROTECTION	200809L
+#define	_POSIX_MEMORY_PROTECTION	200112L
 
-/* Some filesystems allow all users to change file ownership.  */
-#define	_POSIX_CHOWN_RESTRICTED	0
+/* Only root can change owner of file.  */
+#define	_POSIX_CHOWN_RESTRICTED	1
 
 /* `c_cc' member of 'struct termios' structure can be disabled by
    using the value _POSIX_VDISABLE.  */
@@ -60,58 +60,40 @@
 /* X/Open realtime support is available.  */
 #define _XOPEN_REALTIME	1
 
-/* X/Open thread realtime support is available.  */
-#define _XOPEN_REALTIME_THREADS	1
-
 /* XPG4.2 shared memory is supported.  */
 #define	_XOPEN_SHM	1
 
 /* Tell we have POSIX threads.  */
-#define _POSIX_THREADS	200809L
+#define _POSIX_THREADS	200112L
 
 /* We have the reentrant functions described in POSIX.  */
 #define _POSIX_REENTRANT_FUNCTIONS      1
-#define _POSIX_THREAD_SAFE_FUNCTIONS	200809L
+#define _POSIX_THREAD_SAFE_FUNCTIONS	200112L
 
 /* We provide priority scheduling for threads.  */
-#define _POSIX_THREAD_PRIORITY_SCHEDULING	200809L
+#define _POSIX_THREAD_PRIORITY_SCHEDULING	200112L
 
 /* We support user-defined stack sizes.  */
-#define _POSIX_THREAD_ATTR_STACKSIZE	200809L
+#define _POSIX_THREAD_ATTR_STACKSIZE	200112L
 
 /* We support user-defined stacks.  */
-#define _POSIX_THREAD_ATTR_STACKADDR	200809L
-
-/* We support priority inheritence.  */
-#define _POSIX_THREAD_PRIO_INHERIT	200809L
-
-/* We support priority protection, though only for non-robust
-   mutexes.  */
-#define _POSIX_THREAD_PRIO_PROTECT	200809L
-
-#ifdef __USE_XOPEN2K8
-/* We support priority inheritence for robust mutexes.  */
-# define _POSIX_THREAD_ROBUST_PRIO_INHERIT	200809L
-
-/* We do not support priority protection for robust mutexes.  */
-# define _POSIX_THREAD_ROBUST_PRIO_PROTECT	-1
-#endif
+#define _POSIX_THREAD_ATTR_STACKADDR	200112L
 
 #ifdef __UCLIBC_HAS_REALTIME__
 /* We support POSIX.1b semaphores.  */
-#define _POSIX_SEMAPHORES	200809L
+#define _POSIX_SEMAPHORES	200112L
 #endif
 
 /* Real-time signals are supported.  */
-#define _POSIX_REALTIME_SIGNALS	200809L
+#define _POSIX_REALTIME_SIGNALS	200112L
 
 /* We support asynchronous I/O.  */
-#define _POSIX_ASYNCHRONOUS_IO	200809L
+#define _POSIX_ASYNCHRONOUS_IO	200112L
 #define _POSIX_ASYNC_IO		1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO	1
 /* Support for prioritization is also available.  */
-#define _POSIX_PRIORITIZED_IO	200809L
+#define _POSIX_PRIORITIZED_IO	200112L
 
 /* The LFS support in asynchronous I/O is also available.  */
 #define _LFS64_ASYNCHRONOUS_IO	1
@@ -124,7 +106,7 @@
 #endif
 
 /* POSIX shared memory objects are implemented.  */
-#define _POSIX_SHARED_MEMORY_OBJECTS	200809L
+#define _POSIX_SHARED_MEMORY_OBJECTS	200112L
 
 /* CPU-time clocks support needs to be checked at runtime.  */
 #define _POSIX_CPUTIME	0
@@ -138,55 +120,55 @@
 #endif
 
 /* Reader/Writer locks are available.  */
-#define _POSIX_READER_WRITER_LOCKS	200809L
+#define _POSIX_READER_WRITER_LOCKS	200112L
 
 /* We have a POSIX shell.  */
 #define _POSIX_SHELL	1
 
 /* We support the Timeouts option.  */
-#define _POSIX_TIMEOUTS	200809L
+#define _POSIX_TIMEOUTS	200112L
 
 /* We support spinlocks.  */
-#define _POSIX_SPIN_LOCKS	200809L
+#define _POSIX_SPIN_LOCKS	200112L
 
-#if 0 /* no support in uClibc (yet) */
 /* The `spawn' function family is supported.  */
-#define _POSIX_SPAWN	200809L
+#if 0 /* no support in uClibc (yet) */
+#define _POSIX_SPAWN	200112L
 #endif
 
 /* We have POSIX timers.  */
-#define _POSIX_TIMERS	200809L
+#define _POSIX_TIMERS	200112L
 
 /* The barrier functions are available.  */
-#define _POSIX_BARRIERS	200809L
+#define _POSIX_BARRIERS	200112L
 
 /* POSIX message queues are available.  */
-#define	_POSIX_MESSAGE_PASSING	200809L
+#define	_POSIX_MESSAGE_PASSING	200112L
 
 /* Thread process-shared synchronization is supported.  */
-#define _POSIX_THREAD_PROCESS_SHARED	200809L
+#define _POSIX_THREAD_PROCESS_SHARED	200112L
 
 /* The monotonic clock might be available.  */
 #define _POSIX_MONOTONIC_CLOCK	0
 
 /* The clock selection interfaces are available.  */
-#define _POSIX_CLOCK_SELECTION	200809L
+#define _POSIX_CLOCK_SELECTION	200112L
 
 /* Advisory information interfaces are available.  */
-#define _POSIX_ADVISORY_INFO	200809L
+#define _POSIX_ADVISORY_INFO	200112L
 
 #ifdef __UCLIBC_HAS_IPV6__
 /* IPv6 support is available.  */
-#define _POSIX_IPV6	200809L
+#define _POSIX_IPV6	200112L
 #endif
 
 #ifdef __UCLIBC_HAS_SOCKET__
 /* Raw socket support is available.  */
-#define _POSIX_RAW_SOCKETS	200809L
+#define _POSIX_RAW_SOCKETS	200112L
 #endif
 
 /* We have at least one terminal.  */
-#define _POSIX2_CHAR_TERM	200809L
+#define _POSIX2_CHAR_TERM	200112L
 
 /* Neither process nor thread sporadic server interfaces is available.  */
 #define _POSIX_SPORADIC_SERVER	-1
@@ -201,4 +183,8 @@
 /* Typed memory objects are not available.  */
 #define _POSIX_TYPED_MEMORY_OBJECTS	-1
 
-#endif /* bits/posix_opt.h */
+/* No support for priority inheritance or protection so far.  */
+#define _POSIX_THREAD_PRIO_INHERIT	-1
+#define _POSIX_THREAD_PRIO_PROTECT	-1
+
+#endif /* posix_opt.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/pthreadtypes.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/pthreadtypes.h
index bd4b7a3..faec63b 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/pthreadtypes.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/bits/pthreadtypes.h
@@ -1,230 +1,142 @@
-/* Machine-specific pthread type layouts.  MIPS version.
-   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
+/* Linuxthreads - a simple clone()-based implementation of Posix        */
+/* threads for Linux.                                                   */
+/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */
+/*                                                                      */
+/* This program is free software; you can redistribute it and/or        */
+/* modify it under the terms of the GNU Library General Public License  */
+/* as published by the Free Software Foundation; either version 2       */
+/* of the License, or (at your option) any later version.               */
+/*                                                                      */
+/* This program is distributed in the hope that it will be useful,      */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
+/* GNU Library General Public License for more details.                 */
 
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+#if !defined _BITS_TYPES_H && !defined _PTHREAD_H
+# error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead."
+#endif
 
 #ifndef _BITS_PTHREADTYPES_H
 #define _BITS_PTHREADTYPES_H	1
 
-#include <endian.h>
-#include <sgidefs.h>
+#define __need_schedparam
+#include <bits/sched.h>
 
-#if _MIPS_SIM == _ABI64
-# define __SIZEOF_PTHREAD_ATTR_T 56
-# define __SIZEOF_PTHREAD_MUTEX_T 40
-# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-# define __SIZEOF_PTHREAD_COND_T 48
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 56
-# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-# define __SIZEOF_PTHREAD_BARRIER_T 32
-# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
-#else
-# define __SIZEOF_PTHREAD_ATTR_T 36
-# define __SIZEOF_PTHREAD_MUTEX_T 24
-# define __SIZEOF_PTHREAD_MUTEXATTR_T 4
-# define __SIZEOF_PTHREAD_COND_T 48
-# define __SIZEOF_PTHREAD_CONDATTR_T 4
-# define __SIZEOF_PTHREAD_RWLOCK_T 32
-# define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
-# define __SIZEOF_PTHREAD_BARRIER_T 20
-# define __SIZEOF_PTHREAD_BARRIERATTR_T 4
+/* Fast locks (not abstract because mutexes and conditions aren't abstract). */
+struct _pthread_fastlock
+{
+  long int __status;   /* "Free" or "taken" or head of waiting list */
+  int __spinlock;      /* Used by compare_and_swap emulation. Also,
+			  adaptive SMP lock stores spin count here. */
+};
+
+#ifndef _PTHREAD_DESCR_DEFINED
+/* Thread descriptors */
+typedef struct _pthread_descr_struct *_pthread_descr;
+# define _PTHREAD_DESCR_DEFINED
 #endif
 
 
-/* Thread identifiers.  The structure of the attribute type is
-   deliberately not exposed.  */
-typedef unsigned long int pthread_t;
-
-
-typedef union
+/* Attributes for threads.  */
+typedef struct __pthread_attr_s
 {
-  char __size[__SIZEOF_PTHREAD_ATTR_T];
-  long int __align;
+  int __detachstate;
+  int __schedpolicy;
+  struct __sched_param __schedparam;
+  int __inheritsched;
+  int __scope;
+  size_t __guardsize;
+  int __stackaddr_set;
+  void *__stackaddr;
+  size_t __stacksize;
 } pthread_attr_t;
 
 
-#if _MIPS_SIM == _ABI64
-typedef struct __pthread_internal_list
+/* Conditions (not abstract because of PTHREAD_COND_INITIALIZER */
+typedef struct
 {
-  struct __pthread_internal_list *__prev;
-  struct __pthread_internal_list *__next;
-} __pthread_list_t;
-#else
-typedef struct __pthread_internal_slist
-{
-  struct __pthread_internal_slist *__next;
-} __pthread_slist_t;
-#endif
-
-
-/* Data structures for mutex handling.  The structure of the attribute
-   type is deliberately not exposed.  */
-typedef union
-{
-  struct __pthread_mutex_s
-  {
-    int __lock;
-    unsigned int __count;
-    int __owner;
-#if _MIPS_SIM == _ABI64
-    unsigned int __nusers;
-#endif
-    /* KIND must stay at this position in the structure to maintain
-       binary compatibility.  */
-    int __kind;
-#if _MIPS_SIM == _ABI64
-    int __spins;
-    __pthread_list_t __list;
-# define __PTHREAD_MUTEX_HAVE_PREV	1
-#else
-    unsigned int __nusers;
-    __extension__ union
-    {
-      int __spins;
-      __pthread_slist_t __list;
-    };
-#endif
-  } __data;
-  char __size[__SIZEOF_PTHREAD_MUTEX_T];
-  long int __align;
-} pthread_mutex_t;
-
-typedef union
-{
-  char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
-  int __align;
-} pthread_mutexattr_t;
-
-
-/* Data structure for conditional variable handling.  The structure of
-   the attribute type is deliberately not exposed.  */
-typedef union
-{
-  struct
-  {
-    int __lock;
-    unsigned int __futex;
-    __extension__ unsigned long long int __total_seq;
-    __extension__ unsigned long long int __wakeup_seq;
-    __extension__ unsigned long long int __woken_seq;
-    void *__mutex;
-    unsigned int __nwaiters;
-    unsigned int __broadcast_seq;
-  } __data;
-  char __size[__SIZEOF_PTHREAD_COND_T];
-  __extension__ long long int __align;
+  struct _pthread_fastlock __c_lock; /* Protect against concurrent access */
+  _pthread_descr __c_waiting;        /* Threads waiting on this condition */
 } pthread_cond_t;
 
-typedef union
-{
-  char __size[__SIZEOF_PTHREAD_CONDATTR_T];
-  int __align;
-} pthread_condattr_t;
 
+/* Attribute for conditionally variables.  */
+typedef struct
+{
+  int __dummy;
+} pthread_condattr_t;
 
 /* Keys for thread-specific data */
 typedef unsigned int pthread_key_t;
 
 
+/* Mutexes (not abstract because of PTHREAD_MUTEX_INITIALIZER).  */
+/* (The layout is unnatural to maintain binary compatibility
+    with earlier releases of LinuxThreads.) */
+typedef struct
+{
+  int __m_reserved;               /* Reserved for future use */
+  int __m_count;                  /* Depth of recursive locking */
+  _pthread_descr __m_owner;       /* Owner thread (if recursive or errcheck) */
+  int __m_kind;                   /* Mutex kind: fast, recursive or errcheck */
+  struct _pthread_fastlock __m_lock; /* Underlying fast lock */
+} pthread_mutex_t;
+
+
+/* Attribute for mutex.  */
+typedef struct
+{
+  int __mutexkind;
+} pthread_mutexattr_t;
+
+
 /* Once-only execution */
 typedef int pthread_once_t;
 
 
 #if defined __USE_UNIX98 || defined __USE_XOPEN2K
-/* Data structure for read-write lock variable handling.  The
-   structure of the attribute type is deliberately not exposed.  */
-typedef union
+/* Read-write locks.  */
+typedef struct _pthread_rwlock_t
 {
-# if _MIPS_SIM == _ABI64
-  struct
-  {
-    int __lock;
-    unsigned int __nr_readers;
-    unsigned int __readers_wakeup;
-    unsigned int __writer_wakeup;
-    unsigned int __nr_readers_queued;
-    unsigned int __nr_writers_queued;
-    int __writer;
-    int __shared;
-    unsigned long int __pad1;
-    unsigned long int __pad2;
-    /* FLAGS must stay at this position in the structure to maintain
-       binary compatibility.  */
-    unsigned int __flags;
-  } __data;
-# else
-  struct
-  {
-    int __lock;
-    unsigned int __nr_readers;
-    unsigned int __readers_wakeup;
-    unsigned int __writer_wakeup;
-    unsigned int __nr_readers_queued;
-    unsigned int __nr_writers_queued;
-#if __BYTE_ORDER == __BIG_ENDIAN
-    unsigned char __pad1;
-    unsigned char __pad2;
-    unsigned char __shared;
-    /* FLAGS must stay at this position in the structure to maintain
-       binary compatibility.  */
-    unsigned char __flags;
-#else
-    /* FLAGS must stay at this position in the structure to maintain
-       binary compatibility.  */
-    unsigned char __flags;
-    unsigned char __shared;
-    unsigned char __pad1;
-    unsigned char __pad2;
-#endif
-    int __writer;
-  } __data;
-# endif
-  char __size[__SIZEOF_PTHREAD_RWLOCK_T];
-  long int __align;
+  struct _pthread_fastlock __rw_lock; /* Lock to guarantee mutual exclusion */
+  int __rw_readers;                   /* Number of readers */
+  _pthread_descr __rw_writer;         /* Identity of writer, or NULL if none */
+  _pthread_descr __rw_read_waiting;   /* Threads waiting for reading */
+  _pthread_descr __rw_write_waiting;  /* Threads waiting for writing */
+  int __rw_kind;                      /* Reader/Writer preference selection */
+  int __rw_pshared;                   /* Shared between processes or not */
 } pthread_rwlock_t;
 
-typedef union
+
+/* Attribute for read-write locks.  */
+typedef struct
 {
-  char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
-  long int __align;
+  int __lockkind;
+  int __pshared;
 } pthread_rwlockattr_t;
 #endif
 
-
 #ifdef __USE_XOPEN2K
 /* POSIX spinlock data type.  */
 typedef volatile int pthread_spinlock_t;
 
-
-/* POSIX barriers data type.  The structure of the type is
-   deliberately not exposed.  */
-typedef union
-{
-  char __size[__SIZEOF_PTHREAD_BARRIER_T];
-  long int __align;
+/* POSIX barrier. */
+typedef struct {
+  struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
+  int __ba_required;                  /* Threads needed for completion */
+  int __ba_present;                   /* Threads waiting */
+  _pthread_descr __ba_waiting;        /* Queue of waiting threads */
 } pthread_barrier_t;
 
-typedef union
-{
-  char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
-  int __align;
+/* barrier attribute */
+typedef struct {
+  int __pshared;
 } pthread_barrierattr_t;
+
 #endif
 
 
+/* Thread identifiers */
+typedef unsigned long int pthread_t;
+
 #endif	/* bits/pthreadtypes.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/semaphore.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/semaphore.h
deleted file mode 100644
index af43a60..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/semaphore.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _SEMAPHORE_H
-# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
-#endif
-
-#if _MIPS_SIM == _ABI64
-# define __SIZEOF_SEM_T	32
-#else
-# define __SIZEOF_SEM_T	16
-#endif
-
-/* Value returned if `sem_open' failed.  */
-#define SEM_FAILED      ((sem_t *) 0)
-
-
-typedef union
-{
-  char __size[__SIZEOF_SEM_T];
-  long int __align;
-} sem_t;
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/stdio-lock.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/stdio-lock.h
deleted file mode 100644
index fb32b52..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/stdio-lock.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Thread package specific definitions of stream lock type.  NPTL version.
-   Copyright (C) 2000, 2001, 2002, 2003, 2007 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef _BITS_STDIO_LOCK_H
-#define _BITS_STDIO_LOCK_H 1
-
-#include <bits/libc-lock.h>
-#include <lowlevellock.h>
-
-
-/* The locking here is very inexpensive, even for inlining.  */
-#define _IO_lock_inexpensive	1
-
-typedef struct { int lock; int cnt; void *owner; } _IO_lock_t;
-
-#define _IO_lock_initializer { LLL_LOCK_INITIALIZER, 0, NULL }
-
-#define _IO_lock_init(_name) \
-  ((_name) = (_IO_lock_t) _IO_lock_initializer , 0)
-
-#define _IO_lock_fini(_name) \
-  ((void) 0)
-
-#define _IO_lock_lock(_name) \
-  do {									      \
-    void *__meself = THREAD_SELF;						      \
-    if ((_name).owner != __meself)					      \
-      {									      \
-	lll_lock ((_name).lock, LLL_PRIVATE);				      \
-        (_name).owner = __meself;						      \
-      }									      \
-    ++(_name).cnt;							      \
-  } while (0)
-
-#define _IO_lock_trylock(_name) \
-  ({									      \
-    int __result = 0;							      \
-    void *__meself = THREAD_SELF;						      \
-    if ((_name).owner != __meself)					      \
-      {									      \
-        if (lll_trylock ((_name).lock) == 0)				      \
-          {								      \
-            (_name).owner = __meself;					      \
-            (_name).cnt = 1;						      \
-          }								      \
-        else								      \
-          __result = EBUSY;						      \
-      }									      \
-    else								      \
-      ++(_name).cnt;							      \
-    __result;								      \
-  })
-
-#define _IO_lock_unlock(_name) \
-  do {									      \
-    if (--(_name).cnt == 0)						      \
-      {									      \
-        (_name).owner = NULL;						      \
-	lll_unlock ((_name).lock, LLL_PRIVATE);				      \
-      }									      \
-  } while (0)
-
-
-
-#define _IO_cleanup_region_start(_fct, _fp) \
-  __libc_cleanup_region_start (((_fp)->_flags & _IO_USER_LOCK) == 0, _fct, _fp)
-#define _IO_cleanup_region_start_noarg(_fct) \
-  __libc_cleanup_region_start (1, _fct, NULL)
-#define _IO_cleanup_region_end(_doit) \
-  __libc_cleanup_region_end (_doit)
-
-
-#endif /* bits/stdio-lock.h */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/bits/uClibc_config.h b/mips-qca-linux-uclibc/sysroot/usr/include/bits/uClibc_config.h
index e44bb99..a013481 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/bits/uClibc_config.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/bits/uClibc_config.h
@@ -7,7 +7,7 @@
 #define __UCLIBC_SUBLEVEL__ 33
 /* Automatically generated make config: don't edit */
 /* Version: 0.9.33.2 */
-/* Fri Feb  6 17:43:10 2015 */
+/* Wed Feb 18 14:40:03 2015 */
 #undef __TARGET_alpha__
 #undef __TARGET_arm__
 #undef __TARGET_avr32__
@@ -71,9 +71,10 @@
 #define __HAVE_SHARED__ 1
 #define __FORCE_SHAREABLE_TEXT_SEGMENTS__ 1
 #define __LDSO_LDD_SUPPORT__ 1
-#undef __LDSO_CACHE_SUPPORT__
+#define __LDSO_CACHE_SUPPORT__ 1
 #define __LDSO_PRELOAD_ENV_SUPPORT__ 1
 #undef __LDSO_PRELOAD_FILE_SUPPORT__
+#define __LDSO_BASE_FILENAME__ "ld.so"
 #undef __LDSO_STANDALONE_SUPPORT__
 #undef __LDSO_PRELINK_SUPPORT__
 #undef __UCLIBC_STATIC_LDCONFIG__
@@ -84,11 +85,10 @@
 #define __UCLIBC_CTOR_DTOR__ 1
 #undef __LDSO_GNU_HASH_SUPPORT__
 #undef __HAS_NO_THREADS__
-#undef __LINUXTHREADS_OLD__
+#define __LINUXTHREADS_OLD__ 1
 #undef __LINUXTHREADS_NEW__
-#define __UCLIBC_HAS_THREADS_NATIVE__ 1
+#undef __UCLIBC_HAS_THREADS_NATIVE__
 #define __UCLIBC_HAS_THREADS__ 1
-#define __UCLIBC_HAS_TLS__ 1
 #define __PTHREADS_DEBUG_SUPPORT__ 1
 #define __UCLIBC_HAS_SYSLOG__ 1
 #define __UCLIBC_HAS_LFS__ 1
@@ -148,7 +148,7 @@
 #define __UCLIBC_HAS_IPV6__ 1
 #define __UCLIBC_HAS_RPC__ 1
 #define __UCLIBC_HAS_FULL_RPC__ 1
-#undef __UCLIBC_HAS_REENTRANT_RPC__
+#define __UCLIBC_HAS_REENTRANT_RPC__ 1
 #define __UCLIBC_USE_NETLINK__ 1
 #undef __UCLIBC_SUPPORT_AI_ADDRCONFIG__
 #undef __UCLIBC_HAS_BSD_RES_CLOSE__
@@ -159,13 +159,13 @@
 #define __UCLIBC_HAS_LIBNSL_STUB__ 1
 
 /* String and Stdio Support */
-#undef __UCLIBC_HAS_STRING_GENERIC_OPT__
-#undef __UCLIBC_HAS_STRING_ARCH_OPT__
+#define __UCLIBC_HAS_STRING_GENERIC_OPT__ 1
+#define __UCLIBC_HAS_STRING_ARCH_OPT__ 1
 #define __UCLIBC_HAS_CTYPE_TABLES__ 1
 #define __UCLIBC_HAS_CTYPE_SIGNED__ 1
 #undef __UCLIBC_HAS_CTYPE_UNSAFE__
-#undef __UCLIBC_HAS_CTYPE_CHECKED__
-#define __UCLIBC_HAS_CTYPE_ENFORCED__ 1
+#define __UCLIBC_HAS_CTYPE_CHECKED__ 1
+#undef __UCLIBC_HAS_CTYPE_ENFORCED__
 #define __UCLIBC_HAS_WCHAR__ 1
 #undef __UCLIBC_HAS_LOCALE__
 #define __UCLIBC_HAS_HEXADECIMAL_FLOATS__ 1
@@ -183,8 +183,8 @@
 #undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4__
 #undef __UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8__
 #undef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__
-#undef __UCLIBC_HAS_STDIO_GETC_MACRO__
-#undef __UCLIBC_HAS_STDIO_PUTC_MACRO__
+#define __UCLIBC_HAS_STDIO_GETC_MACRO__ 1
+#define __UCLIBC_HAS_STDIO_PUTC_MACRO__ 1
 #define __UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION__ 1
 #undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
 #define __UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE__ 1
@@ -196,14 +196,13 @@
 #define __UCLIBC_HAS_SIGNUM_MESSAGES__ 1
 #undef __UCLIBC_HAS_SYS_SIGLIST__
 #define __UCLIBC_HAS_GNU_GETOPT__ 1
-#define __UCLIBC_HAS_STDIO_FUTEXES__ 1
-#undef __UCLIBC_HAS_GNU_GETSUBOPT__
+#define __UCLIBC_HAS_GNU_GETSUBOPT__ 1
 
 /* Big and Tall */
 #define __UCLIBC_HAS_REGEX__ 1
-#undef __UCLIBC_HAS_REGEX_OLD__
+#define __UCLIBC_HAS_REGEX_OLD__ 1
 #define __UCLIBC_HAS_FNMATCH__ 1
-#undef __UCLIBC_HAS_FNMATCH_OLD__
+#define __UCLIBC_HAS_FNMATCH_OLD__ 1
 #undef __UCLIBC_HAS_WORDEXP__
 #undef __UCLIBC_HAS_NFTW__
 #define __UCLIBC_HAS_FTW__ 1
@@ -221,12 +220,7 @@
 /* Security options */
 #undef __UCLIBC_BUILD_PIE__
 #undef __UCLIBC_HAS_ARC4RANDOM__
-#define __UCLIBC_HAS_SSP__ 1
-#undef __UCLIBC_HAS_SSP_COMPAT__
-#undef __SSP_QUICK_CANARY__
-#define __PROPOLICE_BLOCK_ABRT__ 1
-#undef __PROPOLICE_BLOCK_SEGV__
-#undef __UCLIBC_BUILD_SSP__
+#undef __UCLIBC_HAS_SSP__
 #define __UCLIBC_BUILD_RELRO__ 1
 #define __UCLIBC_BUILD_NOW__ 1
 #define __UCLIBC_BUILD_NOEXECSTACK__ 1
@@ -235,6 +229,7 @@
 #define __CROSS_COMPILER_PREFIX__ ""
 #define __UCLIBC_EXTRA_CFLAGS__ ""
 #undef __DODEBUG__
+#undef __DODEBUG_PT__
 #undef __DOSTRIP__
 #undef __DOASSERTS__
 #undef __SUPPORT_LD_DEBUG__
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/pthread.h b/mips-qca-linux-uclibc/sysroot/usr/include/pthread.h
index afc46dc..38d5667 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/pthread.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/pthread.h
@@ -1,38 +1,61 @@
-/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-   Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+/* Linuxthreads - a simple clone()-based implementation of Posix        */
+/* threads for Linux.                                                   */
+/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */
+/*                                                                      */
+/* This program is free software; you can redistribute it and/or        */
+/* modify it under the terms of the GNU Library General Public License  */
+/* as published by the Free Software Foundation; either version 2       */
+/* of the License, or (at your option) any later version.               */
+/*                                                                      */
+/* This program is distributed in the hope that it will be useful,      */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
+/* GNU Library General Public License for more details.                 */
 
 #ifndef _PTHREAD_H
 #define _PTHREAD_H	1
 
 #include <features.h>
-#include <endian.h>
+
 #include <sched.h>
 #include <time.h>
 
 #define __need_sigset_t
 #include <signal.h>
 #include <bits/pthreadtypes.h>
-#include <bits/setjmp.h>
-#include <bits/wordsize.h>
+#include <bits/initspin.h>
 
 
-/* Detach state.  */
+__BEGIN_DECLS
+
+/* Initializers.  */
+
+#define PTHREAD_MUTEX_INITIALIZER \
+  {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_INITIALIZER}
+#ifdef __USE_GNU
+# define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
+  {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __LOCK_INITIALIZER}
+# define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
+  {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_INITIALIZER}
+# define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
+  {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_INITIALIZER}
+#endif
+
+#define PTHREAD_COND_INITIALIZER {__LOCK_INITIALIZER, 0}
+
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+# define PTHREAD_RWLOCK_INITIALIZER \
+  { __LOCK_INITIALIZER, 0, NULL, NULL, NULL,				      \
+    PTHREAD_RWLOCK_DEFAULT_NP, PTHREAD_PROCESS_PRIVATE }
+#endif
+#ifdef __USE_GNU
+# define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
+  { __LOCK_INITIALIZER, 0, NULL, NULL, NULL,				      \
+    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_PROCESS_PRIVATE }
+#endif
+
+/* Values for attributes.  */
+
 enum
 {
   PTHREAD_CREATE_JOINABLE,
@@ -41,161 +64,86 @@
 #define PTHREAD_CREATE_DETACHED	PTHREAD_CREATE_DETACHED
 };
 
-
-/* Mutex types.  */
 enum
 {
-  PTHREAD_MUTEX_TIMED_NP,
+  PTHREAD_INHERIT_SCHED,
+#define PTHREAD_INHERIT_SCHED	PTHREAD_INHERIT_SCHED
+  PTHREAD_EXPLICIT_SCHED
+#define PTHREAD_EXPLICIT_SCHED	PTHREAD_EXPLICIT_SCHED
+};
+
+enum
+{
+  PTHREAD_SCOPE_SYSTEM,
+#define PTHREAD_SCOPE_SYSTEM	PTHREAD_SCOPE_SYSTEM
+  PTHREAD_SCOPE_PROCESS
+#define PTHREAD_SCOPE_PROCESS	PTHREAD_SCOPE_PROCESS
+};
+
+enum
+{
+  PTHREAD_MUTEX_ADAPTIVE_NP,
   PTHREAD_MUTEX_RECURSIVE_NP,
   PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_ADAPTIVE_NP
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
+  PTHREAD_MUTEX_TIMED_NP
+#ifdef __USE_UNIX98
   ,
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
+  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_ADAPTIVE_NP,
   PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
   PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
   PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
 #endif
 #ifdef __USE_GNU
   /* For compatibility.  */
-  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
+  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_ADAPTIVE_NP
 #endif
 };
 
-
-#ifdef __USE_XOPEN2K
-/* Robust mutex or not flags.  */
 enum
 {
-  PTHREAD_MUTEX_STALLED,
-  PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
-  PTHREAD_MUTEX_ROBUST,
-  PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
+  PTHREAD_PROCESS_PRIVATE,
+#define PTHREAD_PROCESS_PRIVATE	PTHREAD_PROCESS_PRIVATE
+  PTHREAD_PROCESS_SHARED
+#define PTHREAD_PROCESS_SHARED	PTHREAD_PROCESS_SHARED
 };
-#endif
 
-
-#ifdef __USE_UNIX98
-/* Mutex protocols.  */
-enum
-{
-  PTHREAD_PRIO_NONE,
-  PTHREAD_PRIO_INHERIT,
-  PTHREAD_PRIO_PROTECT
-};
-#endif
-
-
-/* Mutex initializers.  */
-#if __WORDSIZE == 64
-# define PTHREAD_MUTEX_INITIALIZER \
-  { { 0, 0, 0, 0, 0, 0, { 0, 0 } } }
-# ifdef __USE_GNU
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0, 0 } } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0, 0 } } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0, 0 } } }
-# endif
-#else
-# define PTHREAD_MUTEX_INITIALIZER \
-  { { 0, 0, 0, 0, 0, { 0 } } }
-# ifdef __USE_GNU
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { 0 } } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { 0 } } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { 0 } } }
-# endif
-#endif
-
-
-/* Read-write lock types.  */
 #if defined __USE_UNIX98 || defined __USE_XOPEN2K
 enum
 {
   PTHREAD_RWLOCK_PREFER_READER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NP,
   PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
-  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
+  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_WRITER_NP
 };
+#endif	/* Unix98 */
 
-/* Read-write lock initializers.  */
-# define PTHREAD_RWLOCK_INITIALIZER \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-# ifdef __USE_GNU
-#  if __WORDSIZE == 64
-#   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,					      \
-	PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
-#  else
-#   if __BYTE_ORDER == __LITTLE_ENDIAN
-#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, \
-      0, 0, 0, 0 } }
-#   else
-#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
-      0 } }
-#   endif
-#  endif
-# endif
-#endif  /* Unix98 or XOpen2K */
+#define PTHREAD_ONCE_INIT 0
 
+/* Special constants */
 
-/* Scheduler inheritance.  */
-enum
-{
-  PTHREAD_INHERIT_SCHED,
-#define PTHREAD_INHERIT_SCHED   PTHREAD_INHERIT_SCHED
-  PTHREAD_EXPLICIT_SCHED
-#define PTHREAD_EXPLICIT_SCHED  PTHREAD_EXPLICIT_SCHED
-};
-
-
-/* Scope handling.  */
-enum
-{
-  PTHREAD_SCOPE_SYSTEM,
-#define PTHREAD_SCOPE_SYSTEM    PTHREAD_SCOPE_SYSTEM
-  PTHREAD_SCOPE_PROCESS
-#define PTHREAD_SCOPE_PROCESS   PTHREAD_SCOPE_PROCESS
-};
-
-
-/* Process shared or private flag.  */
-enum
-{
-  PTHREAD_PROCESS_PRIVATE,
-#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
-  PTHREAD_PROCESS_SHARED
-#define PTHREAD_PROCESS_SHARED  PTHREAD_PROCESS_SHARED
-};
-
-
-
-/* Conditional variable handling.  */
-#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
-
+#ifdef __USE_XOPEN2K
+/* -1 is distinct from 0 and all errno constants */
+# define PTHREAD_BARRIER_SERIAL_THREAD -1
+#endif
 
 /* Cleanup buffers */
+
 struct _pthread_cleanup_buffer
 {
-  void (*__routine) (void *);             /* Function to call.  */
-  void *__arg;                            /* Its argument.  */
-  int __canceltype;                       /* Saved cancellation type. */
+  void (*__routine) (void *);		  /* Function to call.  */
+  void *__arg;				  /* Its argument.  */
+  int __canceltype;			  /* Saved cancellation type. */
   struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions.  */
 };
 
 /* Cancellation */
+
 enum
 {
   PTHREAD_CANCEL_ENABLE,
-#define PTHREAD_CANCEL_ENABLE   PTHREAD_CANCEL_ENABLE
+#define PTHREAD_CANCEL_ENABLE	PTHREAD_CANCEL_ENABLE
   PTHREAD_CANCEL_DISABLE
-#define PTHREAD_CANCEL_DISABLE  PTHREAD_CANCEL_DISABLE
+#define PTHREAD_CANCEL_DISABLE	PTHREAD_CANCEL_DISABLE
 };
 enum
 {
@@ -207,57 +155,30 @@
 #define PTHREAD_CANCELED ((void *) -1)
 
 
-/* Single execution handling.  */
-#define PTHREAD_ONCE_INIT 0
+/* Function for handling threads.  */
 
-
-#ifdef __USE_XOPEN2K
-/* Value returned by 'pthread_barrier_wait' for one of the threads after
-   the required number of threads have called this function.
-   -1 is distinct from 0 and all errno constants */
-# define PTHREAD_BARRIER_SERIAL_THREAD -1
-#endif
-
-
-__BEGIN_DECLS
-
-/* Create a new thread, starting with execution of START-ROUTINE
-   getting passed ARG.  Creation attributed come from ATTR.  The new
-   handle is stored in *NEWTHREAD.  */
-extern int pthread_create (pthread_t *__restrict __newthread,
+/* Create a thread with given attributes ATTR (or default attributes
+   if ATTR is NULL), and call function START_ROUTINE with given
+   arguments ARG.  */
+extern int pthread_create (pthread_t *__restrict __threadp,
 			   __const pthread_attr_t *__restrict __attr,
 			   void *(*__start_routine) (void *),
-			   void *__restrict __arg) __THROW __nonnull ((1, 3));
+			   void *__restrict __arg) __THROW;
 
-/* Terminate calling thread.
+/* Obtain the identifier of the current thread.  */
+extern pthread_t pthread_self (void) __THROW;
 
-   The registered cleanup handlers are called via exception handling
-   so we cannot mark this function with __THROW.*/
+/* Compare two thread identifiers.  */
+extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __THROW;
+
+/* Terminate calling thread.  */
 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
 
 /* Make calling thread wait for termination of the thread TH.  The
    exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN
-   is not NULL.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
+   is not NULL.  */
 extern int pthread_join (pthread_t __th, void **__thread_return);
 
-#ifdef __USE_GNU
-/* Check whether thread TH has terminated.  If yes return the status of
-   the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL.  */
-extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
-
-/* Make calling thread wait for termination of the thread TH, but only
-   until TIMEOUT.  The exit status of the thread is stored in
-   *THREAD_RETURN, if THREAD_RETURN is not NULL.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
-				 __const struct timespec *__abstime);
-#endif
-
 /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
    The resources of TH will therefore be freed immediately when it
    terminates, instead of waiting for another thread to perform PTHREAD_JOIN
@@ -265,148 +186,120 @@
 extern int pthread_detach (pthread_t __th) __THROW;
 
 
-/* Obtain the identifier of the current thread.  */
-extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__));
-
-/* Compare two thread identifiers.  */
-extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __THROW;
-
-
-/* Thread attribute handling.  */
+/* Functions for handling attributes.  */
 
 /* Initialize thread attribute *ATTR with default attributes
    (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
     no user-provided stack).  */
-extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));
+extern int pthread_attr_init (pthread_attr_t *__attr) __THROW;
 
 /* Destroy thread attribute *ATTR.  */
-extern int pthread_attr_destroy (pthread_attr_t *__attr)
-     __THROW __nonnull ((1));
+extern int pthread_attr_destroy (pthread_attr_t *__attr) __THROW;
 
-/* Get detach state attribute.  */
-extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
-					int *__detachstate)
-     __THROW __nonnull ((1, 2));
-
-/* Set detach state attribute.  */
+/* Set the `detachstate' attribute in *ATTR according to DETACHSTATE.  */
 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
-					int __detachstate)
-     __THROW __nonnull ((1));
+					int __detachstate) __THROW;
 
+/* Return in *DETACHSTATE the `detachstate' attribute in *ATTR.  */
+extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
+					int *__detachstate) __THROW;
 
-/* Get the size of the guard area created for stack overflow protection.  */
-extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
-				      size_t *__guardsize)
-     __THROW __nonnull ((1, 2));
-
-/* Set the size of the guard area created for stack overflow protection.  */
-extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
-				      size_t __guardsize)
-     __THROW __nonnull ((1));
-
+/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM.  */
+extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
+				       __const struct sched_param *__restrict
+				       __param) __THROW;
 
 /* Return in *PARAM the scheduling parameters of *ATTR.  */
 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
 				       __attr,
 				       struct sched_param *__restrict __param)
-     __THROW __nonnull ((1, 2));
+     __THROW;
 
-/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM.  */
-extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-				       __const struct sched_param *__restrict
-				       __param) __THROW __nonnull ((1, 2));
+/* Set scheduling policy in *ATTR according to POLICY.  */
+extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
+     __THROW;
 
 /* Return in *POLICY the scheduling policy of *ATTR.  */
 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
 					__attr, int *__restrict __policy)
-     __THROW __nonnull ((1, 2));
+     __THROW;
 
-/* Set scheduling policy in *ATTR according to POLICY.  */
-extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
-     __THROW __nonnull ((1));
+/* Set scheduling inheritance mode in *ATTR according to INHERIT.  */
+extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
+					 int __inherit) __THROW;
 
 /* Return in *INHERIT the scheduling inheritance mode of *ATTR.  */
 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
 					 __attr, int *__restrict __inherit)
-     __THROW __nonnull ((1, 2));
-
-/* Set scheduling inheritance mode in *ATTR according to INHERIT.  */
-extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
-					 int __inherit)
-     __THROW __nonnull ((1));
-
-
-/* Return in *SCOPE the scheduling contention scope of *ATTR.  */
-extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
-				  int *__restrict __scope)
-     __THROW __nonnull ((1, 2));
+     __THROW;
 
 /* Set scheduling contention scope in *ATTR according to SCOPE.  */
 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
-     __THROW __nonnull ((1));
+     __THROW;
+
+/* Return in *SCOPE the scheduling contention scope of *ATTR.  */
+extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
+				  int *__restrict __scope) __THROW;
+
+#ifdef __USE_UNIX98
+/* Set the size of the guard area at the bottom of the thread.  */
+extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
+				      size_t __guardsize) __THROW;
+
+/* Get the size of the guard area at the bottom of the thread.  */
+extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
+				      __attr, size_t *__restrict __guardsize)
+     __THROW;
+#endif
+
+#if 0 /* uClibc: deprecated stuff disabled. def __UCLIBC_SUSV3_LEGACY__ */
+/* Set the starting address of the stack of the thread to be created.
+   Depending on whether the stack grows up or down the value must either
+   be higher or lower than all the address in the memory block.  The
+   minimal size of the block must be PTHREAD_STACK_SIZE.  */
+extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
+				      void *__stackaddr) __THROW;
 
 /* Return the previously set address for the stack.  */
 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
 				      __attr, void **__restrict __stackaddr)
-     __THROW __nonnull ((1, 2)) __attribute_deprecated__;
-
-/* Set the starting address of the stack of the thread to be created.
-   Depending on whether the stack grows up or down the value must either
-   be higher or lower than all the address in the memory block.  The
-   minimal size of the block must be PTHREAD_STACK_MIN.  */
-extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
-				      void *__stackaddr)
-     __THROW __nonnull ((1)) __attribute_deprecated__;
-
-/* Return the currently used minimal stack size.  */
-extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
-				      __attr, size_t *__restrict __stacksize)
-     __THROW __nonnull ((1, 2));
-
-/* Add information about the minimum stack size needed for the thread
-   to be started.  This size must never be less than PTHREAD_STACK_MIN
-   and must also not exceed the system limits.  */
-extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
-				      size_t __stacksize)
-     __THROW __nonnull ((1));
+     __THROW;
+#endif
 
 #ifdef __USE_XOPEN2K
-/* Return the previously set address for the stack.  */
-extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-				  void **__restrict __stackaddr,
-				  size_t *__restrict __stacksize)
-     __THROW __nonnull ((1, 2, 3));
-
 /* The following two interfaces are intended to replace the last two.  They
    require setting the address as well as the size since only setting the
    address will make the implementation on some architectures impossible.  */
 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
-				  size_t __stacksize) __THROW __nonnull ((1));
+				  size_t __stacksize) __THROW;
+
+/* Return the previously set address for the stack.  */
+extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
+				  void **__restrict __stackaddr,
+				  size_t *__restrict __stacksize) __THROW;
 #endif
 
+/* Add information about the minimum stack size needed for the thread
+   to be started.  This size must never be less than PTHREAD_STACK_SIZE
+   and must also not exceed the system limits.  */
+extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
+				      size_t __stacksize) __THROW;
+
+/* Return the currently used minimal stack size.  */
+extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
+				      __attr, size_t *__restrict __stacksize)
+     __THROW;
+
+#if 0
+/* Not yet implemented in uClibc! */
+
 #ifdef __USE_GNU
-/* Thread created with attribute ATTR will be limited to run only on
-   the processors represented in CPUSET.  */
-extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
-					size_t __cpusetsize,
-					__const cpu_set_t *__cpuset)
-     __THROW __nonnull ((1, 3));
-
-/* Get bit set in CPUSET representing the processors threads created with
-   ATTR can run on.  */
-extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
-					size_t __cpusetsize,
-					cpu_set_t *__cpuset)
-     __THROW __nonnull ((1, 3));
-
-
 /* Initialize thread attribute *ATTR with attributes corresponding to the
    already running thread TH.  It shall be called on uninitialized ATTR
    and destroyed with pthread_attr_destroy when no longer needed.  */
-extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
-     __THROW __nonnull ((2));
+extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __THROW;
 #endif
-
+#endif
 
 /* Functions for scheduling control.  */
 
@@ -414,20 +307,15 @@
    and *PARAM.  */
 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
 				  __const struct sched_param *__param)
-     __THROW __nonnull ((3));
+     __THROW;
 
-/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
+/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD.  */
 extern int pthread_getschedparam (pthread_t __target_thread,
 				  int *__restrict __policy,
 				  struct sched_param *__restrict __param)
-     __THROW __nonnull ((2, 3));
-
-/* Set the scheduling priority for TARGET_THREAD.  */
-extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
      __THROW;
 
-
-#if defined __USE_UNIX98 && defined __UCLIBC_SUSV4_LEGACY__
+#ifdef __USE_UNIX98
 /* Determine level of concurrency.  */
 extern int pthread_getconcurrency (void) __THROW;
 
@@ -436,502 +324,66 @@
 #endif
 
 #ifdef __USE_GNU
-/* Yield the processor to another thread or process.
-   This function is similar to the POSIX `sched_yield' function but
-   might be differently implemented in the case of a m-on-n thread
-   implementation.  */
-extern int pthread_yield (void) __THROW;
-
-
-/* Limit specified thread TH to run only on the processors represented
-   in CPUSET.  */
-extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
-				   __const cpu_set_t *__cpuset)
-     __THROW __nonnull ((3));
-
-/* Get bit set in CPUSET representing the processors TH can run on.  */
-extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
-				   cpu_set_t *__cpuset)
-     __THROW __nonnull ((3));
+/* Same thing, different name */
+#define pthread_yield() sched_yield()
 #endif
 
+/* Functions for mutex handling.  */
 
-/* Functions for handling initialization.  */
+/* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
+   default values if later is NULL.  */
+extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
+			       __const pthread_mutexattr_t *__restrict
+			       __mutex_attr) __THROW;
 
-/* Guarantee that the initialization function INIT_ROUTINE will be called
-   only once, even if pthread_once is executed several times with the
-   same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
-   extern variable initialized to PTHREAD_ONCE_INIT.
+/* Destroy MUTEX.  */
+extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __THROW;
 
-   The initialization functions might throw exception which is why
-   this function is not marked with __THROW.  */
-extern int pthread_once (pthread_once_t *__once_control,
-			 void (*__init_routine) (void)) __nonnull ((1, 2));
+/* Try to lock MUTEX.  */
+extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) __THROW;
 
-
-/* Functions for handling cancellation.
-
-   Note that these functions are explicitly not marked to not throw an
-   exception in C++ code.  If cancellation is implemented by unwinding
-   this is necessary to have the compiler generate the unwind information.  */
-
-/* Set cancelability state of current thread to STATE, returning old
-   state in *OLDSTATE if OLDSTATE is not NULL.  */
-extern int pthread_setcancelstate (int __state, int *__oldstate);
-
-/* Set cancellation state of current thread to TYPE, returning the old
-   type in *OLDTYPE if OLDTYPE is not NULL.  */
-extern int pthread_setcanceltype (int __type, int *__oldtype);
-
-/* Cancel THREAD immediately or at the next possibility.  */
-extern int pthread_cancel (pthread_t __th);
-
-/* Test for pending cancellation for the current thread and terminate
-   the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
-   cancelled.  */
-extern void pthread_testcancel (void);
-
-
-/* Cancellation handling with integration into exception handling.  */
-
-typedef struct
-{
-  struct
-  {
-    __jmp_buf __cancel_jmp_buf;
-    int __mask_was_saved;
-  } __cancel_jmp_buf[1];
-  void *__pad[4];
-} __pthread_unwind_buf_t __attribute__ ((__aligned__));
-
-/* No special attributes by default.  */
-#ifndef __cleanup_fct_attribute
-# define __cleanup_fct_attribute
-#endif
-
-
-/* Structure to hold the cleanup handler information.  */
-struct __pthread_cleanup_frame
-{
-  void (*__cancel_routine) (void *);
-  void *__cancel_arg;
-  int __do_it;
-  int __cancel_type;
-};
-
-#if defined __GNUC__ && defined __EXCEPTIONS
-# ifdef __cplusplus
-/* Class to handle cancellation handler invocation.  */
-class __pthread_cleanup_class
-{
-  void (*__cancel_routine) (void *);
-  void *__cancel_arg;
-  int __do_it;
-  int __cancel_type;
-
- public:
-  __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
-    : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
-  ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
-  void __setdoit (int __newval) { __do_it = __newval; }
-  void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
-					   &__cancel_type); }
-  void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
-};
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-#  define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    __pthread_cleanup_class __clframe (routine, arg)
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-#  define pthread_cleanup_pop(execute) \
-    __clframe.__setdoit (execute);					      \
-  } while (0)
-
-#  ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#   define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    __pthread_cleanup_class __clframe (routine, arg);			      \
-    __clframe.__defer ()
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#   define pthread_cleanup_pop_restore_np(execute) \
-    __clframe.__restore ();						      \
-    __clframe.__setdoit (execute);					      \
-  } while (0)
-#  endif
-# else
-/* Function called to call the cleanup handler.  As an extern inline
-   function the compiler is free to decide inlining the change when
-   needed or fall back on the copy which must exist somewhere
-   else.  */
-__extern_inline void
-__pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
-{
-  if (__frame->__do_it)
-    __frame->__cancel_routine (__frame->__cancel_arg);
-}
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-#  define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
-      = { .__cancel_routine = (routine), .__cancel_arg = (arg),	 	      \
-	  .__do_it = 1 };
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-#  define pthread_cleanup_pop(execute) \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-
-#  ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#   define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
-      = { .__cancel_routine = (routine), .__cancel_arg = (arg),		      \
-	  .__do_it = 1 };						      \
-    (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,		      \
-				  &__clframe.__cancel_type)
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#   define pthread_cleanup_pop_restore_np(execute) \
-    (void) pthread_setcanceltype (__clframe.__cancel_type, NULL);	      \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-#  endif
-# endif
-#else
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-# define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    __pthread_unwind_buf_t __cancel_buf;				      \
-    void (*__cancel_routine) (void *) = (routine);			      \
-    void *__cancel_arg = (arg);						      \
-    int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)	      \
-				      __cancel_buf.__cancel_jmp_buf, 0);      \
-    if (__builtin_expect (not_first_call, 0))				      \
-      {									      \
-	__cancel_routine (__cancel_arg);				      \
-	__pthread_unwind_next (&__cancel_buf);				      \
-	/* NOTREACHED */						      \
-      }									      \
-									      \
-    __pthread_register_cancel (&__cancel_buf);				      \
-    do {
-extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-# define pthread_cleanup_pop(execute) \
-      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
-    } while (0);							      \
-    __pthread_unregister_cancel (&__cancel_buf);			      \
-    if (execute)							      \
-      __cancel_routine (__cancel_arg);					      \
-  } while (0)
-extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
-  __cleanup_fct_attribute;
-
-# ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#  define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    __pthread_unwind_buf_t __cancel_buf;				      \
-    void (*__cancel_routine) (void *) = (routine);			      \
-    void *__cancel_arg = (arg);						      \
-    int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)	      \
-				      __cancel_buf.__cancel_jmp_buf, 0);      \
-    if (__builtin_expect (not_first_call, 0))				      \
-      {									      \
-	__cancel_routine (__cancel_arg);				      \
-	__pthread_unwind_next (&__cancel_buf);				      \
-	/* NOTREACHED */						      \
-      }									      \
-									      \
-    __pthread_register_cancel_defer (&__cancel_buf);			      \
-    do {
-extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#  define pthread_cleanup_pop_restore_np(execute) \
-      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
-    } while (0);							      \
-    __pthread_unregister_cancel_restore (&__cancel_buf);		      \
-    if (execute)							      \
-      __cancel_routine (__cancel_arg);					      \
-  } while (0)
-extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
-  __cleanup_fct_attribute;
-# endif
-
-/* Internal interface to initiate cleanup.  */
-extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute__ ((__noreturn__))
-# ifndef SHARED
-     __attribute__ ((__weak__))
-# endif
-     ;
-#endif
-
-/* Function used in the macros.  */
-struct __jmp_buf_tag;
-extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROW;
-
-
-/* Mutex handling.  */
-
-/* Initialize a mutex.  */
-extern int pthread_mutex_init (pthread_mutex_t *__mutex,
-			       __const pthread_mutexattr_t *__mutexattr)
-     __THROW __nonnull ((1));
-
-/* Destroy a mutex.  */
-extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-
-/* Try locking a mutex.  */
-extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-
-/* Lock a mutex.  */
-extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
+/* Wait until lock for MUTEX becomes available and lock it.  */
+extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __THROW;
 
 #ifdef __USE_XOPEN2K
 /* Wait until lock becomes available, or specified time passes. */
 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
 				    __const struct timespec *__restrict
-				    __abstime) __THROW __nonnull ((1, 2));
+				    __abstime) __THROW;
 #endif
 
-/* Unlock a mutex.  */
-extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-
-
-/* Get the priority ceiling of MUTEX.  */
-extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
-					 __restrict __mutex,
-					 int *__restrict __prioceiling)
-     __THROW __nonnull ((1, 2));
-
-/* Set the priority ceiling of MUTEX to PRIOCEILING, return old
-   priority ceiling value in *OLD_CEILING.  */
-extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
-					 int __prioceiling,
-					 int *__restrict __old_ceiling)
-     __THROW __nonnull ((1, 3));
-
-
-#ifdef __USE_XOPEN2K8
-/* Declare the state protected by MUTEX as consistent.  */
-extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-# endif
-#endif
+/* Unlock MUTEX.  */
+extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) __THROW;
 
 
 /* Functions for handling mutex attributes.  */
 
 /* Initialize mutex attribute object ATTR with default attributes
    (kind is PTHREAD_MUTEX_TIMED_NP).  */
-extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
-     __THROW __nonnull ((1));
+extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __THROW;
 
 /* Destroy mutex attribute object ATTR.  */
-extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
-     __THROW __nonnull ((1));
+extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
 
 /* Get the process-shared flag of the mutex attribute ATTR.  */
 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
 					 __restrict __attr,
-					 int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
+					 int *__restrict __pshared) __THROW;
 
 /* Set the process-shared flag of the mutex attribute ATTR.  */
 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
-					 int __pshared)
-     __THROW __nonnull ((1));
+					 int __pshared) __THROW;
 
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
-/* Return in *KIND the mutex kind attribute in *ATTR.  */
-extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
-				      __attr, int *__restrict __kind)
-     __THROW __nonnull ((1, 2));
-
+#ifdef __USE_UNIX98
 /* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,
    PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or
    PTHREAD_MUTEX_DEFAULT).  */
 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
-     __THROW __nonnull ((1));
-#endif
+     __THROW;
 
-/* Return in *PROTOCOL the mutex protocol attribute in *ATTR.  */
-extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
-					  __restrict __attr,
-					  int *__restrict __protocol)
-     __THROW __nonnull ((1, 2));
-
-/* Set the mutex protocol attribute in *ATTR to PROTOCOL (either
-   PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT).  */
-extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
-					  int __protocol)
-     __THROW __nonnull ((1));
-
-/* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR.  */
-extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
-					     __restrict __attr,
-					     int *__restrict __prioceiling)
-     __THROW __nonnull ((1, 2));
-
-/* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING.  */
-extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
-					     int __prioceiling)
-     __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Get the robustness flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
-					int *__robustness)
-     __THROW __nonnull ((1, 2));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
-					   int *__robustness)
-     __THROW __nonnull ((1, 2));
-# endif
-
-/* Set the robustness flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
-					int __robustness)
-     __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
-					   int __robustness)
-     __THROW __nonnull ((1));
-# endif
-#endif
-
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-/* Functions for handling read-write locks.  */
-
-/* Initialize read-write lock RWLOCK using attributes ATTR, or use
-   the default values if later is NULL.  */
-extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-				__const pthread_rwlockattr_t *__restrict
-				__attr) __THROW __nonnull ((1));
-
-/* Destroy read-write lock RWLOCK.  */
-extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-/* Acquire read lock for RWLOCK.  */
-extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-/* Try to acquire read lock for RWLOCK.  */
-extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
-  __THROW __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire read lock for RWLOCK or return after specfied time.  */
-extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-				       __const struct timespec *__restrict
-				       __abstime) __THROW __nonnull ((1, 2));
-# endif
-
-/* Acquire write lock for RWLOCK.  */
-extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-/* Try to acquire write lock for RWLOCK.  */
-extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire write lock for RWLOCK or return after specfied time.  */
-extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-				       __const struct timespec *__restrict
-				       __abstime) __THROW __nonnull ((1, 2));
-# endif
-
-/* Unlock RWLOCK.  */
-extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-
-/* Functions for handling read-write lock attributes.  */
-
-/* Initialize attribute object ATTR with default values.  */
-extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy attribute object ATTR.  */
-extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Return current setting of process-shared attribute of ATTR in PSHARED.  */
-extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
-					  __restrict __attr,
-					  int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
-
-/* Set process-shared attribute of ATTR to PSHARED.  */
-extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
-					  int __pshared)
-     __THROW __nonnull ((1));
-
-/* Return current setting of reader/writer preference.  */
-extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
-					  __restrict __attr,
-					  int *__restrict __pref)
-     __THROW __nonnull ((1, 2));
-
-/* Set reader/write preference.  */
-extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
-					  int __pref) __THROW __nonnull ((1));
+/* Return in *KIND the mutex kind attribute in *ATTR.  */
+extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
+				      __attr, int *__restrict __kind) __THROW;
 #endif
 
 
@@ -941,136 +393,163 @@
    the default values if later is NULL.  */
 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
 			      __const pthread_condattr_t *__restrict
-			      __cond_attr) __THROW __nonnull ((1));
+			      __cond_attr) __THROW;
 
 /* Destroy condition variable COND.  */
-extern int pthread_cond_destroy (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
+extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW;
 
 /* Wake up one thread waiting for condition variable COND.  */
-extern int pthread_cond_signal (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
+extern int pthread_cond_signal (pthread_cond_t *__cond) __THROW;
 
 /* Wake up all threads waiting for condition variables COND.  */
-extern int pthread_cond_broadcast (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
+extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROW;
 
 /* Wait for condition variable COND to be signaled or broadcast.
-   MUTEX is assumed to be locked before.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
+   MUTEX is assumed to be locked before.  */
 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
-			      pthread_mutex_t *__restrict __mutex)
-     __nonnull ((1, 2));
+			      pthread_mutex_t *__restrict __mutex);
 
 /* Wait for condition variable COND to be signaled or broadcast until
    ABSTIME.  MUTEX is assumed to be locked before.  ABSTIME is an
    absolute time specification; zero is the beginning of the epoch
-   (00:00:00 GMT, January 1, 1970).
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
+   (00:00:00 GMT, January 1, 1970).  */
 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
 				   pthread_mutex_t *__restrict __mutex,
 				   __const struct timespec *__restrict
-				   __abstime) __nonnull ((1, 2, 3));
+				   __abstime);
 
 /* Functions for handling condition variable attributes.  */
 
 /* Initialize condition variable attribute ATTR.  */
-extern int pthread_condattr_init (pthread_condattr_t *__attr)
-     __THROW __nonnull ((1));
+extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW;
 
 /* Destroy condition variable attribute ATTR.  */
-extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
-     __THROW __nonnull ((1));
+extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
 
 /* Get the process-shared flag of the condition variable attribute ATTR.  */
 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
 					__restrict __attr,
-					int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
+					int *__restrict __pshared) __THROW;
 
 /* Set the process-shared flag of the condition variable attribute ATTR.  */
 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
-					int __pshared) __THROW __nonnull ((1));
+					int __pshared) __THROW;
 
-#ifdef __USE_XOPEN2K
-/* Get the clock selected for the conditon variable attribute ATTR.  */
-extern int pthread_condattr_getclock (__const pthread_condattr_t *
-				      __restrict __attr,
-				      __clockid_t *__restrict __clock_id)
-     __THROW __nonnull ((1, 2));
 
-/* Set the clock selected for the conditon variable attribute ATTR.  */
-extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
-				      __clockid_t __clock_id)
-     __THROW __nonnull ((1));
+#if defined __USE_UNIX98 || defined __USE_XOPEN2K
+/* Functions for handling read-write locks.  */
+
+/* Initialize read-write lock RWLOCK using attributes ATTR, or use
+   the default values if later is NULL.  */
+extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
+				__const pthread_rwlockattr_t *__restrict
+				__attr) __THROW;
+
+/* Destroy read-write lock RWLOCK.  */
+extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __THROW;
+
+/* Acquire read lock for RWLOCK.  */
+extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) __THROW;
+
+/* Try to acquire read lock for RWLOCK.  */
+extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __THROW;
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire read lock for RWLOCK or return after specfied time.  */
+extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
+				       __const struct timespec *__restrict
+				       __abstime) __THROW;
+# endif
+
+/* Acquire write lock for RWLOCK.  */
+extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) __THROW;
+
+/* Try to acquire write lock for RWLOCK.  */
+extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __THROW;
+
+# ifdef __USE_XOPEN2K
+/* Try to acquire write lock for RWLOCK or return after specfied time.  */
+extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
+				       __const struct timespec *__restrict
+				       __abstime) __THROW;
+# endif
+
+/* Unlock RWLOCK.  */
+extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) __THROW;
+
+
+/* Functions for handling read-write lock attributes.  */
+
+/* Initialize attribute object ATTR with default values.  */
+extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __THROW;
+
+/* Destroy attribute object ATTR.  */
+extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
+
+/* Return current setting of process-shared attribute of ATTR in PSHARED.  */
+extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
+					  __restrict __attr,
+					  int *__restrict __pshared) __THROW;
+
+/* Set process-shared attribute of ATTR to PSHARED.  */
+extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
+					  int __pshared) __THROW;
+
+/* Return current setting of reader/writer preference.  */
+extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
+					  int *__pref) __THROW;
+
+/* Set reader/write preference.  */
+extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
+					  int __pref) __THROW;
 #endif
 
+#if 0
+/* Not yet implemented in uClibc! */
 
 #ifdef __USE_XOPEN2K
-/* Functions to handle spinlocks.  */
+/* The IEEE Std. 1003.1j-2000 introduces functions to implement
+   spinlocks.  */
 
 /* Initialize the spinlock LOCK.  If PSHARED is nonzero the spinlock can
    be shared between different processes.  */
 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
-     __THROW __nonnull ((1));
+     __THROW;
 
 /* Destroy the spinlock LOCK.  */
-extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+extern int pthread_spin_destroy (pthread_spinlock_t *__lock) __THROW;
 
 /* Wait until spinlock LOCK is retrieved.  */
-extern int pthread_spin_lock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+extern int pthread_spin_lock (pthread_spinlock_t *__lock) __THROW;
 
 /* Try to lock spinlock LOCK.  */
-extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+extern int pthread_spin_trylock (pthread_spinlock_t *__lock) __THROW;
 
 /* Release spinlock LOCK.  */
-extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __THROW;
 
 
-/* Functions to handle barriers.  */
+/* Barriers are a also a new feature in 1003.1j-2000. */
 
-/* Initialize BARRIER with the attributes in ATTR.  The barrier is
-   opened when COUNT waiters arrived.  */
 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
 				 __const pthread_barrierattr_t *__restrict
-				 __attr, unsigned int __count)
-     __THROW __nonnull ((1));
+				 __attr, unsigned int __count) __THROW;
 
-/* Destroy a previously dynamically initialized barrier BARRIER.  */
-extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
-     __THROW __nonnull ((1));
+extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
 
-/* Wait on barrier BARRIER.  */
-extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
-     __THROW __nonnull ((1));
+extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __THROW;
 
+extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
 
-/* Initialize barrier attribute ATTR.  */
-extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy previously dynamically initialized barrier attribute ATTR.  */
-extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the barrier attribute ATTR.  */
 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
 					   __restrict __attr,
-					   int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
+					   int *__restrict __pshared) __THROW;
 
-/* Set the process-shared flag of the barrier attribute ATTR.  */
 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
-					   int __pshared)
-     __THROW __nonnull ((1));
+					   int __pshared) __THROW;
+
+extern int pthread_barrier_wait (pthread_barrier_t *__barrier) __THROW;
+#endif
 #endif
 
 
@@ -1083,28 +562,121 @@
    DESTR_FUNCTION is not called if the value associated is NULL when
    the key is destroyed.  */
 extern int pthread_key_create (pthread_key_t *__key,
-			       void (*__destr_function) (void *))
-     __THROW __nonnull ((1));
+			       void (*__destr_function) (void *)) __THROW;
 
 /* Destroy KEY.  */
 extern int pthread_key_delete (pthread_key_t __key) __THROW;
 
+/* Store POINTER in the thread-specific data slot identified by KEY. */
+extern int pthread_setspecific (pthread_key_t __key,
+				__const void *__pointer) __THROW;
+
 /* Return current value of the thread-specific data slot identified by KEY.  */
 extern void *pthread_getspecific (pthread_key_t __key) __THROW;
 
-/* Store POINTER in the thread-specific data slot identified by KEY. */
-extern int pthread_setspecific (pthread_key_t __key,
-				__const void *__pointer) __THROW ;
 
+/* Functions for handling initialization.  */
+
+/* Guarantee that the initialization function INIT_ROUTINE will be called
+   only once, even if pthread_once is executed several times with the
+   same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
+   extern variable initialized to PTHREAD_ONCE_INIT.
+
+   The initialization functions might throw exception which is why
+   this function is not marked with __THROW.  */
+extern int pthread_once (pthread_once_t *__once_control,
+			 void (*__init_routine) (void));
+
+
+/* Functions for handling cancellation.  */
+
+/* Set cancelability state of current thread to STATE, returning old
+   state in *OLDSTATE if OLDSTATE is not NULL.  */
+extern int pthread_setcancelstate (int __state, int *__oldstate);
+
+/* Set cancellation state of current thread to TYPE, returning the old
+   type in *OLDTYPE if OLDTYPE is not NULL.  */
+extern int pthread_setcanceltype (int __type, int *__oldtype);
+
+/* Cancel THREAD immediately or at the next possibility.  */
+extern int pthread_cancel (pthread_t __cancelthread);
+
+/* Test for pending cancellation for the current thread and terminate
+   the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
+   cancelled.  */
+extern void pthread_testcancel (void);
+
+
+/* Install a cleanup handler: ROUTINE will be called with arguments ARG
+   when the thread is cancelled or calls pthread_exit.  ROUTINE will also
+   be called with arguments ARG when the matching pthread_cleanup_pop
+   is executed with non-zero EXECUTE argument.
+   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
+   be used in matching pairs at the same nesting level of braces. */
+
+#define pthread_cleanup_push(routine,arg) \
+  { struct _pthread_cleanup_buffer _buffer;				      \
+    _pthread_cleanup_push (&_buffer, (routine), (arg));
+
+extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
+				   void (*__routine) (void *),
+				   void *__arg) __THROW;
+
+/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
+   If EXECUTE is non-zero, the handler function is called. */
+
+#define pthread_cleanup_pop(execute) \
+    _pthread_cleanup_pop (&_buffer, (execute)); }
+
+extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
+				  int __execute) __THROW;
+
+/* Install a cleanup handler as pthread_cleanup_push does, but also
+   saves the current cancellation type and set it to deferred cancellation.  */
+
+#ifdef __USE_GNU
+# define pthread_cleanup_push_defer_np(routine,arg) \
+  { struct _pthread_cleanup_buffer _buffer;				      \
+    _pthread_cleanup_push_defer (&_buffer, (routine), (arg));
+
+extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
+					 void (*__routine) (void *),
+					 void *__arg) __THROW;
+extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
+					  void (*__routine) (void *),
+					  void *__arg) __THROW;
+
+/* Remove a cleanup handler as pthread_cleanup_pop does, but also
+   restores the cancellation type that was in effect when the matching
+   pthread_cleanup_push_defer was called.  */
+
+# define pthread_cleanup_pop_restore_np(execute) \
+  _pthread_cleanup_pop_restore (&_buffer, (execute)); }
+
+extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
+					  int __execute) __THROW;
+extern void __pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
+					   int __execute) __THROW;
+#endif
+
+
+#if 0
+/* Not yet implemented in uClibc! */
 
 #ifdef __USE_XOPEN2K
 /* Get ID of CPU-time clock for thread THREAD_ID.  */
 extern int pthread_getcpuclockid (pthread_t __thread_id,
-				  __clockid_t *__clock_id)
-     __THROW __nonnull ((2));
+				  clockid_t *__clock_id) __THROW;
+#endif
 #endif
 
 
+/* Functions for handling signals.  */
+#include <bits/sigthread.h>
+
+
+/* Functions for handling process creation and process execution.  */
+
 /* Install handlers to be called when a new process is created with FORK.
    The PREPARE handler is called in the parent process just before performing
    FORK. The PARENT handler is called in the parent process just after FORK.
@@ -1120,15 +692,10 @@
 			   void (*__parent) (void),
 			   void (*__child) (void)) __THROW;
 
+/* Terminate all threads in the program except the calling process.
+   Should be called just before invoking one of the exec*() functions.  */
 
-#ifdef __USE_EXTERN_INLINES
-/* Optimizations.  */
-__extern_inline int
-__NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
-{
-  return __thread1 == __thread2;
-}
-#endif
+extern void pthread_kill_other_threads_np (void) __THROW;
 
 __END_DECLS
 
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/semaphore.h b/mips-qca-linux-uclibc/sysroot/usr/include/semaphore.h
index 4f13725..fea127b 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/semaphore.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/semaphore.h
@@ -1,20 +1,16 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+/* Linuxthreads - a simple clone()-based implementation of Posix        */
+/* threads for Linux.                                                   */
+/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)              */
+/*                                                                      */
+/* This program is free software; you can redistribute it and/or        */
+/* modify it under the terms of the GNU Library General Public License  */
+/* as published by the Free Software Foundation; either version 2       */
+/* of the License, or (at your option) any later version.               */
+/*                                                                      */
+/* This program is distributed in the hope that it will be useful,      */
+/* but WITHOUT ANY WARRANTY; without even the implied warranty of       */
+/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        */
+/* GNU Library General Public License for more details.                 */
 
 #ifndef _SEMAPHORE_H
 #define _SEMAPHORE_H	1
@@ -26,16 +22,35 @@
 # include <time.h>
 #endif
 
-/* Get the definition for sem_t.  */
-#include <bits/semaphore.h>
+#ifndef _PTHREAD_DESCR_DEFINED
+/* Thread descriptors.  Needed for `sem_t' definition.  */
+typedef struct _pthread_descr_struct *_pthread_descr;
+# define _PTHREAD_DESCR_DEFINED
+#endif
+
+/* System specific semaphore definition.  */
+typedef struct
+{
+  struct _pthread_fastlock __sem_lock;
+  int __sem_value;
+  _pthread_descr __sem_waiting;
+} sem_t;
+
+
+
+/* Value returned if `sem_open' failed.  */
+#define SEM_FAILED	((sem_t *) 0)
+
+/* Maximum value the semaphore can have.  */
+#define SEM_VALUE_MAX	((int) ((~0u) >> 1))
 
 
 __BEGIN_DECLS
 
 /* Initialize semaphore object SEM to VALUE.  If PSHARED then share it
    with other processes.  */
-extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value)
-     __THROW;
+extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) __THROW;
+
 /* Free resources associated with semaphore object SEM.  */
 extern int sem_destroy (sem_t *__sem) __THROW;
 
diff --git a/mips-qca-linux-uclibc/sysroot/usr/include/thread_db.h b/mips-qca-linux-uclibc/sysroot/usr/include/thread_db.h
index 23cb5c6..c115399 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/include/thread_db.h
+++ b/mips-qca-linux-uclibc/sysroot/usr/include/thread_db.h
@@ -20,9 +20,9 @@
 #ifndef _THREAD_DB_H
 #define _THREAD_DB_H	1
 
-/* This is the debugger interface for the NPTL library.  It is
-   modelled closely after the interface with same names in Solaris
-   with the goal to share the same code in the debugger.  */
+/* This is the debugger interface for the LinuxThreads library.  It is
+   modelled closely after the interface with same names in Solaris with
+   the goal to share the same code in the debugger.  */
 #include <pthread.h>
 #include <stdint.h>
 #include <sys/types.h>
@@ -56,7 +56,7 @@
   TD_TLSDEFER,	  /* Thread has not yet allocated TLS for given module.  */
   TD_NOTALLOC = TD_TLSDEFER,
   TD_VERSION,	  /* Version if libpthread and libthread_db do not match.  */
-  TD_NOTLS	  /* There is no TLS segment in the given module.  */
+  TD_NOTLS	  /* There is TLS segment in the given module.  */
 } td_err_e;
 
 
@@ -278,7 +278,7 @@
   intptr_t ti_sp;			/* Unused.  */
   short int ti_flags;			/* Unused.  */
   int ti_pri;				/* Thread priority.  */
-  lwpid_t ti_lid;			/* Kernel PID for this thread.  */
+  lwpid_t ti_lid;			/* Unused.  */
   sigset_t ti_sigmask;			/* Signal mask.  */
   unsigned char ti_traceme;		/* Nonzero if event reporting
 					   enabled.  */
@@ -355,10 +355,10 @@
 extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta,
 				    td_event_msg_t *__msg);
 
-#ifdef __UCLIBC_SUSV4_LEGACY__
+
 /* Set suggested concurrency level for process associated with TA.  */
 extern td_err_e td_ta_setconcurrency (const td_thragent_t *__ta, int __level);
-#endif
+
 
 /* Enable collecting statistics for process associated with TA.  */
 extern td_err_e td_ta_enable_stats (const td_thragent_t *__ta, int __enable);
@@ -412,8 +412,8 @@
 
 /* Get address of thread local variable.  */
 extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th,
-				     psaddr_t __map_address, size_t __offset,
-				     psaddr_t *__address);
+				     void *__map_address, size_t __offset,
+				     void **__address);
 
 
 /* Enable reporting for EVENT for thread TH.  */
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd-2.24.so b/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd-2.24.so
index 4e7f613..77f2cdd 100755
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd-2.24.so
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd-2.24.so
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd.a
index 2231cb3..349f772 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libbfd.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libc.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libc.a
index 392ce84..bfa732b 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libc.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libc.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libcrypt.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libcrypt.a
index e9bcd42..c941e70 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libcrypt.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libcrypt.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libdl.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libdl.a
index 8d433cf..5793d3a 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libdl.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libdl.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libm.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libm.a
index 7137a6c..8d623f0 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libm.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libm.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libnsl.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libnsl.a
index 99f10fe..89c5a4a 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libnsl.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libnsl.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.a
index bb48628..65a6ba6 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so
deleted file mode 100644
index 866dcd4..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so
+++ /dev/null
@@ -1,4 +0,0 @@
-/* GNU ld script
- * Use the shared library, but some functions are only in
- * the static library, so try that secondarily. */
-GROUP ( /lib/libpthread.so.0 /usr/lib/libpthread_nonshared.a )
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so
new file mode 120000
index 0000000..57f4003
--- /dev/null
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread.so
@@ -0,0 +1 @@
+../../lib/libpthread.so.0
\ No newline at end of file
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared.a
deleted file mode 100644
index ba041bd..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared.a
+++ /dev/null
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared_pic.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared_pic.a
deleted file mode 120000
index 850a03d..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libpthread_nonshared_pic.a
+++ /dev/null
@@ -1 +0,0 @@
-libpthread_nonshared.a
\ No newline at end of file
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libresolv.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libresolv.a
index 5e02dd1..1be4d26 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libresolv.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libresolv.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/librt.a b/mips-qca-linux-uclibc/sysroot/usr/lib/librt.a
index 49a19b6..00ccec2 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/librt.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/librt.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libthread_db.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libthread_db.a
index c19ff94..7045bed 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libthread_db.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libthread_db.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/libutil.a b/mips-qca-linux-uclibc/sysroot/usr/lib/libutil.a
index c5f94f2..bef882a 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/libutil.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/libutil.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/lib/uclibc_nonshared.a b/mips-qca-linux-uclibc/sysroot/usr/lib/uclibc_nonshared.a
index 8d7cc3f..18c3e6a 100644
--- a/mips-qca-linux-uclibc/sysroot/usr/lib/uclibc_nonshared.a
+++ b/mips-qca-linux-uclibc/sysroot/usr/lib/uclibc_nonshared.a
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/share/info/bfd.info b/mips-qca-linux-uclibc/sysroot/usr/share/info/bfd.info
deleted file mode 100644
index 0dc93b6..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/share/info/bfd.info
+++ /dev/null
Binary files differ
diff --git a/mips-qca-linux-uclibc/sysroot/usr/share/info/dir b/mips-qca-linux-uclibc/sysroot/usr/share/info/dir
deleted file mode 100644
index 886acf9..0000000
--- a/mips-qca-linux-uclibc/sysroot/usr/share/info/dir
+++ /dev/null
@@ -1,18 +0,0 @@
-This is the file .../info/dir, which contains the
-topmost node of the Info hierarchy, called (dir)Top.
-The first time you invoke Info you start off looking at this node.
-
-File: dir,	Node: Top	This is the top of the INFO tree
-
-  This (the Directory node) gives a menu of major topics.
-  Typing "q" exits, "?" lists all Info commands, "d" returns here,
-  "h" gives a primer for first-timers,
-  "mEmacs<Return>" visits the Emacs manual, etc.
-
-  In Emacs, you can click mouse button 2 on a menu item or cross reference
-  to select it.
-
-* Menu:
-
-Software development
-* Bfd: (bfd).                   The Binary File Descriptor library.
diff --git a/share/info/annotate.info b/share/info/annotate.info
deleted file mode 100644
index 8cbcc4f..0000000
--- a/share/info/annotate.info
+++ /dev/null
@@ -1,1187 +0,0 @@
-This is annotate.info, produced by makeinfo version 5.2 from
-annotate.texinfo.
-
-Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-INFO-DIR-SECTION Software development
-START-INFO-DIR-ENTRY
-* Annotate: (annotate).                 The obsolete annotation interface.
-END-INFO-DIR-ENTRY
-
-   This file documents GDB's obsolete annotations.
-
-   Copyright (C) 1994-2014 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-
-
-File: annotate.info,  Node: Top,  Next: Annotations Overview,  Up: (dir)
-
-GDB Annotations
-***************
-
-This document describes the obsolete level two annotation interface
-implemented in older GDB versions.
-
-* Menu:
-
-* Annotations Overview::  What annotations are; the general syntax.
-* Limitations::           Limitations of the annotation interface.
-* Migrating to GDB/MI::   Migrating to GDB/MI
-* Server Prefix::       Issuing a command without affecting user state.
-* Value Annotations::   Values are marked as such.
-* Frame Annotations::   Stack frames are annotated.
-* Displays::            GDB can be told to display something periodically.
-* Prompting::           Annotations marking GDB's need for input.
-* Errors::              Annotations for error messages.
-* Breakpoint Info::     Information on breakpoints.
-* Invalidation::        Some annotations describe things now invalid.
-* Annotations for Running::
-                        Whether the program is running, how it stopped, etc.
-* Source Annotations::  Annotations describing source code.
-* Multi-threaded Apps:: An annotation that reports multi-threadedness.
-
-* GNU Free Documentation License::
-
-
-File: annotate.info,  Node: Annotations Overview,  Next: Limitations,  Prev: Top,  Up: Top
-
-1 What is an Annotation?
-************************
-
-To produce obsolete level two annotations, start GDB with the
-'--annotate=2' option.
-
-   Annotations start with a newline character, two 'control-z'
-characters, and the name of the annotation.  If there is no additional
-information associated with this annotation, the name of the annotation
-is followed immediately by a newline.  If there is additional
-information, the name of the annotation is followed by a space, the
-additional information, and a newline.  The additional information
-cannot contain newline characters.
-
-   Any output not beginning with a newline and two 'control-z'
-characters denotes literal output from GDB.  Currently there is no need
-for GDB to output a newline followed by two 'control-z' characters, but
-if there was such a need, the annotations could be extended with an
-'escape' annotation which means those three characters as output.
-
-   A simple example of starting up GDB with annotations is:
-
-     $ gdb --annotate=2
-     GNU GDB 5.0
-     Copyright 2000 Free Software Foundation, Inc.
-     GDB is free software, covered by the GNU General Public License,
-     and you are welcome to change it and/or distribute copies of it
-     under certain conditions.
-     Type "show copying" to see the conditions.
-     There is absolutely no warranty for GDB.  Type "show warranty"
-     for details.
-     This GDB was configured as "sparc-sun-sunos4.1.3"
-
-     ^Z^Zpre-prompt
-     (gdb)
-     ^Z^Zprompt
-     quit
-
-     ^Z^Zpost-prompt
-     $
-
-   Here 'quit' is input to GDB; the rest is output from GDB.  The three
-lines beginning '^Z^Z' (where '^Z' denotes a 'control-z' character) are
-annotations; the rest is output from GDB.
-
-
-File: annotate.info,  Node: Limitations,  Next: Migrating to GDB/MI,  Prev: Annotations Overview,  Up: Top
-
-2 Limitations of the Annotation Interface
-*****************************************
-
-The level two annotations mechanism is known to have a number of
-technical and architectural limitations.  As a consequence, in 2001,
-with the release of GDB 5.1 and the addition of GDB/MI, the annotation
-interface was marked as deprecated.
-
-   This chapter discusses the known problems.
-
-2.1 Dependant on CLI output
-===========================
-
-The annotation interface works by interspersing markups with GDB normal
-command-line interpreter output.  Unfortunately, this makes the
-annotation client dependant on not just the annotations, but also the
-CLI output.  This is because the client is forced to assume that
-specific GDB commands provide specific information.  Any change to GDB's
-CLI output modifies or removes that information and, consequently,
-likely breaks the client.
-
-   Since the GDB/MI output is independent of the CLI, it does not have
-this problem.
-
-2.2 Scalability
-===============
-
-The annotation interface relies on value annotations (*note Value
-Annotations::) and the display mechanism as a way of obtaining
-up-to-date value information.  These mechanisms are not scalable.
-
-   In a graphical environment, where many values can be displayed
-simultaneously, a serious performance problem occurs when the client
-tries to first extract from GDB, and then re-display, all those values.
-The client should instead only request and update the values that
-changed.
-
-   The GDB/MI Variable Objects provide just that mechanism.
-
-2.3 Correctness
-===============
-
-The annotation interface assumes that a variable's value can only be
-changed when the target is running.  This assumption is not correct.  A
-single assignment to a single variable can result in the entire target,
-and all displayed values, needing an update.
-
-   The GDB/MI Variable Objects include a mechanism for efficiently
-reporting such changes.
-
-2.4 Reliability
-===============
-
-The GDB/MI interface includes a dedicated test directory ('gdb/gdb.mi'),
-and any addition or fix to GDB/MI must include testsuite changes.
-
-2.5 Maintainability
-===================
-
-The annotation mechanism was implemented by interspersing CLI print
-statements with various annotations.  As a consequence, any CLI output
-change can alter the annotation output.
-
-   Since the GDB/MI output is independent of the CLI, and the GDB/MI is
-increasingly implemented independent of the CLI code, its long term
-maintenance is much easier.
-
-
-File: annotate.info,  Node: Migrating to GDB/MI,  Next: Server Prefix,  Prev: Limitations,  Up: Top
-
-3 Migrating to GDB/MI
-*********************
-
-By using the 'interp mi' command, it is possible for annotation clients
-to invoke GDB/MI commands, and hence access the GDB/MI.  By doing this,
-existing annotation clients have a migration path from this obsolete
-interface to GDB/MI.
-
-
-File: annotate.info,  Node: Server Prefix,  Next: Value Annotations,  Prev: Migrating to GDB/MI,  Up: Top
-
-4 The Server Prefix
-*******************
-
-To issue a command to GDB without affecting certain aspects of the state
-which is seen by users, prefix it with 'server '.  This means that this
-command will not affect the command history, nor will it affect GDB's
-notion of which command to repeat if <RET> is pressed on a line by
-itself.
-
-   The server prefix does not affect the recording of values into the
-value history; to print a value without recording it into the value
-history, use the 'output' command instead of the 'print' command.
-
-
-File: annotate.info,  Node: Value Annotations,  Next: Frame Annotations,  Prev: Server Prefix,  Up: Top
-
-5 Values
-********
-
-_Value Annotations have been removed.  GDB/MI instead provides Variable
-Objects._
-
-   When a value is printed in various contexts, GDB uses annotations to
-delimit the value from the surrounding text.
-
-   If a value is printed using 'print' and added to the value history,
-the annotation looks like
-
-     ^Z^Zvalue-history-begin HISTORY-NUMBER VALUE-FLAGS
-     HISTORY-STRING
-     ^Z^Zvalue-history-value
-     THE-VALUE
-     ^Z^Zvalue-history-end
-
-where HISTORY-NUMBER is the number it is getting in the value history,
-HISTORY-STRING is a string, such as '$5 = ', which introduces the value
-to the user, THE-VALUE is the output corresponding to the value itself,
-and VALUE-FLAGS is '*' for a value which can be dereferenced and '-' for
-a value which cannot.
-
-   If the value is not added to the value history (it is an invalid
-float or it is printed with the 'output' command), the annotation is
-similar:
-
-     ^Z^Zvalue-begin VALUE-FLAGS
-     THE-VALUE
-     ^Z^Zvalue-end
-
-   When GDB prints an argument to a function (for example, in the output
-from the 'backtrace' command), it annotates it as follows:
-
-     ^Z^Zarg-begin
-     ARGUMENT-NAME
-     ^Z^Zarg-name-end
-     SEPARATOR-STRING
-     ^Z^Zarg-value VALUE-FLAGS
-     THE-VALUE
-     ^Z^Zarg-end
-
-where ARGUMENT-NAME is the name of the argument, SEPARATOR-STRING is
-text which separates the name from the value for the user's benefit
-(such as '='), and VALUE-FLAGS and THE-VALUE have the same meanings as
-in a 'value-history-begin' annotation.
-
-   When printing a structure, GDB annotates it as follows:
-
-     ^Z^Zfield-begin VALUE-FLAGS
-     FIELD-NAME
-     ^Z^Zfield-name-end
-     SEPARATOR-STRING
-     ^Z^Zfield-value
-     THE-VALUE
-     ^Z^Zfield-end
-
-where FIELD-NAME is the name of the field, SEPARATOR-STRING is text
-which separates the name from the value for the user's benefit (such as
-'='), and VALUE-FLAGS and THE-VALUE have the same meanings as in a
-'value-history-begin' annotation.
-
-   When printing an array, GDB annotates it as follows:
-
-     ^Z^Zarray-section-begin ARRAY-INDEX VALUE-FLAGS
-
-where ARRAY-INDEX is the index of the first element being annotated and
-VALUE-FLAGS has the same meaning as in a 'value-history-begin'
-annotation.  This is followed by any number of elements, where is
-element can be either a single element:
-
-     ',' WHITESPACE         ; omitted for the first element
-     THE-VALUE
-     ^Z^Zelt
-
-   or a repeated element
-
-     ',' WHITESPACE         ; omitted for the first element
-     THE-VALUE
-     ^Z^Zelt-rep NUMBER-OF-REPETITIONS
-     REPETITION-STRING
-     ^Z^Zelt-rep-end
-
-   In both cases, THE-VALUE is the output for the value of the element
-and WHITESPACE can contain spaces, tabs, and newlines.  In the repeated
-case, NUMBER-OF-REPETITIONS is the number of consecutive array elements
-which contain that value, and REPETITION-STRING is a string which is
-designed to convey to the user that repetition is being depicted.
-
-   Once all the array elements have been output, the array annotation is
-ended with
-
-     ^Z^Zarray-section-end
-
-
-File: annotate.info,  Node: Frame Annotations,  Next: Displays,  Prev: Value Annotations,  Up: Top
-
-6 Frames
-********
-
-_Value Annotations have been removed.  GDB/MI instead provides a number
-of frame commands._
-
-   _Frame annotations are no longer available.  The GDB/MI provides
-'-stack-list-arguments', '-stack-list-locals', and '-stack-list-frames'
-commands._
-
-   Whenever GDB prints a frame, it annotates it.  For example, this
-applies to frames printed when GDB stops, output from commands such as
-'backtrace' or 'up', etc.
-
-   The frame annotation begins with
-
-     ^Z^Zframe-begin LEVEL ADDRESS
-     LEVEL-STRING
-
-where LEVEL is the number of the frame (0 is the innermost frame, and
-other frames have positive numbers), ADDRESS is the address of the code
-executing in that frame, and LEVEL-STRING is a string designed to convey
-the level to the user.  ADDRESS is in the form '0x' followed by one or
-more lowercase hex digits (note that this does not depend on the
-language).  The frame ends with
-
-     ^Z^Zframe-end
-
-   Between these annotations is the main body of the frame, which can
-consist of
-
-   *      ^Z^Zfunction-call
-          FUNCTION-CALL-STRING
-
-     where FUNCTION-CALL-STRING is text designed to convey to the user
-     that this frame is associated with a function call made by GDB to a
-     function in the program being debugged.
-
-   *      ^Z^Zsignal-handler-caller
-          SIGNAL-HANDLER-CALLER-STRING
-
-     where SIGNAL-HANDLER-CALLER-STRING is text designed to convey to
-     the user that this frame is associated with whatever mechanism is
-     used by this operating system to call a signal handler (it is the
-     frame which calls the signal handler, not the frame for the signal
-     handler itself).
-
-   * A normal frame.
-
-     This can optionally (depending on whether this is thought of as
-     interesting information for the user to see) begin with
-
-          ^Z^Zframe-address
-          ADDRESS
-          ^Z^Zframe-address-end
-          SEPARATOR-STRING
-
-     where ADDRESS is the address executing in the frame (the same
-     address as in the 'frame-begin' annotation, but printed in a form
-     which is intended for user consumption--in particular, the syntax
-     varies depending on the language), and SEPARATOR-STRING is a string
-     intended to separate this address from what follows for the user's
-     benefit.
-
-     Then comes
-
-          ^Z^Zframe-function-name
-          FUNCTION-NAME
-          ^Z^Zframe-args
-          ARGUMENTS
-
-     where FUNCTION-NAME is the name of the function executing in the
-     frame, or '??' if not known, and ARGUMENTS are the arguments to the
-     frame, with parentheses around them (each argument is annotated
-     individually as well, *note Value Annotations::).
-
-     If source information is available, a reference to it is then
-     printed:
-
-          ^Z^Zframe-source-begin
-          SOURCE-INTRO-STRING
-          ^Z^Zframe-source-file
-          FILENAME
-          ^Z^Zframe-source-file-end
-          :
-          ^Z^Zframe-source-line
-          LINE-NUMBER
-          ^Z^Zframe-source-end
-
-     where SOURCE-INTRO-STRING separates for the user's benefit the
-     reference from the text which precedes it, FILENAME is the name of
-     the source file, and LINE-NUMBER is the line number within that
-     file (the first line is line 1).
-
-     If GDB prints some information about where the frame is from (which
-     library, which load segment, etc.; currently only done on the
-     RS/6000), it is annotated with
-
-          ^Z^Zframe-where
-          INFORMATION
-
-     Then, if source is to actually be displayed for this frame (for
-     example, this is not true for output from the 'backtrace' command),
-     then a 'source' annotation (*note Source Annotations::) is
-     displayed.  Unlike most annotations, this is output instead of the
-     normal text which would be output, not in addition.
-
-
-File: annotate.info,  Node: Displays,  Next: Prompting,  Prev: Frame Annotations,  Up: Top
-
-7 Displays
-**********
-
-_Display Annotations have been removed.  GDB/MI instead provides
-Variable Objects._
-
-   When GDB is told to display something using the 'display' command,
-the results of the display are annotated:
-
-     ^Z^Zdisplay-begin
-     NUMBER
-     ^Z^Zdisplay-number-end
-     NUMBER-SEPARATOR
-     ^Z^Zdisplay-format
-     FORMAT
-     ^Z^Zdisplay-expression
-     EXPRESSION
-     ^Z^Zdisplay-expression-end
-     EXPRESSION-SEPARATOR
-     ^Z^Zdisplay-value
-     VALUE
-     ^Z^Zdisplay-end
-
-where NUMBER is the number of the display, NUMBER-SEPARATOR is intended
-to separate the number from what follows for the user, FORMAT includes
-information such as the size, format, or other information about how the
-value is being displayed, EXPRESSION is the expression being displayed,
-EXPRESSION-SEPARATOR is intended to separate the expression from the
-text that follows for the user, and VALUE is the actual value being
-displayed.
-
-
-File: annotate.info,  Node: Prompting,  Next: Errors,  Prev: Displays,  Up: Top
-
-8 Annotation for GDB Input
-**************************
-
-When GDB prompts for input, it annotates this fact so it is possible to
-know when to send output, when the output from a given command is over,
-etc.
-
-   Different kinds of input each have a different "input type".  Each
-input type has three annotations: a 'pre-' annotation, which denotes the
-beginning of any prompt which is being output, a plain annotation, which
-denotes the end of the prompt, and then a 'post-' annotation which
-denotes the end of any echo which may (or may not) be associated with
-the input.  For example, the 'prompt' input type features the following
-annotations:
-
-     ^Z^Zpre-prompt
-     ^Z^Zprompt
-     ^Z^Zpost-prompt
-
-   The input types are
-
-'prompt'
-     When GDB is prompting for a command (the main GDB prompt).
-
-'commands'
-     When GDB prompts for a set of commands, like in the 'commands'
-     command.  The annotations are repeated for each command which is
-     input.
-
-'overload-choice'
-     When GDB wants the user to select between various overloaded
-     functions.
-
-'query'
-     When GDB wants the user to confirm a potentially dangerous
-     operation.
-
-'prompt-for-continue'
-     When GDB is asking the user to press return to continue.  Note:
-     Don't expect this to work well; instead use 'set height 0' to
-     disable prompting.  This is because the counting of lines is buggy
-     in the presence of annotations.
-
-
-File: annotate.info,  Node: Errors,  Next: Breakpoint Info,  Prev: Prompting,  Up: Top
-
-9 Errors
-********
-
-     ^Z^Zquit
-
-   This annotation occurs right before GDB responds to an interrupt.
-
-     ^Z^Zerror
-
-   This annotation occurs right before GDB responds to an error.
-
-   Quit and error annotations indicate that any annotations which GDB
-was in the middle of may end abruptly.  For example, if a
-'value-history-begin' annotation is followed by a 'error', one cannot
-expect to receive the matching 'value-history-end'.  One cannot expect
-not to receive it either, however; an error annotation does not
-necessarily mean that GDB is immediately returning all the way to the
-top level.
-
-   A quit or error annotation may be preceded by
-
-     ^Z^Zerror-begin
-
-   Any output between that and the quit or error annotation is the error
-message.
-
-   Warning messages are not yet annotated.
-
-
-File: annotate.info,  Node: Breakpoint Info,  Next: Invalidation,  Prev: Errors,  Up: Top
-
-10 Information on Breakpoints
-*****************************
-
-_Breakpoint Annotations have been removed.  GDB/MI instead provides
-breakpoint commands._
-
-   The output from the 'info breakpoints' command is annotated as
-follows:
-
-     ^Z^Zbreakpoints-headers
-     HEADER-ENTRY
-     ^Z^Zbreakpoints-table
-
-where HEADER-ENTRY has the same syntax as an entry (see below) but
-instead of containing data, it contains strings which are intended to
-convey the meaning of each field to the user.  This is followed by any
-number of entries.  If a field does not apply for this entry, it is
-omitted.  Fields may contain trailing whitespace.  Each entry consists
-of:
-
-     ^Z^Zrecord
-     ^Z^Zfield 0
-     NUMBER
-     ^Z^Zfield 1
-     TYPE
-     ^Z^Zfield 2
-     DISPOSITION
-     ^Z^Zfield 3
-     ENABLE
-     ^Z^Zfield 4
-     ADDRESS
-     ^Z^Zfield 5
-     WHAT
-     ^Z^Zfield 6
-     FRAME
-     ^Z^Zfield 7
-     CONDITION
-     ^Z^Zfield 8
-     IGNORE-COUNT
-     ^Z^Zfield 9
-     COMMANDS
-
-   Note that ADDRESS is intended for user consumption--the syntax varies
-depending on the language.
-
-   The output ends with
-
-     ^Z^Zbreakpoints-table-end
-
-
-File: annotate.info,  Node: Invalidation,  Next: Annotations for Running,  Prev: Breakpoint Info,  Up: Top
-
-11 Invalidation Notices
-***********************
-
-The following annotations say that certain pieces of state may have
-changed.
-
-'^Z^Zframes-invalid'
-
-     The frames (for example, output from the 'backtrace' command) may
-     have changed.
-
-'^Z^Zbreakpoints-invalid'
-
-     The breakpoints may have changed.  For example, the user just added
-     or deleted a breakpoint.
-
-
-File: annotate.info,  Node: Annotations for Running,  Next: Source Annotations,  Prev: Invalidation,  Up: Top
-
-12 Running the Program
-**********************
-
-When the program starts executing due to a GDB command such as 'step' or
-'continue',
-
-     ^Z^Zstarting
-
-   is output.  When the program stops,
-
-     ^Z^Zstopped
-
-   is output.  Before the 'stopped' annotation, a variety of annotations
-describe how the program stopped.
-
-'^Z^Zexited EXIT-STATUS'
-     The program exited, and EXIT-STATUS is the exit status (zero for
-     successful exit, otherwise nonzero).
-
-'^Z^Zsignalled'
-     The program exited with a signal.  After the '^Z^Zsignalled', the
-     annotation continues:
-
-          INTRO-TEXT
-          ^Z^Zsignal-name
-          NAME
-          ^Z^Zsignal-name-end
-          MIDDLE-TEXT
-          ^Z^Zsignal-string
-          STRING
-          ^Z^Zsignal-string-end
-          END-TEXT
-
-     where NAME is the name of the signal, such as 'SIGILL' or
-     'SIGSEGV', and STRING is the explanation of the signal, such as
-     'Illegal Instruction' or 'Segmentation fault'.  INTRO-TEXT,
-     MIDDLE-TEXT, and END-TEXT are for the user's benefit and have no
-     particular format.
-
-'^Z^Zsignal'
-     The syntax of this annotation is just like 'signalled', but GDB is
-     just saying that the program received the signal, not that it was
-     terminated with it.
-
-'^Z^Zbreakpoint NUMBER'
-     The program hit breakpoint number NUMBER.
-
-'^Z^Zwatchpoint NUMBER'
-     The program hit watchpoint number NUMBER.
-
-
-File: annotate.info,  Node: Source Annotations,  Next: Multi-threaded Apps,  Prev: Annotations for Running,  Up: Top
-
-13 Displaying Source
-********************
-
-The following annotation is used instead of displaying source code:
-
-     ^Z^Zsource FILENAME:LINE:CHARACTER:MIDDLE:ADDR
-
-   where FILENAME is an absolute file name indicating which source file,
-LINE is the line number within that file (where 1 is the first line in
-the file), CHARACTER is the character position within the file (where 0
-is the first character in the file) (for most debug formats this will
-necessarily point to the beginning of a line), MIDDLE is 'middle' if
-ADDR is in the middle of the line, or 'beg' if ADDR is at the beginning
-of the line, and ADDR is the address in the target program associated
-with the source which is being displayed.  ADDR is in the form '0x'
-followed by one or more lowercase hex digits (note that this does not
-depend on the language).
-
-
-File: annotate.info,  Node: Multi-threaded Apps,  Next: GNU Free Documentation License,  Prev: Source Annotations,  Up: Top
-
-14 Multi-threaded Applications
-******************************
-
-The following annotations report thread related changes of state.
-
-'^Z^Znew-thread'
-
-     This annotation is issued once for each thread that is created
-     apart from the main thread, which is not reported.
-
-'^Z^Zthread-changed'
-
-     The selected thread has changed.  This may occur at the request of
-     the user with the 'thread' command, or as a result of execution,
-     e.g., another thread hits a breakpoint.
-
-
-File: annotate.info,  Node: GNU Free Documentation License,  Prev: Multi-threaded Apps,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     <http://fsf.org/>
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.  We
-     recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it can
-     be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You accept
-     the license if you copy, modify or distribute the work in a way
-     requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in the
-     notice that says that the Document is released under this License.
-     If a section does not fit the above definition of Secondary then it
-     is not allowed to be designated as Invariant.  The Document may
-     contain zero Invariant Sections.  If the Document does not identify
-     any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images composed
-     of pixels) generic paint programs or (for drawings) some widely
-     available drawing editor, and that is suitable for input to text
-     formatters or for automatic translation to a variety of formats
-     suitable for input to text formatters.  A copy made in an otherwise
-     Transparent file format whose markup, or absence of markup, has
-     been arranged to thwart or discourage subsequent modification by
-     readers is not Transparent.  An image format is not Transparent if
-     used for any substantial amount of text.  A copy that is not
-     "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and standard-conforming
-     simple HTML, PostScript or PDF designed for human modification.
-     Examples of transparent image formats include PNG, XCF and JPG.
-     Opaque formats include proprietary formats that can be read and
-     edited only by proprietary word processors, SGML or XML for which
-     the DTD and/or processing tools are not generally available, and
-     the machine-generated HTML, PostScript or PDF produced by some word
-     processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow the
-     conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the title
-     equally prominent and visible.  You may add other material on the
-     covers in addition.  Copying with changes limited to the covers, as
-     long as they preserve the title of the Document and satisfy these
-     conditions, can be treated as verbatim copying in other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a machine-readable
-     Transparent copy along with each Opaque copy, or state in or with
-     each Opaque copy a computer-network location from which the general
-     network-using public has access to download using public-standard
-     network protocols a complete Transparent copy of the Document, free
-     of added material.  If you use the latter option, you must take
-     reasonably prudent steps, when you begin distribution of Opaque
-     copies in quantity, to ensure that this Transparent copy will
-     remain thus accessible at the stated location until at least one
-     year after the last time you distribute an Opaque copy (directly or
-     through your agents or retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of copies,
-     to give them a chance to provide you with an updated version of the
-     Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with the
-     Modified Version filling the role of the Document, thus licensing
-     distribution and modification of the Modified Version to whoever
-     possesses a copy of it.  In addition, you must do these things in
-     the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of previous
-          versions (which should, if there were any, be listed in the
-          History section of the Document).  You may use the same title
-          as a previous version if the original publisher of that
-          version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on the
-          Title Page.  If there is no section Entitled "History" in the
-          Document, create one stating the title, year, authors, and
-          publisher of the Document as given on its Title Page, then add
-          an item describing the Modified Version as stated in the
-          previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in the
-          "History" section.  You may omit a network location for a work
-          that was published at least four years before the Document
-          itself, or if the original publisher of the version it refers
-          to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the section
-          all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document, unaltered
-          in their text and in their titles.  Section numbers or the
-          equivalent are not considered part of the section titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option designate
-     some or all of these sections as invariant.  To do this, add their
-     titles to the list of Invariant Sections in the Modified Version's
-     license notice.  These titles must be distinct from any other
-     section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end of
-     the list of Cover Texts in the Modified Version.  Only one passage
-     of Front-Cover Text and one of Back-Cover Text may be added by (or
-     through arrangements made by) any one entity.  If the Document
-     already includes a cover text for the same cover, previously added
-     by you or by arrangement made by the same entity you are acting on
-     behalf of, you may not add another; but you may replace the old
-     one, on explicit permission from the previous publisher that added
-     the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination all
-     of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the documents
-     in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow this
-     License in all other respects regarding verbatim copying of that
-     document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of a
-     storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly and
-     finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from you
-     under this License.  If your rights have been terminated and not
-     permanently reinstated, receipt of a copy of some or all of the
-     same material does not give you any rights to use it.
-
-  10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     <http://www.gnu.org/copyleft/>.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If the
-     Document does not specify a version number of this License, you may
-     choose any version ever published (not as a draft) by the Free
-     Software Foundation.  If the Document specifies that a proxy can
-     decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
-  11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts."  line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of free
-software license, such as the GNU General Public License, to permit
-their use in free software.
-
-
-
-Tag Table:
-Node: Top1166
-Node: Annotations Overview2336
-Node: Limitations4135
-Node: Migrating to GDB/MI6720
-Node: Server Prefix7103
-Node: Value Annotations7749
-Node: Frame Annotations10919
-Node: Displays14818
-Node: Prompting15849
-Node: Errors17352
-Node: Breakpoint Info18242
-Node: Invalidation19467
-Node: Annotations for Running19948
-Node: Source Annotations21461
-Node: Multi-threaded Apps22407
-Node: GNU Free Documentation License23017
-
-End Tag Table
diff --git a/share/info/as.info b/share/info/as.info
deleted file mode 100644
index 67e22ab..0000000
--- a/share/info/as.info
+++ /dev/null
Binary files differ
diff --git a/share/info/bfd.info b/share/info/bfd.info
deleted file mode 100644
index 454fcbf..0000000
--- a/share/info/bfd.info
+++ /dev/null
Binary files differ
diff --git a/share/info/binutils.info b/share/info/binutils.info
deleted file mode 100644
index f7d0976..0000000
--- a/share/info/binutils.info
+++ /dev/null
Binary files differ
diff --git a/share/info/configure.info b/share/info/configure.info
deleted file mode 100644
index c7a8798..0000000
--- a/share/info/configure.info
+++ /dev/null
Binary files differ
diff --git a/share/info/cpp.info b/share/info/cpp.info
deleted file mode 100644
index fb4688d..0000000
--- a/share/info/cpp.info
+++ /dev/null
Binary files differ
diff --git a/share/info/cppinternals.info b/share/info/cppinternals.info
deleted file mode 100644
index d8fbe6c..0000000
--- a/share/info/cppinternals.info
+++ /dev/null
Binary files differ
diff --git a/share/info/dir b/share/info/dir
deleted file mode 100644
index 25dd812..0000000
--- a/share/info/dir
+++ /dev/null
@@ -1,63 +0,0 @@
-This is the file .../info/dir, which contains the
-topmost node of the Info hierarchy, called (dir)Top.
-The first time you invoke Info you start off looking at this node.
-
-File: dir,	Node: Top	This is the top of the INFO tree
-
-  This (the Directory node) gives a menu of major topics.
-  Typing "q" exits, "?" lists all Info commands, "d" returns here,
-  "h" gives a primer for first-timers,
-  "mEmacs<Return>" visits the Emacs manual, etc.
-
-  In Emacs, you can click mouse button 2 on a menu item or cross reference
-  to select it.
-
-* Menu:
-
-Individual utilities
-* addr2line: (binutils)addr2line.               Convert addresses to file and 
-                                                  line.
-* ar: (binutils)ar.                             Create, modify, and extract 
-                                                  from archives.
-* c++filt: (binutils)c++filt.                   Filter to demangle encoded C++ 
-                                                  symbols.
-* cxxfilt: (binutils)c++filt.                   MS-DOS name for c++filt.
-* dlltool: (binutils)dlltool.                   Create files needed to build 
-                                                  and use DLLs.
-* elfedit: (binutils)elfedit.                   Update the ELF header of ELF 
-                                                  files.
-* nlmconv: (binutils)nlmconv.                   Converts object code into an 
-                                                  NLM.
-* nm: (binutils)nm.                             List symbols from object files.
-* objcopy: (binutils)objcopy.                   Copy and translate object 
-                                                  files.
-* objdump: (binutils)objdump.                   Display information from 
-                                                  object files.
-* ranlib: (binutils)ranlib.                     Generate index to archive 
-                                                  contents.
-* readelf: (binutils)readelf.                   Display the contents of ELF 
-                                                  format files.
-* size: (binutils)size.                         List section sizes and total 
-                                                  size.
-* strings: (binutils)strings.                   List printable strings from 
-                                                  files.
-* strip: (binutils)strip.                       Discard symbols.
-* windmc: (binutils)windmc.                     Generator for Windows message 
-                                                  resources.
-* windres: (binutils)windres.                   Manipulate Windows resources.
-
-Software development
-* Annotate: (annotate).         The obsolete annotation interface.
-* As: (as).                     The GNU assembler.
-* Bfd: (bfd).                   The Binary File Descriptor library.
-* Binutils: (binutils).         The GNU binary utilities.
-* Cpp: (cpp).                   The GNU C preprocessor.
-* Cpplib: (cppinternals).       Cpplib internals.
-* Gas: (as).                    The GNU assembler.
-* Gdb: (gdb).                   The GNU debugger.
-* Ld: (ld).                     The GNU linker.
-* Stabs: (stabs).               The "stabs" debugging information format.
-* gccinstall: (gccinstall).     Installing the GNU Compiler Collection.
-* gccint: (gccint).             Internals of the GNU Compiler Collection.
-* gdbserver: (gdb) Server.      The GNU debugging server.
-* gprof: (gprof).               Profiling your program's execution
diff --git a/share/info/gcc.info b/share/info/gcc.info
deleted file mode 100644
index 2aa75bb..0000000
--- a/share/info/gcc.info
+++ /dev/null
Binary files differ
diff --git a/share/info/gccinstall.info b/share/info/gccinstall.info
deleted file mode 100644
index 614e8b1..0000000
--- a/share/info/gccinstall.info
+++ /dev/null
Binary files differ
diff --git a/share/info/gccint.info b/share/info/gccint.info
deleted file mode 100644
index 6c5385a..0000000
--- a/share/info/gccint.info
+++ /dev/null
Binary files differ
diff --git a/share/info/gdb.info b/share/info/gdb.info
deleted file mode 100644
index a178c1d..0000000
--- a/share/info/gdb.info
+++ /dev/null
Binary files differ
diff --git a/share/info/gprof.info b/share/info/gprof.info
deleted file mode 100644
index b2f1961..0000000
--- a/share/info/gprof.info
+++ /dev/null
@@ -1,2474 +0,0 @@
-This is gprof.info, produced by makeinfo version 4.8 from gprof.texi.
-
-INFO-DIR-SECTION Software development
-START-INFO-DIR-ENTRY
-* gprof: (gprof).                Profiling your program's execution
-END-INFO-DIR-ENTRY
-
-   This file documents the gprof profiler of the GNU system.
-
-   Copyright (C) 1988, 1992, 1997, 1998, 1999, 2000, 2001, 2003, 2007,
-2008, 2009 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-
-
-File: gprof.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-Profiling a Program: Where Does It Spend Its Time?
-**************************************************
-
-This manual describes the GNU profiler, `gprof', and how you can use it
-to determine which parts of a program are taking most of the execution
-time.  We assume that you know how to write, compile, and execute
-programs.  GNU `gprof' was written by Jay Fenlason.
-
-   This manual is for `gprof' (GNU Binutils) version 2.23.91.
-
-   This document is distributed under the terms of the GNU Free
-Documentation License version 1.3.  A copy of the license is included
-in the section entitled "GNU Free Documentation License".
-
-* Menu:
-
-* Introduction::        What profiling means, and why it is useful.
-
-* Compiling::           How to compile your program for profiling.
-* Executing::           Executing your program to generate profile data
-* Invoking::            How to run `gprof', and its options
-
-* Output::              Interpreting `gprof''s output
-
-* Inaccuracy::          Potential problems you should be aware of
-* How do I?::           Answers to common questions
-* Incompatibilities::   (between GNU `gprof' and Unix `gprof'.)
-* Details::             Details of how profiling is done
-* GNU Free Documentation License::  GNU Free Documentation License
-
-
-File: gprof.info,  Node: Introduction,  Next: Compiling,  Prev: Top,  Up: Top
-
-1 Introduction to Profiling
-***************************
-
-Profiling allows you to learn where your program spent its time and
-which functions called which other functions while it was executing.
-This information can show you which pieces of your program are slower
-than you expected, and might be candidates for rewriting to make your
-program execute faster.  It can also tell you which functions are being
-called more or less often than you expected.  This may help you spot
-bugs that had otherwise been unnoticed.
-
-   Since the profiler uses information collected during the actual
-execution of your program, it can be used on programs that are too
-large or too complex to analyze by reading the source.  However, how
-your program is run will affect the information that shows up in the
-profile data.  If you don't use some feature of your program while it
-is being profiled, no profile information will be generated for that
-feature.
-
-   Profiling has several steps:
-
-   * You must compile and link your program with profiling enabled.
-     *Note Compiling a Program for Profiling: Compiling.
-
-   * You must execute your program to generate a profile data file.
-     *Note Executing the Program: Executing.
-
-   * You must run `gprof' to analyze the profile data.  *Note `gprof'
-     Command Summary: Invoking.
-
-   The next three chapters explain these steps in greater detail.
-
-   Several forms of output are available from the analysis.
-
-   The "flat profile" shows how much time your program spent in each
-function, and how many times that function was called.  If you simply
-want to know which functions burn most of the cycles, it is stated
-concisely here.  *Note The Flat Profile: Flat Profile.
-
-   The "call graph" shows, for each function, which functions called
-it, which other functions it called, and how many times.  There is also
-an estimate of how much time was spent in the subroutines of each
-function.  This can suggest places where you might try to eliminate
-function calls that use a lot of time.  *Note The Call Graph: Call
-Graph.
-
-   The "annotated source" listing is a copy of the program's source
-code, labeled with the number of times each line of the program was
-executed.  *Note The Annotated Source Listing: Annotated Source.
-
-   To better understand how profiling works, you may wish to read a
-description of its implementation.  *Note Implementation of Profiling:
-Implementation.
-
-
-File: gprof.info,  Node: Compiling,  Next: Executing,  Prev: Introduction,  Up: Top
-
-2 Compiling a Program for Profiling
-***********************************
-
-The first step in generating profile information for your program is to
-compile and link it with profiling enabled.
-
-   To compile a source file for profiling, specify the `-pg' option when
-you run the compiler.  (This is in addition to the options you normally
-use.)
-
-   To link the program for profiling, if you use a compiler such as `cc'
-to do the linking, simply specify `-pg' in addition to your usual
-options.  The same option, `-pg', alters either compilation or linking
-to do what is necessary for profiling.  Here are examples:
-
-     cc -g -c myprog.c utils.c -pg
-     cc -o myprog myprog.o utils.o -pg
-
-   The `-pg' option also works with a command that both compiles and
-links:
-
-     cc -o myprog myprog.c utils.c -g -pg
-
-   Note: The `-pg' option must be part of your compilation options as
-well as your link options.  If it is not then no call-graph data will
-be gathered and when you run `gprof' you will get an error message like
-this:
-
-     gprof: gmon.out file is missing call-graph data
-
-   If you add the `-Q' switch to suppress the printing of the call
-graph data you will still be able to see the time samples:
-
-     Flat profile:
-
-     Each sample counts as 0.01 seconds.
-       %   cumulative   self              self     total
-      time   seconds   seconds    calls  Ts/call  Ts/call  name
-      44.12      0.07     0.07                             zazLoop
-      35.29      0.14     0.06                             main
-      20.59      0.17     0.04                             bazMillion
-
-   If you run the linker `ld' directly instead of through a compiler
-such as `cc', you may have to specify a profiling startup file
-`gcrt0.o' as the first input file instead of the usual startup file
-`crt0.o'.  In addition, you would probably want to specify the
-profiling C library, `libc_p.a', by writing `-lc_p' instead of the
-usual `-lc'.  This is not absolutely necessary, but doing this gives
-you number-of-calls information for standard library functions such as
-`read' and `open'.  For example:
-
-     ld -o myprog /lib/gcrt0.o myprog.o utils.o -lc_p
-
-   If you are running the program on a system which supports shared
-libraries you may run into problems with the profiling support code in
-a shared library being called before that library has been fully
-initialised.  This is usually detected by the program encountering a
-segmentation fault as soon as it is run.  The solution is to link
-against a static version of the library containing the profiling
-support code, which for `gcc' users can be done via the `-static' or
-`-static-libgcc' command line option.  For example:
-
-     gcc -g -pg -static-libgcc myprog.c utils.c -o myprog
-
-   If you compile only some of the modules of the program with `-pg',
-you can still profile the program, but you won't get complete
-information about the modules that were compiled without `-pg'.  The
-only information you get for the functions in those modules is the
-total time spent in them; there is no record of how many times they
-were called, or from where.  This will not affect the flat profile
-(except that the `calls' field for the functions will be blank), but
-will greatly reduce the usefulness of the call graph.
-
-   If you wish to perform line-by-line profiling you should use the
-`gcov' tool instead of `gprof'.  See that tool's manual or info pages
-for more details of how to do this.
-
-   Note, older versions of `gcc' produce line-by-line profiling
-information that works with `gprof' rather than `gcov' so there is
-still support for displaying this kind of information in `gprof'. *Note
-Line-by-line Profiling: Line-by-line.
-
-   It also worth noting that `gcc' implements a
-`-finstrument-functions' command line option which will insert calls to
-special user supplied instrumentation routines at the entry and exit of
-every function in their program.  This can be used to implement an
-alternative profiling scheme.
-
-
-File: gprof.info,  Node: Executing,  Next: Invoking,  Prev: Compiling,  Up: Top
-
-3 Executing the Program
-***********************
-
-Once the program is compiled for profiling, you must run it in order to
-generate the information that `gprof' needs.  Simply run the program as
-usual, using the normal arguments, file names, etc.  The program should
-run normally, producing the same output as usual.  It will, however, run
-somewhat slower than normal because of the time spent collecting and
-writing the profile data.
-
-   The way you run the program--the arguments and input that you give
-it--may have a dramatic effect on what the profile information shows.
-The profile data will describe the parts of the program that were
-activated for the particular input you use.  For example, if the first
-command you give to your program is to quit, the profile data will show
-the time used in initialization and in cleanup, but not much else.
-
-   Your program will write the profile data into a file called
-`gmon.out' just before exiting.  If there is already a file called
-`gmon.out', its contents are overwritten.  There is currently no way to
-tell the program to write the profile data under a different name, but
-you can rename the file afterwards if you are concerned that it may be
-overwritten.
-
-   In order to write the `gmon.out' file properly, your program must
-exit normally: by returning from `main' or by calling `exit'.  Calling
-the low-level function `_exit' does not write the profile data, and
-neither does abnormal termination due to an unhandled signal.
-
-   The `gmon.out' file is written in the program's _current working
-directory_ at the time it exits.  This means that if your program calls
-`chdir', the `gmon.out' file will be left in the last directory your
-program `chdir''d to.  If you don't have permission to write in this
-directory, the file is not written, and you will get an error message.
-
-   Older versions of the GNU profiling library may also write a file
-called `bb.out'.  This file, if present, contains an human-readable
-listing of the basic-block execution counts.  Unfortunately, the
-appearance of a human-readable `bb.out' means the basic-block counts
-didn't get written into `gmon.out'.  The Perl script `bbconv.pl',
-included with the `gprof' source distribution, will convert a `bb.out'
-file into a format readable by `gprof'.  Invoke it like this:
-
-     bbconv.pl < bb.out > BH-DATA
-
-   This translates the information in `bb.out' into a form that `gprof'
-can understand.  But you still need to tell `gprof' about the existence
-of this translated information.  To do that, include BB-DATA on the
-`gprof' command line, _along with `gmon.out'_, like this:
-
-     gprof OPTIONS EXECUTABLE-FILE gmon.out BB-DATA [YET-MORE-PROFILE-DATA-FILES...] [> OUTFILE]
-
-
-File: gprof.info,  Node: Invoking,  Next: Output,  Prev: Executing,  Up: Top
-
-4 `gprof' Command Summary
-*************************
-
-After you have a profile data file `gmon.out', you can run `gprof' to
-interpret the information in it.  The `gprof' program prints a flat
-profile and a call graph on standard output.  Typically you would
-redirect the output of `gprof' into a file with `>'.
-
-   You run `gprof' like this:
-
-     gprof OPTIONS [EXECUTABLE-FILE [PROFILE-DATA-FILES...]] [> OUTFILE]
-
-Here square-brackets indicate optional arguments.
-
-   If you omit the executable file name, the file `a.out' is used.  If
-you give no profile data file name, the file `gmon.out' is used.  If
-any file is not in the proper format, or if the profile data file does
-not appear to belong to the executable file, an error message is
-printed.
-
-   You can give more than one profile data file by entering all their
-names after the executable file name; then the statistics in all the
-data files are summed together.
-
-   The order of these options does not matter.
-
-* Menu:
-
-* Output Options::      Controlling `gprof''s output style
-* Analysis Options::    Controlling how `gprof' analyzes its data
-* Miscellaneous Options::
-* Deprecated Options::  Options you no longer need to use, but which
-                            have been retained for compatibility
-* Symspecs::            Specifying functions to include or exclude
-
-
-File: gprof.info,  Node: Output Options,  Next: Analysis Options,  Up: Invoking
-
-4.1 Output Options
-==================
-
-These options specify which of several output formats `gprof' should
-produce.
-
-   Many of these options take an optional "symspec" to specify
-functions to be included or excluded.  These options can be specified
-multiple times, with different symspecs, to include or exclude sets of
-symbols.  *Note Symspecs: Symspecs.
-
-   Specifying any of these options overrides the default (`-p -q'),
-which prints a flat profile and call graph analysis for all functions.
-
-`-A[SYMSPEC]'
-`--annotated-source[=SYMSPEC]'
-     The `-A' option causes `gprof' to print annotated source code.  If
-     SYMSPEC is specified, print output only for matching symbols.
-     *Note The Annotated Source Listing: Annotated Source.
-
-`-b'
-`--brief'
-     If the `-b' option is given, `gprof' doesn't print the verbose
-     blurbs that try to explain the meaning of all of the fields in the
-     tables.  This is useful if you intend to print out the output, or
-     are tired of seeing the blurbs.
-
-`-C[SYMSPEC]'
-`--exec-counts[=SYMSPEC]'
-     The `-C' option causes `gprof' to print a tally of functions and
-     the number of times each was called.  If SYMSPEC is specified,
-     print tally only for matching symbols.
-
-     If the profile data file contains basic-block count records,
-     specifying the `-l' option, along with `-C', will cause basic-block
-     execution counts to be tallied and displayed.
-
-`-i'
-`--file-info'
-     The `-i' option causes `gprof' to display summary information
-     about the profile data file(s) and then exit.  The number of
-     histogram, call graph, and basic-block count records is displayed.
-
-`-I DIRS'
-`--directory-path=DIRS'
-     The `-I' option specifies a list of search directories in which to
-     find source files.  Environment variable GPROF_PATH can also be
-     used to convey this information.  Used mostly for annotated source
-     output.
-
-`-J[SYMSPEC]'
-`--no-annotated-source[=SYMSPEC]'
-     The `-J' option causes `gprof' not to print annotated source code.
-     If SYMSPEC is specified, `gprof' prints annotated source, but
-     excludes matching symbols.
-
-`-L'
-`--print-path'
-     Normally, source filenames are printed with the path component
-     suppressed.  The `-L' option causes `gprof' to print the full
-     pathname of source filenames, which is determined from symbolic
-     debugging information in the image file and is relative to the
-     directory in which the compiler was invoked.
-
-`-p[SYMSPEC]'
-`--flat-profile[=SYMSPEC]'
-     The `-p' option causes `gprof' to print a flat profile.  If
-     SYMSPEC is specified, print flat profile only for matching symbols.
-     *Note The Flat Profile: Flat Profile.
-
-`-P[SYMSPEC]'
-`--no-flat-profile[=SYMSPEC]'
-     The `-P' option causes `gprof' to suppress printing a flat profile.
-     If SYMSPEC is specified, `gprof' prints a flat profile, but
-     excludes matching symbols.
-
-`-q[SYMSPEC]'
-`--graph[=SYMSPEC]'
-     The `-q' option causes `gprof' to print the call graph analysis.
-     If SYMSPEC is specified, print call graph only for matching symbols
-     and their children.  *Note The Call Graph: Call Graph.
-
-`-Q[SYMSPEC]'
-`--no-graph[=SYMSPEC]'
-     The `-Q' option causes `gprof' to suppress printing the call graph.
-     If SYMSPEC is specified, `gprof' prints a call graph, but excludes
-     matching symbols.
-
-`-t'
-`--table-length=NUM'
-     The `-t' option causes the NUM most active source lines in each
-     source file to be listed when source annotation is enabled.  The
-     default is 10.
-
-`-y'
-`--separate-files'
-     This option affects annotated source output only.  Normally,
-     `gprof' prints annotated source files to standard-output.  If this
-     option is specified, annotated source for a file named
-     `path/FILENAME' is generated in the file `FILENAME-ann'.  If the
-     underlying file system would truncate `FILENAME-ann' so that it
-     overwrites the original `FILENAME', `gprof' generates annotated
-     source in the file `FILENAME.ann' instead (if the original file
-     name has an extension, that extension is _replaced_ with `.ann').
-
-`-Z[SYMSPEC]'
-`--no-exec-counts[=SYMSPEC]'
-     The `-Z' option causes `gprof' not to print a tally of functions
-     and the number of times each was called.  If SYMSPEC is specified,
-     print tally, but exclude matching symbols.
-
-`-r'
-`--function-ordering'
-     The `--function-ordering' option causes `gprof' to print a
-     suggested function ordering for the program based on profiling
-     data.  This option suggests an ordering which may improve paging,
-     tlb and cache behavior for the program on systems which support
-     arbitrary ordering of functions in an executable.
-
-     The exact details of how to force the linker to place functions in
-     a particular order is system dependent and out of the scope of this
-     manual.
-
-`-R MAP_FILE'
-`--file-ordering MAP_FILE'
-     The `--file-ordering' option causes `gprof' to print a suggested
-     .o link line ordering for the program based on profiling data.
-     This option suggests an ordering which may improve paging, tlb and
-     cache behavior for the program on systems which do not support
-     arbitrary ordering of functions in an executable.
-
-     Use of the `-a' argument is highly recommended with this option.
-
-     The MAP_FILE argument is a pathname to a file which provides
-     function name to object file mappings.  The format of the file is
-     similar to the output of the program `nm'.
-
-          c-parse.o:00000000 T yyparse
-          c-parse.o:00000004 C yyerrflag
-          c-lang.o:00000000 T maybe_objc_method_name
-          c-lang.o:00000000 T print_lang_statistics
-          c-lang.o:00000000 T recognize_objc_keyword
-          c-decl.o:00000000 T print_lang_identifier
-          c-decl.o:00000000 T print_lang_type
-          ...
-
-     To create a MAP_FILE with GNU `nm', type a command like `nm
-     --extern-only --defined-only -v --print-file-name program-name'.
-
-`-T'
-`--traditional'
-     The `-T' option causes `gprof' to print its output in
-     "traditional" BSD style.
-
-`-w WIDTH'
-`--width=WIDTH'
-     Sets width of output lines to WIDTH.  Currently only used when
-     printing the function index at the bottom of the call graph.
-
-`-x'
-`--all-lines'
-     This option affects annotated source output only.  By default,
-     only the lines at the beginning of a basic-block are annotated.
-     If this option is specified, every line in a basic-block is
-     annotated by repeating the annotation for the first line.  This
-     behavior is similar to `tcov''s `-a'.
-
-`--demangle[=STYLE]'
-`--no-demangle'
-     These options control whether C++ symbol names should be demangled
-     when printing output.  The default is to demangle symbols.  The
-     `--no-demangle' option may be used to turn off demangling.
-     Different compilers have different mangling styles.  The optional
-     demangling style argument can be used to choose an appropriate
-     demangling style for your compiler.
-
-
-File: gprof.info,  Node: Analysis Options,  Next: Miscellaneous Options,  Prev: Output Options,  Up: Invoking
-
-4.2 Analysis Options
-====================
-
-`-a'
-`--no-static'
-     The `-a' option causes `gprof' to suppress the printing of
-     statically declared (private) functions.  (These are functions
-     whose names are not listed as global, and which are not visible
-     outside the file/function/block where they were defined.)  Time
-     spent in these functions, calls to/from them, etc., will all be
-     attributed to the function that was loaded directly before it in
-     the executable file.  This option affects both the flat profile
-     and the call graph.
-
-`-c'
-`--static-call-graph'
-     The `-c' option causes the call graph of the program to be
-     augmented by a heuristic which examines the text space of the
-     object file and identifies function calls in the binary machine
-     code.  Since normal call graph records are only generated when
-     functions are entered, this option identifies children that could
-     have been called, but never were.  Calls to functions that were
-     not compiled with profiling enabled are also identified, but only
-     if symbol table entries are present for them.  Calls to dynamic
-     library routines are typically _not_ found by this option.
-     Parents or children identified via this heuristic are indicated in
-     the call graph with call counts of `0'.
-
-`-D'
-`--ignore-non-functions'
-     The `-D' option causes `gprof' to ignore symbols which are not
-     known to be functions.  This option will give more accurate
-     profile data on systems where it is supported (Solaris and HPUX for
-     example).
-
-`-k FROM/TO'
-     The `-k' option allows you to delete from the call graph any arcs
-     from symbols matching symspec FROM to those matching symspec TO.
-
-`-l'
-`--line'
-     The `-l' option enables line-by-line profiling, which causes
-     histogram hits to be charged to individual source code lines,
-     instead of functions.  This feature only works with programs
-     compiled by older versions of the `gcc' compiler.  Newer versions
-     of `gcc' are designed to work with the `gcov' tool instead.
-
-     If the program was compiled with basic-block counting enabled,
-     this option will also identify how many times each line of code
-     was executed.  While line-by-line profiling can help isolate where
-     in a large function a program is spending its time, it also
-     significantly increases the running time of `gprof', and magnifies
-     statistical inaccuracies.  *Note Statistical Sampling Error:
-     Sampling Error.
-
-`-m NUM'
-`--min-count=NUM'
-     This option affects execution count output only.  Symbols that are
-     executed less than NUM times are suppressed.
-
-`-nSYMSPEC'
-`--time=SYMSPEC'
-     The `-n' option causes `gprof', in its call graph analysis, to
-     only propagate times for symbols matching SYMSPEC.
-
-`-NSYMSPEC'
-`--no-time=SYMSPEC'
-     The `-n' option causes `gprof', in its call graph analysis, not to
-     propagate times for symbols matching SYMSPEC.
-
-`-SFILENAME'
-`--external-symbol-table=FILENAME'
-     The `-S' option causes `gprof' to read an external symbol table
-     file, such as `/proc/kallsyms', rather than read the symbol table
-     from the given object file (the default is `a.out'). This is useful
-     for profiling kernel modules.
-
-`-z'
-`--display-unused-functions'
-     If you give the `-z' option, `gprof' will mention all functions in
-     the flat profile, even those that were never called, and that had
-     no time spent in them.  This is useful in conjunction with the
-     `-c' option for discovering which routines were never called.
-
-
-
-File: gprof.info,  Node: Miscellaneous Options,  Next: Deprecated Options,  Prev: Analysis Options,  Up: Invoking
-
-4.3 Miscellaneous Options
-=========================
-
-`-d[NUM]'
-`--debug[=NUM]'
-     The `-d NUM' option specifies debugging options.  If NUM is not
-     specified, enable all debugging.  *Note Debugging `gprof':
-     Debugging.
-
-`-h'
-`--help'
-     The `-h' option prints command line usage.
-
-`-ONAME'
-`--file-format=NAME'
-     Selects the format of the profile data files.  Recognized formats
-     are `auto' (the default), `bsd', `4.4bsd', `magic', and `prof'
-     (not yet supported).
-
-`-s'
-`--sum'
-     The `-s' option causes `gprof' to summarize the information in the
-     profile data files it read in, and write out a profile data file
-     called `gmon.sum', which contains all the information from the
-     profile data files that `gprof' read in.  The file `gmon.sum' may
-     be one of the specified input files; the effect of this is to
-     merge the data in the other input files into `gmon.sum'.
-
-     Eventually you can run `gprof' again without `-s' to analyze the
-     cumulative data in the file `gmon.sum'.
-
-`-v'
-`--version'
-     The `-v' flag causes `gprof' to print the current version number,
-     and then exit.
-
-
-
-File: gprof.info,  Node: Deprecated Options,  Next: Symspecs,  Prev: Miscellaneous Options,  Up: Invoking
-
-4.4 Deprecated Options
-======================
-
-These options have been replaced with newer versions that use symspecs.
-
-`-e FUNCTION_NAME'
-     The `-e FUNCTION' option tells `gprof' to not print information
-     about the function FUNCTION_NAME (and its children...) in the call
-     graph.  The function will still be listed as a child of any
-     functions that call it, but its index number will be shown as
-     `[not printed]'.  More than one `-e' option may be given; only one
-     FUNCTION_NAME may be indicated with each `-e' option.
-
-`-E FUNCTION_NAME'
-     The `-E FUNCTION' option works like the `-e' option, but time
-     spent in the function (and children who were not called from
-     anywhere else), will not be used to compute the
-     percentages-of-time for the call graph.  More than one `-E' option
-     may be given; only one FUNCTION_NAME may be indicated with each
-     `-E' option.
-
-`-f FUNCTION_NAME'
-     The `-f FUNCTION' option causes `gprof' to limit the call graph to
-     the function FUNCTION_NAME and its children (and their
-     children...).  More than one `-f' option may be given; only one
-     FUNCTION_NAME may be indicated with each `-f' option.
-
-`-F FUNCTION_NAME'
-     The `-F FUNCTION' option works like the `-f' option, but only time
-     spent in the function and its children (and their children...)
-     will be used to determine total-time and percentages-of-time for
-     the call graph.  More than one `-F' option may be given; only one
-     FUNCTION_NAME may be indicated with each `-F' option.  The `-F'
-     option overrides the `-E' option.
-
-
-   Note that only one function can be specified with each `-e', `-E',
-`-f' or `-F' option.  To specify more than one function, use multiple
-options.  For example, this command:
-
-     gprof -e boring -f foo -f bar myprogram > gprof.output
-
-lists in the call graph all functions that were reached from either
-`foo' or `bar' and were not reachable from `boring'.
-
-
-File: gprof.info,  Node: Symspecs,  Prev: Deprecated Options,  Up: Invoking
-
-4.5 Symspecs
-============
-
-Many of the output options allow functions to be included or excluded
-using "symspecs" (symbol specifications), which observe the following
-syntax:
-
-       filename_containing_a_dot
-     | funcname_not_containing_a_dot
-     | linenumber
-     | ( [ any_filename ] `:' ( any_funcname | linenumber ) )
-
-   Here are some sample symspecs:
-
-`main.c'
-     Selects everything in file `main.c'--the dot in the string tells
-     `gprof' to interpret the string as a filename, rather than as a
-     function name.  To select a file whose name does not contain a
-     dot, a trailing colon should be specified.  For example, `odd:' is
-     interpreted as the file named `odd'.
-
-`main'
-     Selects all functions named `main'.
-
-     Note that there may be multiple instances of the same function name
-     because some of the definitions may be local (i.e., static).
-     Unless a function name is unique in a program, you must use the
-     colon notation explained below to specify a function from a
-     specific source file.
-
-     Sometimes, function names contain dots.  In such cases, it is
-     necessary to add a leading colon to the name.  For example,
-     `:.mul' selects function `.mul'.
-
-     In some object file formats, symbols have a leading underscore.
-     `gprof' will normally not print these underscores.  When you name a
-     symbol in a symspec, you should type it exactly as `gprof' prints
-     it in its output.  For example, if the compiler produces a symbol
-     `_main' from your `main' function, `gprof' still prints it as
-     `main' in its output, so you should use `main' in symspecs.
-
-`main.c:main'
-     Selects function `main' in file `main.c'.
-
-`main.c:134'
-     Selects line 134 in file `main.c'.
-
-
-File: gprof.info,  Node: Output,  Next: Inaccuracy,  Prev: Invoking,  Up: Top
-
-5 Interpreting `gprof''s Output
-*******************************
-
-`gprof' can produce several different output styles, the most important
-of which are described below.  The simplest output styles (file
-information, execution count, and function and file ordering) are not
-described here, but are documented with the respective options that
-trigger them.  *Note Output Options: Output Options.
-
-* Menu:
-
-* Flat Profile::        The flat profile shows how much time was spent
-                            executing directly in each function.
-* Call Graph::          The call graph shows which functions called which
-                            others, and how much time each function used
-                            when its subroutine calls are included.
-* Line-by-line::        `gprof' can analyze individual source code lines
-* Annotated Source::    The annotated source listing displays source code
-                            labeled with execution counts
-
-
-File: gprof.info,  Node: Flat Profile,  Next: Call Graph,  Up: Output
-
-5.1 The Flat Profile
-====================
-
-The "flat profile" shows the total amount of time your program spent
-executing each function.  Unless the `-z' option is given, functions
-with no apparent time spent in them, and no apparent calls to them, are
-not mentioned.  Note that if a function was not compiled for profiling,
-and didn't run long enough to show up on the program counter histogram,
-it will be indistinguishable from a function that was never called.
-
-   This is part of a flat profile for a small program:
-
-     Flat profile:
-
-     Each sample counts as 0.01 seconds.
-       %   cumulative   self              self     total
-      time   seconds   seconds    calls  ms/call  ms/call  name
-      33.34      0.02     0.02     7208     0.00     0.00  open
-      16.67      0.03     0.01      244     0.04     0.12  offtime
-      16.67      0.04     0.01        8     1.25     1.25  memccpy
-      16.67      0.05     0.01        7     1.43     1.43  write
-      16.67      0.06     0.01                             mcount
-       0.00      0.06     0.00      236     0.00     0.00  tzset
-       0.00      0.06     0.00      192     0.00     0.00  tolower
-       0.00      0.06     0.00       47     0.00     0.00  strlen
-       0.00      0.06     0.00       45     0.00     0.00  strchr
-       0.00      0.06     0.00        1     0.00    50.00  main
-       0.00      0.06     0.00        1     0.00     0.00  memcpy
-       0.00      0.06     0.00        1     0.00    10.11  print
-       0.00      0.06     0.00        1     0.00     0.00  profil
-       0.00      0.06     0.00        1     0.00    50.00  report
-     ...
-
-The functions are sorted first by decreasing run-time spent in them,
-then by decreasing number of calls, then alphabetically by name.  The
-functions `mcount' and `profil' are part of the profiling apparatus and
-appear in every flat profile; their time gives a measure of the amount
-of overhead due to profiling.
-
-   Just before the column headers, a statement appears indicating how
-much time each sample counted as.  This "sampling period" estimates the
-margin of error in each of the time figures.  A time figure that is not
-much larger than this is not reliable.  In this example, each sample
-counted as 0.01 seconds, suggesting a 100 Hz sampling rate.  The
-program's total execution time was 0.06 seconds, as indicated by the
-`cumulative seconds' field.  Since each sample counted for 0.01
-seconds, this means only six samples were taken during the run.  Two of
-the samples occurred while the program was in the `open' function, as
-indicated by the `self seconds' field.  Each of the other four samples
-occurred one each in `offtime', `memccpy', `write', and `mcount'.
-Since only six samples were taken, none of these values can be regarded
-as particularly reliable.  In another run, the `self seconds' field for
-`mcount' might well be `0.00' or `0.02'.  *Note Statistical Sampling
-Error: Sampling Error, for a complete discussion.
-
-   The remaining functions in the listing (those whose `self seconds'
-field is `0.00') didn't appear in the histogram samples at all.
-However, the call graph indicated that they were called, so therefore
-they are listed, sorted in decreasing order by the `calls' field.
-Clearly some time was spent executing these functions, but the paucity
-of histogram samples prevents any determination of how much time each
-took.
-
-   Here is what the fields in each line mean:
-
-`% time'
-     This is the percentage of the total execution time your program
-     spent in this function.  These should all add up to 100%.
-
-`cumulative seconds'
-     This is the cumulative total number of seconds the computer spent
-     executing this functions, plus the time spent in all the functions
-     above this one in this table.
-
-`self seconds'
-     This is the number of seconds accounted for by this function alone.
-     The flat profile listing is sorted first by this number.
-
-`calls'
-     This is the total number of times the function was called.  If the
-     function was never called, or the number of times it was called
-     cannot be determined (probably because the function was not
-     compiled with profiling enabled), the "calls" field is blank.
-
-`self ms/call'
-     This represents the average number of milliseconds spent in this
-     function per call, if this function is profiled.  Otherwise, this
-     field is blank for this function.
-
-`total ms/call'
-     This represents the average number of milliseconds spent in this
-     function and its descendants per call, if this function is
-     profiled.  Otherwise, this field is blank for this function.  This
-     is the only field in the flat profile that uses call graph
-     analysis.
-
-`name'
-     This is the name of the function.   The flat profile is sorted by
-     this field alphabetically after the "self seconds" and "calls"
-     fields are sorted.
-
-
-File: gprof.info,  Node: Call Graph,  Next: Line-by-line,  Prev: Flat Profile,  Up: Output
-
-5.2 The Call Graph
-==================
-
-The "call graph" shows how much time was spent in each function and its
-children.  From this information, you can find functions that, while
-they themselves may not have used much time, called other functions
-that did use unusual amounts of time.
-
-   Here is a sample call from a small program.  This call came from the
-same `gprof' run as the flat profile example in the previous section.
-
-     granularity: each sample hit covers 2 byte(s) for 20.00% of 0.05 seconds
-
-     index % time    self  children    called     name
-                                                      <spontaneous>
-     [1]    100.0    0.00    0.05                 start [1]
-                     0.00    0.05       1/1           main [2]
-                     0.00    0.00       1/2           on_exit [28]
-                     0.00    0.00       1/1           exit [59]
-     -----------------------------------------------
-                     0.00    0.05       1/1           start [1]
-     [2]    100.0    0.00    0.05       1         main [2]
-                     0.00    0.05       1/1           report [3]
-     -----------------------------------------------
-                     0.00    0.05       1/1           main [2]
-     [3]    100.0    0.00    0.05       1         report [3]
-                     0.00    0.03       8/8           timelocal [6]
-                     0.00    0.01       1/1           print [9]
-                     0.00    0.01       9/9           fgets [12]
-                     0.00    0.00      12/34          strncmp <cycle 1> [40]
-                     0.00    0.00       8/8           lookup [20]
-                     0.00    0.00       1/1           fopen [21]
-                     0.00    0.00       8/8           chewtime [24]
-                     0.00    0.00       8/16          skipspace [44]
-     -----------------------------------------------
-     [4]     59.8    0.01        0.02       8+472     <cycle 2 as a whole> [4]
-                     0.01        0.02     244+260         offtime <cycle 2> [7]
-                     0.00        0.00     236+1           tzset <cycle 2> [26]
-     -----------------------------------------------
-
-   The lines full of dashes divide this table into "entries", one for
-each function.  Each entry has one or more lines.
-
-   In each entry, the primary line is the one that starts with an index
-number in square brackets.  The end of this line says which function
-the entry is for.  The preceding lines in the entry describe the
-callers of this function and the following lines describe its
-subroutines (also called "children" when we speak of the call graph).
-
-   The entries are sorted by time spent in the function and its
-subroutines.
-
-   The internal profiling function `mcount' (*note The Flat Profile:
-Flat Profile.) is never mentioned in the call graph.
-
-* Menu:
-
-* Primary::       Details of the primary line's contents.
-* Callers::       Details of caller-lines' contents.
-* Subroutines::   Details of subroutine-lines' contents.
-* Cycles::        When there are cycles of recursion,
-                   such as `a' calls `b' calls `a'...
-
-
-File: gprof.info,  Node: Primary,  Next: Callers,  Up: Call Graph
-
-5.2.1 The Primary Line
-----------------------
-
-The "primary line" in a call graph entry is the line that describes the
-function which the entry is about and gives the overall statistics for
-this function.
-
-   For reference, we repeat the primary line from the entry for function
-`report' in our main example, together with the heading line that shows
-the names of the fields:
-
-     index  % time    self  children called     name
-     ...
-     [3]    100.0    0.00    0.05       1         report [3]
-
-   Here is what the fields in the primary line mean:
-
-`index'
-     Entries are numbered with consecutive integers.  Each function
-     therefore has an index number, which appears at the beginning of
-     its primary line.
-
-     Each cross-reference to a function, as a caller or subroutine of
-     another, gives its index number as well as its name.  The index
-     number guides you if you wish to look for the entry for that
-     function.
-
-`% time'
-     This is the percentage of the total time that was spent in this
-     function, including time spent in subroutines called from this
-     function.
-
-     The time spent in this function is counted again for the callers of
-     this function.  Therefore, adding up these percentages is
-     meaningless.
-
-`self'
-     This is the total amount of time spent in this function.  This
-     should be identical to the number printed in the `seconds' field
-     for this function in the flat profile.
-
-`children'
-     This is the total amount of time spent in the subroutine calls
-     made by this function.  This should be equal to the sum of all the
-     `self' and `children' entries of the children listed directly
-     below this function.
-
-`called'
-     This is the number of times the function was called.
-
-     If the function called itself recursively, there are two numbers,
-     separated by a `+'.  The first number counts non-recursive calls,
-     and the second counts recursive calls.
-
-     In the example above, the function `report' was called once from
-     `main'.
-
-`name'
-     This is the name of the current function.  The index number is
-     repeated after it.
-
-     If the function is part of a cycle of recursion, the cycle number
-     is printed between the function's name and the index number (*note
-     How Mutually Recursive Functions Are Described: Cycles.).  For
-     example, if function `gnurr' is part of cycle number one, and has
-     index number twelve, its primary line would be end like this:
-
-          gnurr <cycle 1> [12]
-
-
-File: gprof.info,  Node: Callers,  Next: Subroutines,  Prev: Primary,  Up: Call Graph
-
-5.2.2 Lines for a Function's Callers
-------------------------------------
-
-A function's entry has a line for each function it was called by.
-These lines' fields correspond to the fields of the primary line, but
-their meanings are different because of the difference in context.
-
-   For reference, we repeat two lines from the entry for the function
-`report', the primary line and one caller-line preceding it, together
-with the heading line that shows the names of the fields:
-
-     index  % time    self  children called     name
-     ...
-                     0.00    0.05       1/1           main [2]
-     [3]    100.0    0.00    0.05       1         report [3]
-
-   Here are the meanings of the fields in the caller-line for `report'
-called from `main':
-
-`self'
-     An estimate of the amount of time spent in `report' itself when it
-     was called from `main'.
-
-`children'
-     An estimate of the amount of time spent in subroutines of `report'
-     when `report' was called from `main'.
-
-     The sum of the `self' and `children' fields is an estimate of the
-     amount of time spent within calls to `report' from `main'.
-
-`called'
-     Two numbers: the number of times `report' was called from `main',
-     followed by the total number of non-recursive calls to `report'
-     from all its callers.
-
-`name and index number'
-     The name of the caller of `report' to which this line applies,
-     followed by the caller's index number.
-
-     Not all functions have entries in the call graph; some options to
-     `gprof' request the omission of certain functions.  When a caller
-     has no entry of its own, it still has caller-lines in the entries
-     of the functions it calls.
-
-     If the caller is part of a recursion cycle, the cycle number is
-     printed between the name and the index number.
-
-   If the identity of the callers of a function cannot be determined, a
-dummy caller-line is printed which has `<spontaneous>' as the "caller's
-name" and all other fields blank.  This can happen for signal handlers.
-
-
-File: gprof.info,  Node: Subroutines,  Next: Cycles,  Prev: Callers,  Up: Call Graph
-
-5.2.3 Lines for a Function's Subroutines
-----------------------------------------
-
-A function's entry has a line for each of its subroutines--in other
-words, a line for each other function that it called.  These lines'
-fields correspond to the fields of the primary line, but their meanings
-are different because of the difference in context.
-
-   For reference, we repeat two lines from the entry for the function
-`main', the primary line and a line for a subroutine, together with the
-heading line that shows the names of the fields:
-
-     index  % time    self  children called     name
-     ...
-     [2]    100.0    0.00    0.05       1         main [2]
-                     0.00    0.05       1/1           report [3]
-
-   Here are the meanings of the fields in the subroutine-line for `main'
-calling `report':
-
-`self'
-     An estimate of the amount of time spent directly within `report'
-     when `report' was called from `main'.
-
-`children'
-     An estimate of the amount of time spent in subroutines of `report'
-     when `report' was called from `main'.
-
-     The sum of the `self' and `children' fields is an estimate of the
-     total time spent in calls to `report' from `main'.
-
-`called'
-     Two numbers, the number of calls to `report' from `main' followed
-     by the total number of non-recursive calls to `report'.  This
-     ratio is used to determine how much of `report''s `self' and
-     `children' time gets credited to `main'.  *Note Estimating
-     `children' Times: Assumptions.
-
-`name'
-     The name of the subroutine of `main' to which this line applies,
-     followed by the subroutine's index number.
-
-     If the caller is part of a recursion cycle, the cycle number is
-     printed between the name and the index number.
-
-
-File: gprof.info,  Node: Cycles,  Prev: Subroutines,  Up: Call Graph
-
-5.2.4 How Mutually Recursive Functions Are Described
-----------------------------------------------------
-
-The graph may be complicated by the presence of "cycles of recursion"
-in the call graph.  A cycle exists if a function calls another function
-that (directly or indirectly) calls (or appears to call) the original
-function.  For example: if `a' calls `b', and `b' calls `a', then `a'
-and `b' form a cycle.
-
-   Whenever there are call paths both ways between a pair of functions,
-they belong to the same cycle.  If `a' and `b' call each other and `b'
-and `c' call each other, all three make one cycle.  Note that even if
-`b' only calls `a' if it was not called from `a', `gprof' cannot
-determine this, so `a' and `b' are still considered a cycle.
-
-   The cycles are numbered with consecutive integers.  When a function
-belongs to a cycle, each time the function name appears in the call
-graph it is followed by `<cycle NUMBER>'.
-
-   The reason cycles matter is that they make the time values in the
-call graph paradoxical.  The "time spent in children" of `a' should
-include the time spent in its subroutine `b' and in `b''s
-subroutines--but one of `b''s subroutines is `a'!  How much of `a''s
-time should be included in the children of `a', when `a' is indirectly
-recursive?
-
-   The way `gprof' resolves this paradox is by creating a single entry
-for the cycle as a whole.  The primary line of this entry describes the
-total time spent directly in the functions of the cycle.  The
-"subroutines" of the cycle are the individual functions of the cycle,
-and all other functions that were called directly by them.  The
-"callers" of the cycle are the functions, outside the cycle, that
-called functions in the cycle.
-
-   Here is an example portion of a call graph which shows a cycle
-containing functions `a' and `b'.  The cycle was entered by a call to
-`a' from `main'; both `a' and `b' called `c'.
-
-     index  % time    self  children called     name
-     ----------------------------------------
-                      1.77        0    1/1        main [2]
-     [3]     91.71    1.77        0    1+5    <cycle 1 as a whole> [3]
-                      1.02        0    3          b <cycle 1> [4]
-                      0.75        0    2          a <cycle 1> [5]
-     ----------------------------------------
-                                       3          a <cycle 1> [5]
-     [4]     52.85    1.02        0    0      b <cycle 1> [4]
-                                       2          a <cycle 1> [5]
-                         0        0    3/6        c [6]
-     ----------------------------------------
-                      1.77        0    1/1        main [2]
-                                       2          b <cycle 1> [4]
-     [5]     38.86    0.75        0    1      a <cycle 1> [5]
-                                       3          b <cycle 1> [4]
-                         0        0    3/6        c [6]
-     ----------------------------------------
-
-(The entire call graph for this program contains in addition an entry
-for `main', which calls `a', and an entry for `c', with callers `a' and
-`b'.)
-
-     index  % time    self  children called     name
-                                                  <spontaneous>
-     [1]    100.00       0     1.93    0      start [1]
-                      0.16     1.77    1/1        main [2]
-     ----------------------------------------
-                      0.16     1.77    1/1        start [1]
-     [2]    100.00    0.16     1.77    1      main [2]
-                      1.77        0    1/1        a <cycle 1> [5]
-     ----------------------------------------
-                      1.77        0    1/1        main [2]
-     [3]     91.71    1.77        0    1+5    <cycle 1 as a whole> [3]
-                      1.02        0    3          b <cycle 1> [4]
-                      0.75        0    2          a <cycle 1> [5]
-                         0        0    6/6        c [6]
-     ----------------------------------------
-                                       3          a <cycle 1> [5]
-     [4]     52.85    1.02        0    0      b <cycle 1> [4]
-                                       2          a <cycle 1> [5]
-                         0        0    3/6        c [6]
-     ----------------------------------------
-                      1.77        0    1/1        main [2]
-                                       2          b <cycle 1> [4]
-     [5]     38.86    0.75        0    1      a <cycle 1> [5]
-                                       3          b <cycle 1> [4]
-                         0        0    3/6        c [6]
-     ----------------------------------------
-                         0        0    3/6        b <cycle 1> [4]
-                         0        0    3/6        a <cycle 1> [5]
-     [6]      0.00       0        0    6      c [6]
-     ----------------------------------------
-
-   The `self' field of the cycle's primary line is the total time spent
-in all the functions of the cycle.  It equals the sum of the `self'
-fields for the individual functions in the cycle, found in the entry in
-the subroutine lines for these functions.
-
-   The `children' fields of the cycle's primary line and subroutine
-lines count only subroutines outside the cycle.  Even though `a' calls
-`b', the time spent in those calls to `b' is not counted in `a''s
-`children' time.  Thus, we do not encounter the problem of what to do
-when the time in those calls to `b' includes indirect recursive calls
-back to `a'.
-
-   The `children' field of a caller-line in the cycle's entry estimates
-the amount of time spent _in the whole cycle_, and its other
-subroutines, on the times when that caller called a function in the
-cycle.
-
-   The `called' field in the primary line for the cycle has two numbers:
-first, the number of times functions in the cycle were called by
-functions outside the cycle; second, the number of times they were
-called by functions in the cycle (including times when a function in
-the cycle calls itself).  This is a generalization of the usual split
-into non-recursive and recursive calls.
-
-   The `called' field of a subroutine-line for a cycle member in the
-cycle's entry says how many time that function was called from
-functions in the cycle.  The total of all these is the second number in
-the primary line's `called' field.
-
-   In the individual entry for a function in a cycle, the other
-functions in the same cycle can appear as subroutines and as callers.
-These lines show how many times each function in the cycle called or
-was called from each other function in the cycle.  The `self' and
-`children' fields in these lines are blank because of the difficulty of
-defining meanings for them when recursion is going on.
-
-
-File: gprof.info,  Node: Line-by-line,  Next: Annotated Source,  Prev: Call Graph,  Up: Output
-
-5.3 Line-by-line Profiling
-==========================
-
-`gprof''s `-l' option causes the program to perform "line-by-line"
-profiling.  In this mode, histogram samples are assigned not to
-functions, but to individual lines of source code.  This only works
-with programs compiled with older versions of the `gcc' compiler.
-Newer versions of `gcc' use a different program - `gcov' - to display
-line-by-line profiling information.
-
-   With the older versions of `gcc' the program usually has to be
-compiled with a `-g' option, in addition to `-pg', in order to generate
-debugging symbols for tracking source code lines.  Note, in much older
-versions of `gcc' the program had to be compiled with the `-a' command
-line option as well.
-
-   The flat profile is the most useful output table in line-by-line
-mode.  The call graph isn't as useful as normal, since the current
-version of `gprof' does not propagate call graph arcs from source code
-lines to the enclosing function.  The call graph does, however, show
-each line of code that called each function, along with a count.
-
-   Here is a section of `gprof''s output, without line-by-line
-profiling.  Note that `ct_init' accounted for four histogram hits, and
-13327 calls to `init_block'.
-
-     Flat profile:
-
-     Each sample counts as 0.01 seconds.
-       %   cumulative   self              self     total
-      time   seconds   seconds    calls  us/call  us/call  name
-      30.77      0.13     0.04     6335     6.31     6.31  ct_init
-
-
-     		     Call graph (explanation follows)
-
-
-     granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
-
-     index % time    self  children    called     name
-
-                     0.00    0.00       1/13496       name_too_long
-                     0.00    0.00      40/13496       deflate
-                     0.00    0.00     128/13496       deflate_fast
-                     0.00    0.00   13327/13496       ct_init
-     [7]      0.0    0.00    0.00   13496         init_block
-
-   Now let's look at some of `gprof''s output from the same program run,
-this time with line-by-line profiling enabled.  Note that `ct_init''s
-four histogram hits are broken down into four lines of source code--one
-hit occurred on each of lines 349, 351, 382 and 385.  In the call graph,
-note how `ct_init''s 13327 calls to `init_block' are broken down into
-one call from line 396, 3071 calls from line 384, 3730 calls from line
-385, and 6525 calls from 387.
-
-     Flat profile:
-
-     Each sample counts as 0.01 seconds.
-       %   cumulative   self
-      time   seconds   seconds    calls  name
-       7.69      0.10     0.01           ct_init (trees.c:349)
-       7.69      0.11     0.01           ct_init (trees.c:351)
-       7.69      0.12     0.01           ct_init (trees.c:382)
-       7.69      0.13     0.01           ct_init (trees.c:385)
-
-
-     		     Call graph (explanation follows)
-
-
-     granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
-
-       % time    self  children    called     name
-
-                 0.00    0.00       1/13496       name_too_long (gzip.c:1440)
-                 0.00    0.00       1/13496       deflate (deflate.c:763)
-                 0.00    0.00       1/13496       ct_init (trees.c:396)
-                 0.00    0.00       2/13496       deflate (deflate.c:727)
-                 0.00    0.00       4/13496       deflate (deflate.c:686)
-                 0.00    0.00       5/13496       deflate (deflate.c:675)
-                 0.00    0.00      12/13496       deflate (deflate.c:679)
-                 0.00    0.00      16/13496       deflate (deflate.c:730)
-                 0.00    0.00     128/13496       deflate_fast (deflate.c:654)
-                 0.00    0.00    3071/13496       ct_init (trees.c:384)
-                 0.00    0.00    3730/13496       ct_init (trees.c:385)
-                 0.00    0.00    6525/13496       ct_init (trees.c:387)
-     [6]  0.0    0.00    0.00   13496         init_block (trees.c:408)
-
-
-File: gprof.info,  Node: Annotated Source,  Prev: Line-by-line,  Up: Output
-
-5.4 The Annotated Source Listing
-================================
-
-`gprof''s `-A' option triggers an annotated source listing, which lists
-the program's source code, each function labeled with the number of
-times it was called.  You may also need to specify the `-I' option, if
-`gprof' can't find the source code files.
-
-   With older versions of `gcc' compiling with `gcc ... -g -pg -a'
-augments your program with basic-block counting code, in addition to
-function counting code.  This enables `gprof' to determine how many
-times each line of code was executed.  With newer versions of `gcc'
-support for displaying basic-block counts is provided by the `gcov'
-program.
-
-   For example, consider the following function, taken from gzip, with
-line numbers added:
-
-      1 ulg updcrc(s, n)
-      2     uch *s;
-      3     unsigned n;
-      4 {
-      5     register ulg c;
-      6
-      7     static ulg crc = (ulg)0xffffffffL;
-      8
-      9     if (s == NULL) {
-     10         c = 0xffffffffL;
-     11     } else {
-     12         c = crc;
-     13         if (n) do {
-     14             c = crc_32_tab[...];
-     15         } while (--n);
-     16     }
-     17     crc = c;
-     18     return c ^ 0xffffffffL;
-     19 }
-
-   `updcrc' has at least five basic-blocks.  One is the function
-itself.  The `if' statement on line 9 generates two more basic-blocks,
-one for each branch of the `if'.  A fourth basic-block results from the
-`if' on line 13, and the contents of the `do' loop form the fifth
-basic-block.  The compiler may also generate additional basic-blocks to
-handle various special cases.
-
-   A program augmented for basic-block counting can be analyzed with
-`gprof -l -A'.  The `-x' option is also helpful, to ensure that each
-line of code is labeled at least once.  Here is `updcrc''s annotated
-source listing for a sample `gzip' run:
-
-                     ulg updcrc(s, n)
-                         uch *s;
-                         unsigned n;
-                 2 ->{
-                         register ulg c;
-
-                         static ulg crc = (ulg)0xffffffffL;
-
-                 2 ->    if (s == NULL) {
-                 1 ->        c = 0xffffffffL;
-                 1 ->    } else {
-                 1 ->        c = crc;
-                 1 ->        if (n) do {
-             26312 ->            c = crc_32_tab[...];
-     26312,1,26311 ->        } while (--n);
-                         }
-                 2 ->    crc = c;
-                 2 ->    return c ^ 0xffffffffL;
-                 2 ->}
-
-   In this example, the function was called twice, passing once through
-each branch of the `if' statement.  The body of the `do' loop was
-executed a total of 26312 times.  Note how the `while' statement is
-annotated.  It began execution 26312 times, once for each iteration
-through the loop.  One of those times (the last time) it exited, while
-it branched back to the beginning of the loop 26311 times.
-
-
-File: gprof.info,  Node: Inaccuracy,  Next: How do I?,  Prev: Output,  Up: Top
-
-6 Inaccuracy of `gprof' Output
-******************************
-
-* Menu:
-
-* Sampling Error::      Statistical margins of error
-* Assumptions::         Estimating children times
-
-
-File: gprof.info,  Node: Sampling Error,  Next: Assumptions,  Up: Inaccuracy
-
-6.1 Statistical Sampling Error
-==============================
-
-The run-time figures that `gprof' gives you are based on a sampling
-process, so they are subject to statistical inaccuracy.  If a function
-runs only a small amount of time, so that on the average the sampling
-process ought to catch that function in the act only once, there is a
-pretty good chance it will actually find that function zero times, or
-twice.
-
-   By contrast, the number-of-calls and basic-block figures are derived
-by counting, not sampling.  They are completely accurate and will not
-vary from run to run if your program is deterministic and single
-threaded.  In multi-threaded applications, or single threaded
-applications that link with multi-threaded libraries, the counts are
-only deterministic if the counting function is thread-safe.  (Note:
-beware that the mcount counting function in glibc is _not_
-thread-safe).  *Note Implementation of Profiling: Implementation.
-
-   The "sampling period" that is printed at the beginning of the flat
-profile says how often samples are taken.  The rule of thumb is that a
-run-time figure is accurate if it is considerably bigger than the
-sampling period.
-
-   The actual amount of error can be predicted.  For N samples, the
-_expected_ error is the square-root of N.  For example, if the sampling
-period is 0.01 seconds and `foo''s run-time is 1 second, N is 100
-samples (1 second/0.01 seconds), sqrt(N) is 10 samples, so the expected
-error in `foo''s run-time is 0.1 seconds (10*0.01 seconds), or ten
-percent of the observed value.  Again, if the sampling period is 0.01
-seconds and `bar''s run-time is 100 seconds, N is 10000 samples,
-sqrt(N) is 100 samples, so the expected error in `bar''s run-time is 1
-second, or one percent of the observed value.  It is likely to vary
-this much _on the average_ from one profiling run to the next.
-(_Sometimes_ it will vary more.)
-
-   This does not mean that a small run-time figure is devoid of
-information.  If the program's _total_ run-time is large, a small
-run-time for one function does tell you that that function used an
-insignificant fraction of the whole program's time.  Usually this means
-it is not worth optimizing.
-
-   One way to get more accuracy is to give your program more (but
-similar) input data so it will take longer.  Another way is to combine
-the data from several runs, using the `-s' option of `gprof'.  Here is
-how:
-
-  1. Run your program once.
-
-  2. Issue the command `mv gmon.out gmon.sum'.
-
-  3. Run your program again, the same as before.
-
-  4. Merge the new data in `gmon.out' into `gmon.sum' with this command:
-
-          gprof -s EXECUTABLE-FILE gmon.out gmon.sum
-
-  5. Repeat the last two steps as often as you wish.
-
-  6. Analyze the cumulative data using this command:
-
-          gprof EXECUTABLE-FILE gmon.sum > OUTPUT-FILE
-
-
-File: gprof.info,  Node: Assumptions,  Prev: Sampling Error,  Up: Inaccuracy
-
-6.2 Estimating `children' Times
-===============================
-
-Some of the figures in the call graph are estimates--for example, the
-`children' time values and all the time figures in caller and
-subroutine lines.
-
-   There is no direct information about these measurements in the
-profile data itself.  Instead, `gprof' estimates them by making an
-assumption about your program that might or might not be true.
-
-   The assumption made is that the average time spent in each call to
-any function `foo' is not correlated with who called `foo'.  If `foo'
-used 5 seconds in all, and 2/5 of the calls to `foo' came from `a',
-then `foo' contributes 2 seconds to `a''s `children' time, by
-assumption.
-
-   This assumption is usually true enough, but for some programs it is
-far from true.  Suppose that `foo' returns very quickly when its
-argument is zero; suppose that `a' always passes zero as an argument,
-while other callers of `foo' pass other arguments.  In this program,
-all the time spent in `foo' is in the calls from callers other than `a'.
-But `gprof' has no way of knowing this; it will blindly and incorrectly
-charge 2 seconds of time in `foo' to the children of `a'.
-
-   We hope some day to put more complete data into `gmon.out', so that
-this assumption is no longer needed, if we can figure out how.  For the
-novice, the estimated figures are usually more useful than misleading.
-
-
-File: gprof.info,  Node: How do I?,  Next: Incompatibilities,  Prev: Inaccuracy,  Up: Top
-
-7 Answers to Common Questions
-*****************************
-
-How can I get more exact information about hot spots in my program?
-     Looking at the per-line call counts only tells part of the story.
-     Because `gprof' can only report call times and counts by function,
-     the best way to get finer-grained information on where the program
-     is spending its time is to re-factor large functions into sequences
-     of calls to smaller ones.  Beware however that this can introduce
-     artificial hot spots since compiling with `-pg' adds a significant
-     overhead to function calls.  An alternative solution is to use a
-     non-intrusive profiler, e.g. oprofile.
-
-How do I find which lines in my program were executed the most times?
-     Use the `gcov' program.
-
-How do I find which lines in my program called a particular function?
-     Use `gprof -l' and lookup the function in the call graph.  The
-     callers will be broken down by function and line number.
-
-How do I analyze a program that runs for less than a second?
-     Try using a shell script like this one:
-
-          for i in `seq 1 100`; do
-            fastprog
-            mv gmon.out gmon.out.$i
-          done
-
-          gprof -s fastprog gmon.out.*
-
-          gprof fastprog gmon.sum
-
-     If your program is completely deterministic, all the call counts
-     will be simple multiples of 100 (i.e., a function called once in
-     each run will appear with a call count of 100).
-
-
-
-File: gprof.info,  Node: Incompatibilities,  Next: Details,  Prev: How do I?,  Up: Top
-
-8 Incompatibilities with Unix `gprof'
-*************************************
-
-GNU `gprof' and Berkeley Unix `gprof' use the same data file
-`gmon.out', and provide essentially the same information.  But there
-are a few differences.
-
-   * GNU `gprof' uses a new, generalized file format with support for
-     basic-block execution counts and non-realtime histograms.  A magic
-     cookie and version number allows `gprof' to easily identify new
-     style files.  Old BSD-style files can still be read.  *Note
-     Profiling Data File Format: File Format.
-
-   * For a recursive function, Unix `gprof' lists the function as a
-     parent and as a child, with a `calls' field that lists the number
-     of recursive calls.  GNU `gprof' omits these lines and puts the
-     number of recursive calls in the primary line.
-
-   * When a function is suppressed from the call graph with `-e', GNU
-     `gprof' still lists it as a subroutine of functions that call it.
-
-   * GNU `gprof' accepts the `-k' with its argument in the form
-     `from/to', instead of `from to'.
-
-   * In the annotated source listing, if there are multiple basic
-     blocks on the same line, GNU `gprof' prints all of their counts,
-     separated by commas.
-
-   * The blurbs, field widths, and output formats are different.  GNU
-     `gprof' prints blurbs after the tables, so that you can see the
-     tables without skipping the blurbs.
-
-
-File: gprof.info,  Node: Details,  Next: GNU Free Documentation License,  Prev: Incompatibilities,  Up: Top
-
-9 Details of Profiling
-**********************
-
-* Menu:
-
-* Implementation::      How a program collects profiling information
-* File Format::         Format of `gmon.out' files
-* Internals::           `gprof''s internal operation
-* Debugging::           Using `gprof''s `-d' option
-
-
-File: gprof.info,  Node: Implementation,  Next: File Format,  Up: Details
-
-9.1 Implementation of Profiling
-===============================
-
-Profiling works by changing how every function in your program is
-compiled so that when it is called, it will stash away some information
-about where it was called from.  From this, the profiler can figure out
-what function called it, and can count how many times it was called.
-This change is made by the compiler when your program is compiled with
-the `-pg' option, which causes every function to call `mcount' (or
-`_mcount', or `__mcount', depending on the OS and compiler) as one of
-its first operations.
-
-   The `mcount' routine, included in the profiling library, is
-responsible for recording in an in-memory call graph table both its
-parent routine (the child) and its parent's parent.  This is typically
-done by examining the stack frame to find both the address of the
-child, and the return address in the original parent.  Since this is a
-very machine-dependent operation, `mcount' itself is typically a short
-assembly-language stub routine that extracts the required information,
-and then calls `__mcount_internal' (a normal C function) with two
-arguments--`frompc' and `selfpc'.  `__mcount_internal' is responsible
-for maintaining the in-memory call graph, which records `frompc',
-`selfpc', and the number of times each of these call arcs was traversed.
-
-   GCC Version 2 provides a magical function
-(`__builtin_return_address'), which allows a generic `mcount' function
-to extract the required information from the stack frame.  However, on
-some architectures, most notably the SPARC, using this builtin can be
-very computationally expensive, and an assembly language version of
-`mcount' is used for performance reasons.
-
-   Number-of-calls information for library routines is collected by
-using a special version of the C library.  The programs in it are the
-same as in the usual C library, but they were compiled with `-pg'.  If
-you link your program with `gcc ... -pg', it automatically uses the
-profiling version of the library.
-
-   Profiling also involves watching your program as it runs, and
-keeping a histogram of where the program counter happens to be every
-now and then.  Typically the program counter is looked at around 100
-times per second of run time, but the exact frequency may vary from
-system to system.
-
-   This is done is one of two ways.  Most UNIX-like operating systems
-provide a `profil()' system call, which registers a memory array with
-the kernel, along with a scale factor that determines how the program's
-address space maps into the array.  Typical scaling values cause every
-2 to 8 bytes of address space to map into a single array slot.  On
-every tick of the system clock (assuming the profiled program is
-running), the value of the program counter is examined and the
-corresponding slot in the memory array is incremented.  Since this is
-done in the kernel, which had to interrupt the process anyway to handle
-the clock interrupt, very little additional system overhead is required.
-
-   However, some operating systems, most notably Linux 2.0 (and
-earlier), do not provide a `profil()' system call.  On such a system,
-arrangements are made for the kernel to periodically deliver a signal
-to the process (typically via `setitimer()'), which then performs the
-same operation of examining the program counter and incrementing a slot
-in the memory array.  Since this method requires a signal to be
-delivered to user space every time a sample is taken, it uses
-considerably more overhead than kernel-based profiling.  Also, due to
-the added delay required to deliver the signal, this method is less
-accurate as well.
-
-   A special startup routine allocates memory for the histogram and
-either calls `profil()' or sets up a clock signal handler.  This
-routine (`monstartup') can be invoked in several ways.  On Linux
-systems, a special profiling startup file `gcrt0.o', which invokes
-`monstartup' before `main', is used instead of the default `crt0.o'.
-Use of this special startup file is one of the effects of using `gcc
-... -pg' to link.  On SPARC systems, no special startup files are used.
-Rather, the `mcount' routine, when it is invoked for the first time
-(typically when `main' is called), calls `monstartup'.
-
-   If the compiler's `-a' option was used, basic-block counting is also
-enabled.  Each object file is then compiled with a static array of
-counts, initially zero.  In the executable code, every time a new
-basic-block begins (i.e., when an `if' statement appears), an extra
-instruction is inserted to increment the corresponding count in the
-array.  At compile time, a paired array was constructed that recorded
-the starting address of each basic-block.  Taken together, the two
-arrays record the starting address of every basic-block, along with the
-number of times it was executed.
-
-   The profiling library also includes a function (`mcleanup') which is
-typically registered using `atexit()' to be called as the program
-exits, and is responsible for writing the file `gmon.out'.  Profiling
-is turned off, various headers are output, and the histogram is
-written, followed by the call-graph arcs and the basic-block counts.
-
-   The output from `gprof' gives no indication of parts of your program
-that are limited by I/O or swapping bandwidth.  This is because samples
-of the program counter are taken at fixed intervals of the program's
-run time.  Therefore, the time measurements in `gprof' output say
-nothing about time that your program was not running.  For example, a
-part of the program that creates so much data that it cannot all fit in
-physical memory at once may run very slowly due to thrashing, but
-`gprof' will say it uses little time.  On the other hand, sampling by
-run time has the advantage that the amount of load due to other users
-won't directly affect the output you get.
-
-
-File: gprof.info,  Node: File Format,  Next: Internals,  Prev: Implementation,  Up: Details
-
-9.2 Profiling Data File Format
-==============================
-
-The old BSD-derived file format used for profile data does not contain a
-magic cookie that allows to check whether a data file really is a
-`gprof' file.  Furthermore, it does not provide a version number, thus
-rendering changes to the file format almost impossible.  GNU `gprof'
-uses a new file format that provides these features.  For backward
-compatibility, GNU `gprof' continues to support the old BSD-derived
-format, but not all features are supported with it.  For example,
-basic-block execution counts cannot be accommodated by the old file
-format.
-
-   The new file format is defined in header file `gmon_out.h'.  It
-consists of a header containing the magic cookie and a version number,
-as well as some spare bytes available for future extensions.  All data
-in a profile data file is in the native format of the target for which
-the profile was collected.  GNU `gprof' adapts automatically to the
-byte-order in use.
-
-   In the new file format, the header is followed by a sequence of
-records.  Currently, there are three different record types: histogram
-records, call-graph arc records, and basic-block execution count
-records.  Each file can contain any number of each record type.  When
-reading a file, GNU `gprof' will ensure records of the same type are
-compatible with each other and compute the union of all records.  For
-example, for basic-block execution counts, the union is simply the sum
-of all execution counts for each basic-block.
-
-9.2.1 Histogram Records
------------------------
-
-Histogram records consist of a header that is followed by an array of
-bins.  The header contains the text-segment range that the histogram
-spans, the size of the histogram in bytes (unlike in the old BSD
-format, this does not include the size of the header), the rate of the
-profiling clock, and the physical dimension that the bin counts
-represent after being scaled by the profiling clock rate.  The physical
-dimension is specified in two parts: a long name of up to 15 characters
-and a single character abbreviation.  For example, a histogram
-representing real-time would specify the long name as "seconds" and the
-abbreviation as "s".  This feature is useful for architectures that
-support performance monitor hardware (which, fortunately, is becoming
-increasingly common).  For example, under DEC OSF/1, the "uprofile"
-command can be used to produce a histogram of, say, instruction cache
-misses.  In this case, the dimension in the histogram header could be
-set to "i-cache misses" and the abbreviation could be set to "1"
-(because it is simply a count, not a physical dimension).  Also, the
-profiling rate would have to be set to 1 in this case.
-
-   Histogram bins are 16-bit numbers and each bin represent an equal
-amount of text-space.  For example, if the text-segment is one thousand
-bytes long and if there are ten bins in the histogram, each bin
-represents one hundred bytes.
-
-9.2.2 Call-Graph Records
-------------------------
-
-Call-graph records have a format that is identical to the one used in
-the BSD-derived file format.  It consists of an arc in the call graph
-and a count indicating the number of times the arc was traversed during
-program execution.  Arcs are specified by a pair of addresses: the
-first must be within caller's function and the second must be within
-the callee's function.  When performing profiling at the function
-level, these addresses can point anywhere within the respective
-function.  However, when profiling at the line-level, it is better if
-the addresses are as close to the call-site/entry-point as possible.
-This will ensure that the line-level call-graph is able to identify
-exactly which line of source code performed calls to a function.
-
-9.2.3 Basic-Block Execution Count Records
------------------------------------------
-
-Basic-block execution count records consist of a header followed by a
-sequence of address/count pairs.  The header simply specifies the
-length of the sequence.  In an address/count pair, the address
-identifies a basic-block and the count specifies the number of times
-that basic-block was executed.  Any address within the basic-address can
-be used.
-
-
-File: gprof.info,  Node: Internals,  Next: Debugging,  Prev: File Format,  Up: Details
-
-9.3 `gprof''s Internal Operation
-================================
-
-Like most programs, `gprof' begins by processing its options.  During
-this stage, it may building its symspec list (`sym_ids.c:sym_id_add'),
-if options are specified which use symspecs.  `gprof' maintains a
-single linked list of symspecs, which will eventually get turned into
-12 symbol tables, organized into six include/exclude pairs--one pair
-each for the flat profile (INCL_FLAT/EXCL_FLAT), the call graph arcs
-(INCL_ARCS/EXCL_ARCS), printing in the call graph
-(INCL_GRAPH/EXCL_GRAPH), timing propagation in the call graph
-(INCL_TIME/EXCL_TIME), the annotated source listing
-(INCL_ANNO/EXCL_ANNO), and the execution count listing
-(INCL_EXEC/EXCL_EXEC).
-
-   After option processing, `gprof' finishes building the symspec list
-by adding all the symspecs in `default_excluded_list' to the exclude
-lists EXCL_TIME and EXCL_GRAPH, and if line-by-line profiling is
-specified, EXCL_FLAT as well.  These default excludes are not added to
-EXCL_ANNO, EXCL_ARCS, and EXCL_EXEC.
-
-   Next, the BFD library is called to open the object file, verify that
-it is an object file, and read its symbol table (`core.c:core_init'),
-using `bfd_canonicalize_symtab' after mallocing an appropriately sized
-array of symbols.  At this point, function mappings are read (if the
-`--file-ordering' option has been specified), and the core text space
-is read into memory (if the `-c' option was given).
-
-   `gprof''s own symbol table, an array of Sym structures, is now built.
-This is done in one of two ways, by one of two routines, depending on
-whether line-by-line profiling (`-l' option) has been enabled.  For
-normal profiling, the BFD canonical symbol table is scanned.  For
-line-by-line profiling, every text space address is examined, and a new
-symbol table entry gets created every time the line number changes.  In
-either case, two passes are made through the symbol table--one to count
-the size of the symbol table required, and the other to actually read
-the symbols.  In between the two passes, a single array of type `Sym'
-is created of the appropriate length.  Finally,
-`symtab.c:symtab_finalize' is called to sort the symbol table and
-remove duplicate entries (entries with the same memory address).
-
-   The symbol table must be a contiguous array for two reasons.  First,
-the `qsort' library function (which sorts an array) will be used to
-sort the symbol table.  Also, the symbol lookup routine
-(`symtab.c:sym_lookup'), which finds symbols based on memory address,
-uses a binary search algorithm which requires the symbol table to be a
-sorted array.  Function symbols are indicated with an `is_func' flag.
-Line number symbols have no special flags set.  Additionally, a symbol
-can have an `is_static' flag to indicate that it is a local symbol.
-
-   With the symbol table read, the symspecs can now be translated into
-Syms (`sym_ids.c:sym_id_parse').  Remember that a single symspec can
-match multiple symbols.  An array of symbol tables (`syms') is created,
-each entry of which is a symbol table of Syms to be included or
-excluded from a particular listing.  The master symbol table and the
-symspecs are examined by nested loops, and every symbol that matches a
-symspec is inserted into the appropriate syms table.  This is done
-twice, once to count the size of each required symbol table, and again
-to build the tables, which have been malloced between passes.  From now
-on, to determine whether a symbol is on an include or exclude symspec
-list, `gprof' simply uses its standard symbol lookup routine on the
-appropriate table in the `syms' array.
-
-   Now the profile data file(s) themselves are read
-(`gmon_io.c:gmon_out_read'), first by checking for a new-style
-`gmon.out' header, then assuming this is an old-style BSD `gmon.out' if
-the magic number test failed.
-
-   New-style histogram records are read by `hist.c:hist_read_rec'.  For
-the first histogram record, allocate a memory array to hold all the
-bins, and read them in.  When multiple profile data files (or files
-with multiple histogram records) are read, the memory ranges of each
-pair of histogram records must be either equal, or non-overlapping.
-For each pair of histogram records, the resolution (memory region size
-divided by the number of bins) must be the same.  The time unit must be
-the same for all histogram records. If the above containts are met, all
-histograms for the same memory range are merged.
-
-   As each call graph record is read (`call_graph.c:cg_read_rec'), the
-parent and child addresses are matched to symbol table entries, and a
-call graph arc is created by `cg_arcs.c:arc_add', unless the arc fails
-a symspec check against INCL_ARCS/EXCL_ARCS.  As each arc is added, a
-linked list is maintained of the parent's child arcs, and of the child's
-parent arcs.  Both the child's call count and the arc's call count are
-incremented by the record's call count.
-
-   Basic-block records are read (`basic_blocks.c:bb_read_rec'), but
-only if line-by-line profiling has been selected.  Each basic-block
-address is matched to a corresponding line symbol in the symbol table,
-and an entry made in the symbol's bb_addr and bb_calls arrays.  Again,
-if multiple basic-block records are present for the same address, the
-call counts are cumulative.
-
-   A gmon.sum file is dumped, if requested (`gmon_io.c:gmon_out_write').
-
-   If histograms were present in the data files, assign them to symbols
-(`hist.c:hist_assign_samples') by iterating over all the sample bins
-and assigning them to symbols.  Since the symbol table is sorted in
-order of ascending memory addresses, we can simple follow along in the
-symbol table as we make our pass over the sample bins.  This step
-includes a symspec check against INCL_FLAT/EXCL_FLAT.  Depending on the
-histogram scale factor, a sample bin may span multiple symbols, in
-which case a fraction of the sample count is allocated to each symbol,
-proportional to the degree of overlap.  This effect is rare for normal
-profiling, but overlaps are more common during line-by-line profiling,
-and can cause each of two adjacent lines to be credited with half a
-hit, for example.
-
-   If call graph data is present, `cg_arcs.c:cg_assemble' is called.
-First, if `-c' was specified, a machine-dependent routine (`find_call')
-scans through each symbol's machine code, looking for subroutine call
-instructions, and adding them to the call graph with a zero call count.
-A topological sort is performed by depth-first numbering all the
-symbols (`cg_dfn.c:cg_dfn'), so that children are always numbered less
-than their parents, then making a array of pointers into the symbol
-table and sorting it into numerical order, which is reverse topological
-order (children appear before parents).  Cycles are also detected at
-this point, all members of which are assigned the same topological
-number.  Two passes are now made through this sorted array of symbol
-pointers.  The first pass, from end to beginning (parents to children),
-computes the fraction of child time to propagate to each parent and a
-print flag.  The print flag reflects symspec handling of
-INCL_GRAPH/EXCL_GRAPH, with a parent's include or exclude (print or no
-print) property being propagated to its children, unless they
-themselves explicitly appear in INCL_GRAPH or EXCL_GRAPH.  A second
-pass, from beginning to end (children to parents) actually propagates
-the timings along the call graph, subject to a check against
-INCL_TIME/EXCL_TIME.  With the print flag, fractions, and timings now
-stored in the symbol structures, the topological sort array is now
-discarded, and a new array of pointers is assembled, this time sorted
-by propagated time.
-
-   Finally, print the various outputs the user requested, which is now
-fairly straightforward.  The call graph (`cg_print.c:cg_print') and
-flat profile (`hist.c:hist_print') are regurgitations of values already
-computed.  The annotated source listing
-(`basic_blocks.c:print_annotated_source') uses basic-block information,
-if present, to label each line of code with call counts, otherwise only
-the function call counts are presented.
-
-   The function ordering code is marginally well documented in the
-source code itself (`cg_print.c').  Basically, the functions with the
-most use and the most parents are placed first, followed by other
-functions with the most use, followed by lower use functions, followed
-by unused functions at the end.
-
-
-File: gprof.info,  Node: Debugging,  Prev: Internals,  Up: Details
-
-9.4 Debugging `gprof'
-=====================
-
-If `gprof' was compiled with debugging enabled, the `-d' option
-triggers debugging output (to stdout) which can be helpful in
-understanding its operation.  The debugging number specified is
-interpreted as a sum of the following options:
-
-2 - Topological sort
-     Monitor depth-first numbering of symbols during call graph analysis
-
-4 - Cycles
-     Shows symbols as they are identified as cycle heads
-
-16 - Tallying
-     As the call graph arcs are read, show each arc and how the total
-     calls to each function are tallied
-
-32 - Call graph arc sorting
-     Details sorting individual parents/children within each call graph
-     entry
-
-64 - Reading histogram and call graph records
-     Shows address ranges of histograms as they are read, and each call
-     graph arc
-
-128 - Symbol table
-     Reading, classifying, and sorting the symbol table from the object
-     file.  For line-by-line profiling (`-l' option), also shows line
-     numbers being assigned to memory addresses.
-
-256 - Static call graph
-     Trace operation of `-c' option
-
-512 - Symbol table and arc table lookups
-     Detail operation of lookup routines
-
-1024 - Call graph propagation
-     Shows how function times are propagated along the call graph
-
-2048 - Basic-blocks
-     Shows basic-block records as they are read from profile data (only
-     meaningful with `-l' option)
-
-4096 - Symspecs
-     Shows symspec-to-symbol pattern matching operation
-
-8192 - Annotate source
-     Tracks operation of `-A' option
-
-
-File: gprof.info,  Node: GNU Free Documentation License,  Prev: Details,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                     Version 1.3, 3 November 2008
-
-     Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     functional and useful document "free" in the sense of freedom: to
-     assure everyone the effective freedom to copy and redistribute it,
-     with or without modifying it, either commercially or
-     noncommercially.  Secondarily, this License preserves for the
-     author and publisher a way to get credit for their work, while not
-     being considered responsible for modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
-     grants a world-wide, royalty-free license, unlimited in duration,
-     to use that work under the conditions stated herein.  The
-     "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter section
-     of the Document that deals exclusively with the relationship of the
-     publishers or authors of the Document to the Document's overall
-     subject (or to related matters) and contains nothing that could
-     fall directly within that overall subject.  (Thus, if the Document
-     is in part a textbook of mathematics, a Secondary Section may not
-     explain any mathematics.)  The relationship could be a matter of
-     historical connection with the subject or with related matters, or
-     of legal, commercial, philosophical, ethical or political position
-     regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.  A
-     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
-     be at most 25 words.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-     The "publisher" means any person or entity that distributes copies
-     of the Document to the public.
-
-     A section "Entitled XYZ" means a named subunit of the Document
-     whose title either is precisely XYZ or contains XYZ in parentheses
-     following text that translates XYZ in another language.  (Here XYZ
-     stands for a specific section name mentioned below, such as
-     "Acknowledgements", "Dedications", "Endorsements", or "History".)
-     To "Preserve the Title" of such a section when you modify the
-     Document means that it remains a section "Entitled XYZ" according
-     to this definition.
-
-     The Document may include Warranty Disclaimers next to the notice
-     which states that this License applies to the Document.  These
-     Warranty Disclaimers are considered to be included by reference in
-     this License, but only as regards disclaiming warranties: any other
-     implication that these Warranty Disclaimers may have is void and
-     has no effect on the meaning of this License.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies (or copies in media that commonly
-     have printed covers) of the Document, numbering more than 100, and
-     the Document's license notice requires Cover Texts, you must
-     enclose the copies in covers that carry, clearly and legibly, all
-     these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-       A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
-
-       B. List on the Title Page, as authors, one or more persons or
-          entities responsible for authorship of the modifications in
-          the Modified Version, together with at least five of the
-          principal authors of the Document (all of its principal
-          authors, if it has fewer than five), unless they release you
-          from this requirement.
-
-       C. State on the Title page the name of the publisher of the
-          Modified Version, as the publisher.
-
-       D. Preserve all the copyright notices of the Document.
-
-       E. Add an appropriate copyright notice for your modifications
-          adjacent to the other copyright notices.
-
-       F. Include, immediately after the copyright notices, a license
-          notice giving the public permission to use the Modified
-          Version under the terms of this License, in the form shown in
-          the Addendum below.
-
-       G. Preserve in that license notice the full lists of Invariant
-          Sections and required Cover Texts given in the Document's
-          license notice.
-
-       H. Include an unaltered copy of this License.
-
-       I. Preserve the section Entitled "History", Preserve its Title,
-          and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
-
-       J. Preserve the network location, if any, given in the Document
-          for public access to a Transparent copy of the Document, and
-          likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
-
-       K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
-          acknowledgements and/or dedications given therein.
-
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
-
-       M. Delete any section Entitled "Endorsements".  Such a section
-          may not be included in the Modified Version.
-
-       N. Do not retitle any existing section to be Entitled
-          "Endorsements" or to conflict in title with any Invariant
-          Section.
-
-       O. Preserve any Warranty Disclaimers.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section Entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties--for example, statements of peer review or that the text
-     has been approved by an organization as the authoritative
-     definition of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice, and that you preserve all
-     their Warranty Disclaimers.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections Entitled
-     "History" in the various original documents, forming one section
-     Entitled "History"; likewise combine any sections Entitled
-     "Acknowledgements", and any sections Entitled "Dedications".  You
-     must delete all sections Entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, is called an "aggregate" if the
-     copyright resulting from the compilation is not used to limit the
-     legal rights of the compilation's users beyond what the individual
-     works permit.  When the Document is included in an aggregate, this
-     License does not apply to the other works in the aggregate which
-     are not themselves derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one half
-     of the entire aggregate, the Document's Cover Texts may be placed
-     on covers that bracket the Document within the aggregate, or the
-     electronic equivalent of covers if the Document is in electronic
-     form.  Otherwise they must appear on printed covers that bracket
-     the whole aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License, and all the license notices in the
-     Document, and any Warranty Disclaimers, provided that you also
-     include the original English version of this License and the
-     original versions of those notices and disclaimers.  In case of a
-     disagreement between the translation and the original version of
-     this License or a notice or disclaimer, the original version will
-     prevail.
-
-     If a section in the Document is Entitled "Acknowledgements",
-     "Dedications", or "History", the requirement (section 4) to
-     Preserve its Title (section 1) will typically require changing the
-     actual title.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided under this License.  Any attempt
-     otherwise to copy, modify, sublicense, or distribute it is void,
-     and will automatically terminate your rights under this License.
-
-     However, if you cease all violation of this License, then your
-     license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
-     copyright holder fails to notify you of the violation by some
-     reasonable means prior to 60 days after the cessation.
-
-     Moreover, your license from a particular copyright holder is
-     reinstated permanently if the copyright holder notifies you of the
-     violation by some reasonable means, this is the first time you have
-     received notice of violation of this License (for any work) from
-     that copyright holder, and you cure the violation prior to 30 days
-     after your receipt of the notice.
-
-     Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
-     proxy's public statement of acceptance of a version permanently
-     authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
-     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
-     World Wide Web server that publishes copyrightable works and also
-     provides prominent facilities for anybody to edit those works.  A
-     public wiki that anybody can edit is an example of such a server.
-     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
-     site means any set of copyrightable works thus published on the MMC
-     site.
-
-     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
-     license published by Creative Commons Corporation, a not-for-profit
-     corporation with a principal place of business in San Francisco,
-     California, as well as future copyleft versions of that license
-     published by that same organization.
-
-     "Incorporate" means to publish or republish a Document, in whole or
-     in part, as part of another Document.
-
-     An MMC is "eligible for relicensing" if it is licensed under this
-     License, and if all works that were first published under this
-     License somewhere other than this MMC, and subsequently
-     incorporated in whole or in part into the MMC, (1) had no cover
-     texts or invariant sections, and (2) were thus incorporated prior
-     to November 1, 2008.
-
-     The operator of an MMC Site may republish an MMC contained in the
-     site under CC-BY-SA on the same site at any time before August 1,
-     2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-       Copyright (C)  YEAR  YOUR NAME.
-       Permission is granted to copy, distribute and/or modify this document
-       under the terms of the GNU Free Documentation License, Version 1.3
-       or any later version published by the Free Software Foundation;
-       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
-       Texts.  A copy of the license is included in the section entitled ``GNU
-       Free Documentation License''.
-
-   If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
-         with the Invariant Sections being LIST THEIR TITLES, with
-         the Front-Cover Texts being LIST, and with the Back-Cover Texts
-         being LIST.
-
-   If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-
-Tag Table:
-Node: Top777
-Node: Introduction2103
-Node: Compiling4595
-Node: Executing8651
-Node: Invoking11439
-Node: Output Options12854
-Node: Analysis Options19943
-Node: Miscellaneous Options23641
-Node: Deprecated Options24896
-Node: Symspecs26965
-Node: Output28791
-Node: Flat Profile29831
-Node: Call Graph34784
-Node: Primary38016
-Node: Callers40604
-Node: Subroutines42721
-Node: Cycles44562
-Node: Line-by-line51339
-Node: Annotated Source55412
-Node: Inaccuracy58411
-Node: Sampling Error58669
-Node: Assumptions61573
-Node: How do I?63043
-Node: Incompatibilities64597
-Node: Details66091
-Node: Implementation66484
-Node: File Format72381
-Node: Internals76671
-Node: Debugging85166
-Node: GNU Free Documentation License86767
-
-End Tag Table
diff --git a/share/info/ld.info b/share/info/ld.info
deleted file mode 100644
index 31a316b..0000000
--- a/share/info/ld.info
+++ /dev/null
Binary files differ
diff --git a/share/info/stabs.info b/share/info/stabs.info
deleted file mode 100644
index 5cbce0a..0000000
--- a/share/info/stabs.info
+++ /dev/null
Binary files differ
diff --git a/share/info/standards.info b/share/info/standards.info
deleted file mode 100644
index 81c8214..0000000
--- a/share/info/standards.info
+++ /dev/null
Binary files differ
diff --git a/share/man/man1/gdb.1 b/share/man/man1/gdb.1
deleted file mode 100644
index bb1af6c..0000000
--- a/share/man/man1/gdb.1
+++ /dev/null
@@ -1,405 +0,0 @@
-.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-.    ds C`
-.    ds C'
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
-..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{
-.    if \nF \{
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
-.\}
-.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "GDB 1"
-.TH GDB 1 "2015-02-06" "gdb-7.8.1" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-gdb \- The GNU Debugger
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-gdb [\fB\-help\fR] [\fB\-nh\fR] [\fB\-nx\fR] [\fB\-q\fR]
-[\fB\-batch\fR] [\fB\-cd=\fR\fIdir\fR] [\fB\-f\fR]
-[\fB\-b\fR\ \fIbps\fR]
-    [\fB\-tty=\fR\fIdev\fR] [\fB\-s\fR \fIsymfile\fR]
-[\fB\-e\fR\ \fIprog\fR] [\fB\-se\fR\ \fIprog\fR]
-[\fB\-c\fR\ \fIcore\fR] [\fB\-p\fR\ \fIprocID\fR]
-    [\fB\-x\fR\ \fIcmds\fR] [\fB\-d\fR\ \fIdir\fR]
-[\fIprog\fR|\fIprog\fR \fIprocID\fR|\fIprog\fR \fIcore\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The purpose of a debugger such as \s-1GDB\s0 is to allow you to see what is
-going on \*(L"inside\*(R" another program while it executes \*(-- or what another
-program was doing at the moment it crashed.
-.PP
-\&\s-1GDB\s0 can do four main kinds of things (plus other things in support of
-these) to help you catch bugs in the act:
-.IP "\(bu" 4
-Start your program, specifying anything that might affect its behavior.
-.IP "\(bu" 4
-Make your program stop on specified conditions.
-.IP "\(bu" 4
-Examine what has happened, when your program has stopped.
-.IP "\(bu" 4
-Change things in your program, so you can experiment with correcting the
-effects of one bug and go on to learn about another.
-.PP
-You can use \s-1GDB\s0 to debug programs written in C, C@t{++}, Fortran and
-Modula\-2.
-.PP
-\&\s-1GDB\s0 is invoked with the shell command \f(CW\*(C`gdb\*(C'\fR.  Once started, it reads
-commands from the terminal until you tell it to exit with the \s-1GDB\s0
-command \f(CW\*(C`quit\*(C'\fR.  You can get online help from \s-1GDB\s0 itself
-by using the command \f(CW\*(C`help\*(C'\fR.
-.PP
-You can run \f(CW\*(C`gdb\*(C'\fR with no arguments or options; but the most
-usual way to start \s-1GDB\s0 is with one argument or two, specifying an
-executable program as the argument:
-.PP
-.Vb 1
-\&        gdb program
-.Ve
-.PP
-You can also start with both an executable program and a core file specified:
-.PP
-.Vb 1
-\&        gdb program core
-.Ve
-.PP
-You can, instead, specify a process \s-1ID\s0 as a second argument, if you want
-to debug a running process:
-.PP
-.Vb 2
-\&        gdb program 1234
-\&        gdb \-p 1234
-.Ve
-.PP
-would attach \s-1GDB\s0 to process \f(CW1234\fR (unless you also have a file
-named \fI1234\fR; \s-1GDB\s0 does check for a core file first).
-With option \fB\-p\fR you can omit the \fIprogram\fR filename.
-.PP
-Here are some of the most frequently needed \s-1GDB\s0 commands:
-.IP "\fBbreak [\fR\fIfile\fR\fB:]\fR\fIfunctiop\fR" 4
-.IX Item "break [file:]functiop"
-Set a breakpoint at \fIfunction\fR (in \fIfile\fR).
-.IP "\fBrun [\fR\fIarglist\fR\fB]\fR" 4
-.IX Item "run [arglist]"
-Start your program (with \fIarglist\fR, if specified).
-.IP "\fBbt\fR" 4
-.IX Item "bt"
-Backtrace: display the program stack.
-.IP "\fBprint\fR \fIexpr\fR" 4
-.IX Item "print expr"
-Display the value of an expression.
-.IP "\fBc\fR" 4
-.IX Item "c"
-Continue running your program (after stopping, e.g. at a breakpoint).
-.IP "\fBnext\fR" 4
-.IX Item "next"
-Execute next program line (after stopping); step \fIover\fR any
-function calls in the line.
-.IP "\fBedit [\fR\fIfile\fR\fB:]\fR\fIfunction\fR" 4
-.IX Item "edit [file:]function"
-look at the program line where it is presently stopped.
-.IP "\fBlist [\fR\fIfile\fR\fB:]\fR\fIfunction\fR" 4
-.IX Item "list [file:]function"
-type the text of the program in the vicinity of where it is presently stopped.
-.IP "\fBstep\fR" 4
-.IX Item "step"
-Execute next program line (after stopping); step \fIinto\fR any
-function calls in the line.
-.IP "\fBhelp [\fR\fIname\fR\fB]\fR" 4
-.IX Item "help [name]"
-Show information about \s-1GDB\s0 command \fIname\fR, or general information
-about using \s-1GDB.\s0
-.IP "\fBquit\fR" 4
-.IX Item "quit"
-Exit from \s-1GDB.\s0
-.PP
-For full details on \s-1GDB,\s0
-see \fIUsing \s-1GDB: A\s0 Guide to the \s-1GNU\s0 Source-Level Debugger\fR,
-by Richard M. Stallman and Roland H. Pesch.  The same text is available online
-as the \f(CW\*(C`gdb\*(C'\fR entry in the \f(CW\*(C`info\*(C'\fR program.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-Any arguments other than options specify an executable
-file and core file (or process \s-1ID\s0); that is, the first argument
-encountered with no
-associated option flag is equivalent to a \fB\-se\fR option, and the second,
-if any, is equivalent to a \fB\-c\fR option if it's the name of a file.
-Many options have
-both long and short forms; both are shown here.  The long forms are also
-recognized if you truncate them, so long as enough of the option is
-present to be unambiguous.  (If you prefer, you can flag option
-arguments with \fB+\fR rather than \fB\-\fR, though we illustrate the
-more usual convention.)
-.PP
-All the options and command line arguments you give are processed
-in sequential order.  The order makes a difference when the \fB\-x\fR
-option is used.
-.IP "\fB\-help\fR" 4
-.IX Item "-help"
-.PD 0
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD
-List all options, with brief explanations.
-.IP "\fB\-symbols=\fR\fIfile\fR" 4
-.IX Item "-symbols=file"
-.PD 0
-.IP "\fB\-s\fR \fIfile\fR" 4
-.IX Item "-s file"
-.PD
-Read symbol table from file \fIfile\fR.
-.IP "\fB\-write\fR" 4
-.IX Item "-write"
-Enable writing into executable and core files.
-.IP "\fB\-exec=\fR\fIfile\fR" 4
-.IX Item "-exec=file"
-.PD 0
-.IP "\fB\-e\fR \fIfile\fR" 4
-.IX Item "-e file"
-.PD
-Use file \fIfile\fR as the executable file to execute when
-appropriate, and for examining pure data in conjunction with a core
-dump.
-.IP "\fB\-se=\fR\fIfile\fR" 4
-.IX Item "-se=file"
-Read symbol table from file \fIfile\fR and use it as the executable
-file.
-.IP "\fB\-core=\fR\fIfile\fR" 4
-.IX Item "-core=file"
-.PD 0
-.IP "\fB\-c\fR \fIfile\fR" 4
-.IX Item "-c file"
-.PD
-Use file \fIfile\fR as a core dump to examine.
-.IP "\fB\-command=\fR\fIfile\fR" 4
-.IX Item "-command=file"
-.PD 0
-.IP "\fB\-x\fR \fIfile\fR" 4
-.IX Item "-x file"
-.PD
-Execute \s-1GDB\s0 commands from file \fIfile\fR.
-.IP "\fB\-ex\fR \fIcommand\fR" 4
-.IX Item "-ex command"
-Execute given \s-1GDB \s0\fIcommand\fR.
-.IP "\fB\-directory=\fR\fIdirectory\fR" 4
-.IX Item "-directory=directory"
-.PD 0
-.IP "\fB\-d\fR \fIdirectory\fR" 4
-.IX Item "-d directory"
-.PD
-Add \fIdirectory\fR to the path to search for source files.
-.IP "\fB\-nh\fR" 4
-.IX Item "-nh"
-Do not execute commands from \fI~/.gdbinit\fR.
-.IP "\fB\-nx\fR" 4
-.IX Item "-nx"
-.PD 0
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD
-Do not execute commands from any \fI.gdbinit\fR initialization files.
-.IP "\fB\-quiet\fR" 4
-.IX Item "-quiet"
-.PD 0
-.IP "\fB\-q\fR" 4
-.IX Item "-q"
-.PD
-\&\*(L"Quiet\*(R".  Do not print the introductory and copyright messages.  These
-messages are also suppressed in batch mode.
-.IP "\fB\-batch\fR" 4
-.IX Item "-batch"
-Run in batch mode.  Exit with status \f(CW0\fR after processing all the command
-files specified with \fB\-x\fR (and \fI.gdbinit\fR, if not inhibited).
-Exit with nonzero status if an error occurs in executing the \s-1GDB\s0
-commands in the command files.
-.Sp
-Batch mode may be useful for running \s-1GDB\s0 as a filter, for example to
-download and run a program on another computer; in order to make this
-more useful, the message
-.Sp
-.Vb 1
-\&        Program exited normally.
-.Ve
-.Sp
-(which is ordinarily issued whenever a program running under \s-1GDB\s0 control
-terminates) is not issued when running in batch mode.
-.IP "\fB\-cd=\fR\fIdirectory\fR" 4
-.IX Item "-cd=directory"
-Run \s-1GDB\s0 using \fIdirectory\fR as its working directory,
-instead of the current directory.
-.IP "\fB\-fullname\fR" 4
-.IX Item "-fullname"
-.PD 0
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD
-Emacs sets this option when it runs \s-1GDB\s0 as a subprocess.  It tells
-\&\s-1GDB\s0 to output the full file name and line number in a standard,
-recognizable fashion each time a stack frame is displayed (which
-includes each time the program stops).  This recognizable format looks
-like two \fB\e032\fR characters, followed by the file name, line number
-and character position separated by colons, and a newline.  The
-Emacs-to-GDB interface program uses the two \fB\e032\fR
-characters as a signal to display the source code for the frame.
-.IP "\fB\-b\fR \fIbps\fR" 4
-.IX Item "-b bps"
-Set the line speed (baud rate or bits per second) of any serial
-interface used by \s-1GDB\s0 for remote debugging.
-.IP "\fB\-tty=\fR\fIdevice\fR" 4
-.IX Item "-tty=device"
-Run using \fIdevice\fR for your program's standard input and output.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-The full documentation for \s-1GDB\s0 is maintained as a Texinfo manual.
-If the \f(CW\*(C`info\*(C'\fR and \f(CW\*(C`gdb\*(C'\fR programs and \s-1GDB\s0's Texinfo
-documentation are properly installed at your site, the command
-.PP
-.Vb 1
-\&        info gdb
-.Ve
-.PP
-should give you access to the complete manual.
-.PP
-\&\fIUsing \s-1GDB: A\s0 Guide to the \s-1GNU\s0 Source-Level Debugger\fR,
-Richard M. Stallman and Roland H. Pesch, July 1991.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1988\-2014 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being \*(L"Free Software\*(R" and \*(L"Free Software Needs
-Free Documentation\*(R", with the Front-Cover Texts being \*(L"A \s-1GNU\s0 Manual,\*(R"
-and with the Back-Cover Texts as in (a) below.
-.PP
-(a) The \s-1FSF\s0's Back-Cover Text is: \*(L"You are free to copy and modify
-this \s-1GNU\s0 Manual.  Buying copies from \s-1GNU\s0 Press supports the \s-1FSF\s0 in
-developing \s-1GNU\s0 and promoting software freedom.\*(R"
diff --git a/share/man/man1/gdbserver.1 b/share/man/man1/gdbserver.1
deleted file mode 100644
index e7e2258..0000000
--- a/share/man/man1/gdbserver.1
+++ /dev/null
@@ -1,377 +0,0 @@
-.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-.    ds C`
-.    ds C'
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
-..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{
-.    if \nF \{
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
-.\}
-.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2015-02-06" "gdb-7.8.1" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-gdbserver \- Remote Server for the GNU Debugger
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-gdbserver \fIcomm\fR \fIprog\fR [\fIargs\fR...]
-.PP
-gdbserver \-\-attach \fIcomm\fR \fIpid\fR
-.PP
-gdbserver \-\-multi \fIcomm\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBgdbserver\fR is a program that allows you to run \s-1GDB\s0 on a different machine
-than the one which is running the program being debugged.
-.PP
-Usage (server (target) side):
-.PP
-First, you need to have a copy of the program you want to debug put onto
-the target system.  The program can be stripped to save space if needed, as
-\&\fBgdbserver\fR doesn't care about symbols.  All symbol handling is taken care of by
-the \s-1GDB\s0 running on the host system.
-.PP
-To use the server, you log on to the target system, and run the \fBgdbserver\fR
-program.  You must tell it (a) how to communicate with \s-1GDB, \s0(b) the name of
-your program, and (c) its arguments.  The general syntax is:
-.PP
-.Vb 1
-\&        target> gdbserver <comm> <program> [<args> ...]
-.Ve
-.PP
-For example, using a serial port, you might say:
-.PP
-.Vb 1
-\&        target> gdbserver /dev/com1 emacs foo.txt
-.Ve
-.PP
-This tells \fBgdbserver\fR to debug emacs with an argument of foo.txt, and
-to communicate with \s-1GDB\s0 via \fI/dev/com1\fR.  \fBgdbserver\fR now
-waits patiently for the host \s-1GDB\s0 to communicate with it.
-.PP
-To use a \s-1TCP\s0 connection, you could say:
-.PP
-.Vb 1
-\&        target> gdbserver host:2345 emacs foo.txt
-.Ve
-.PP
-This says pretty much the same thing as the last example, except that we are
-going to communicate with the \f(CW\*(C`host\*(C'\fR \s-1GDB\s0 via \s-1TCP. \s0 The \f(CW\*(C`host:2345\*(C'\fR argument means
-that we are expecting to see a \s-1TCP\s0 connection from \f(CW\*(C`host\*(C'\fR to local \s-1TCP\s0 port
-2345.  (Currently, the \f(CW\*(C`host\*(C'\fR part is ignored.)  You can choose any number you
-want for the port number as long as it does not conflict with any existing \s-1TCP\s0
-ports on the target system.  This same port number must be used in the host
-GDBs \f(CW\*(C`target remote\*(C'\fR command, which will be described shortly.  Note that if
-you chose a port number that conflicts with another service, \fBgdbserver\fR will
-print an error message and exit.
-.PP
-\&\fBgdbserver\fR can also attach to running programs.
-This is accomplished via the \fB\-\-attach\fR argument.  The syntax is:
-.PP
-.Vb 1
-\&        target> gdbserver \-\-attach <comm> <pid>
-.Ve
-.PP
-\&\fIpid\fR is the process \s-1ID\s0 of a currently running process.  It isn't
-necessary to point \fBgdbserver\fR at a binary for the running process.
-.PP
-To start \f(CW\*(C`gdbserver\*(C'\fR without supplying an initial command to run
-or process \s-1ID\s0 to attach, use the \fB\-\-multi\fR command line option.
-In such case you should connect using \f(CW\*(C`target extended\-remote\*(C'\fR to start
-the program you want to debug.
-.PP
-.Vb 1
-\&        target> gdbserver \-\-multi <comm>
-.Ve
-.PP
-Usage (host side):
-.PP
-You need an unstripped copy of the target program on your host system, since
-\&\s-1GDB\s0 needs to examine it's symbol tables and such.  Start up \s-1GDB\s0 as you normally
-would, with the target program as the first argument.  (You may need to use the
-\&\fB\-\-baud\fR option if the serial line is running at anything except 9600 baud.)
-That is \f(CW\*(C`gdb TARGET\-PROG\*(C'\fR, or \f(CW\*(C`gdb \-\-baud BAUD TARGET\-PROG\*(C'\fR.  After that, the only
-new command you need to know about is \f(CW\*(C`target remote\*(C'\fR
-(or \f(CW\*(C`target extended\-remote\*(C'\fR).  Its argument is either
-a device name (usually a serial device, like \fI/dev/ttyb\fR), or a \f(CW\*(C`HOST:PORT\*(C'\fR
-descriptor.  For example:
-.PP
-.Vb 1
-\&        (gdb) target remote /dev/ttyb
-.Ve
-.PP
-communicates with the server via serial line \fI/dev/ttyb\fR, and:
-.PP
-.Vb 1
-\&        (gdb) target remote the\-target:2345
-.Ve
-.PP
-communicates via a \s-1TCP\s0 connection to port 2345 on host `the\-target', where
-you previously started up \fBgdbserver\fR with the same port number.  Note that for
-\&\s-1TCP\s0 connections, you must start up \fBgdbserver\fR prior to using the `target remote'
-command, otherwise you may get an error that looks something like
-`Connection refused'.
-.PP
-\&\fBgdbserver\fR can also debug multiple inferiors at once,
-described in
-the \s-1GDB\s0 manual in node \f(CW\*(C`Inferiors and Programs\*(C'\fR
-\&\*(-- shell command \f(CW\*(C`info \-f gdb \-n \*(AqInferiors and Programs\*(Aq\*(C'\fR.
-In such case use the \f(CW\*(C`extended\-remote\*(C'\fR \s-1GDB\s0 command variant:
-.PP
-.Vb 1
-\&        (gdb) target extended\-remote the\-target:2345
-.Ve
-.PP
-The \fBgdbserver\fR option \fB\-\-multi\fR may or may not be used in such
-case.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-There are three different modes for invoking \fBgdbserver\fR:
-.IP "\(bu" 4
-Debug a specific program specified by its program name:
-.Sp
-.Vb 1
-\&        gdbserver <comm> <prog> [<args>...]
-.Ve
-.Sp
-The \fIcomm\fR parameter specifies how should the server communicate
-with \s-1GDB\s0; it is either a device name (to use a serial line),
-a \s-1TCP\s0 port number (\f(CW\*(C`:1234\*(C'\fR), or \f(CW\*(C`\-\*(C'\fR or \f(CW\*(C`stdio\*(C'\fR to use
-stdin/stdout of \f(CW\*(C`gdbserver\*(C'\fR.  Specify the name of the program to
-debug in \fIprog\fR.  Any remaining arguments will be passed to the
-program verbatim.  When the program exits, \s-1GDB\s0 will close the
-connection, and \f(CW\*(C`gdbserver\*(C'\fR will exit.
-.IP "\(bu" 4
-Debug a specific program by specifying the process \s-1ID\s0 of a running
-program:
-.Sp
-.Vb 1
-\&        gdbserver \-\-attach <comm> <pid>
-.Ve
-.Sp
-The \fIcomm\fR parameter is as described above.  Supply the process \s-1ID\s0
-of a running program in \fIpid\fR; \s-1GDB\s0 will do everything
-else.  Like with the previous mode, when the process \fIpid\fR exits,
-\&\s-1GDB\s0 will close the connection, and \f(CW\*(C`gdbserver\*(C'\fR will exit.
-.IP "\(bu" 4
-Multi-process mode \*(-- debug more than one program/process:
-.Sp
-.Vb 1
-\&        gdbserver \-\-multi <comm>
-.Ve
-.Sp
-In this mode, \s-1GDB\s0 can instruct \fBgdbserver\fR which
-command(s) to run.  Unlike the other 2 modes, \s-1GDB\s0 will not
-close the connection when a process being debugged exits, so you can
-debug several processes in the same session.
-.PP
-In each of the modes you may specify these options:
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-List all options, with brief explanations.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-This option causes \fBgdbserver\fR to print its version number and exit.
-.IP "\fB\-\-attach\fR" 4
-.IX Item "--attach"
-\&\fBgdbserver\fR will attach to a running program.  The syntax is:
-.Sp
-.Vb 1
-\&        target> gdbserver \-\-attach <comm> <pid>
-.Ve
-.Sp
-\&\fIpid\fR is the process \s-1ID\s0 of a currently running process.  It isn't
-necessary to point \fBgdbserver\fR at a binary for the running process.
-.IP "\fB\-\-multi\fR" 4
-.IX Item "--multi"
-To start \f(CW\*(C`gdbserver\*(C'\fR without supplying an initial command to run
-or process \s-1ID\s0 to attach, use this command line option.
-Then you can connect using \f(CW\*(C`target extended\-remote\*(C'\fR and start
-the program you want to debug.  The syntax is:
-.Sp
-.Vb 1
-\&        target> gdbserver \-\-multi <comm>
-.Ve
-.IP "\fB\-\-debug\fR" 4
-.IX Item "--debug"
-Instruct \f(CW\*(C`gdbserver\*(C'\fR to display extra status information about the debugging
-process.
-This option is intended for \f(CW\*(C`gdbserver\*(C'\fR development and for bug reports to
-the developers.
-.IP "\fB\-\-remote\-debug\fR" 4
-.IX Item "--remote-debug"
-Instruct \f(CW\*(C`gdbserver\*(C'\fR to display remote protocol debug output.
-This option is intended for \f(CW\*(C`gdbserver\*(C'\fR development and for bug reports to
-the developers.
-.IP "\fB\-\-debug\-format=option1\fR[\fB,option2,...\fR]" 4
-.IX Item "--debug-format=option1[,option2,...]"
-Instruct \f(CW\*(C`gdbserver\*(C'\fR to include extra information in each line
-of debugging output.
-.IP "\fB\-\-wrapper\fR" 4
-.IX Item "--wrapper"
-Specify a wrapper to launch programs
-for debugging.  The option should be followed by the name of the
-wrapper, then any command-line arguments to pass to the wrapper, then
-\&\f(CW\*(C`\-\-\*(C'\fR indicating the end of the wrapper arguments.
-.IP "\fB\-\-once\fR" 4
-.IX Item "--once"
-By default, \fBgdbserver\fR keeps the listening \s-1TCP\s0 port open, so that
-additional connections are possible.  However, if you start \f(CW\*(C`gdbserver\*(C'\fR
-with the \fB\-\-once\fR option, it will stop listening for any further
-connection attempts after connecting to the first \s-1GDB\s0 session.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-The full documentation for \s-1GDB\s0 is maintained as a Texinfo manual.
-If the \f(CW\*(C`info\*(C'\fR and \f(CW\*(C`gdb\*(C'\fR programs and \s-1GDB\s0's Texinfo
-documentation are properly installed at your site, the command
-.PP
-.Vb 1
-\&        info gdb
-.Ve
-.PP
-should give you access to the complete manual.
-.PP
-\&\fIUsing \s-1GDB: A\s0 Guide to the \s-1GNU\s0 Source-Level Debugger\fR,
-Richard M. Stallman and Roland H. Pesch, July 1991.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1988\-2014 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being \*(L"Free Software\*(R" and \*(L"Free Software Needs
-Free Documentation\*(R", with the Front-Cover Texts being \*(L"A \s-1GNU\s0 Manual,\*(R"
-and with the Back-Cover Texts as in (a) below.
-.PP
-(a) The \s-1FSF\s0's Back-Cover Text is: \*(L"You are free to copy and modify
-this \s-1GNU\s0 Manual.  Buying copies from \s-1GNU\s0 Press supports the \s-1FSF\s0 in
-developing \s-1GNU\s0 and promoting software freedom.\*(R"
diff --git a/share/man/man1/mips-qca-linux-uclibc-addr2line.1 b/share/man/man1/mips-qca-linux-uclibc-addr2line.1
deleted file mode 100644
index 0d60c7e..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-addr2line.1
+++ /dev/null
@@ -1,299 +0,0 @@
-.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "ADDR2LINE 1"
-.TH ADDR2LINE 1 "2013-11-18" "binutils-2.23.91" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-addr2line \- convert addresses into file names and line numbers.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-addr2line [\fB\-a\fR|\fB\-\-addresses\fR]
-          [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
-          [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
-          [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
-          [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
-          [\fB\-i\fR|\fB\-\-inlines\fR]
-          [\fB\-p\fR|\fB\-\-pretty\-print\fR]
-          [\fB\-j\fR|\fB\-\-section=\fR\fIname\fR]
-          [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
-          [addr addr ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBaddr2line\fR translates addresses into file names and line numbers.
-Given an address in an executable or an offset in a section of a relocatable
-object, it uses the debugging information to figure out which file name and
-line number are associated with it.
-.PP
-The executable or relocatable object to use is specified with the \fB\-e\fR
-option.  The default is the file \fIa.out\fR.  The section in the relocatable
-object to use is specified with the \fB\-j\fR option.
-.PP
-\&\fBaddr2line\fR has two modes of operation.
-.PP
-In the first, hexadecimal addresses are specified on the command line,
-and \fBaddr2line\fR displays the file name and line number for each
-address.
-.PP
-In the second, \fBaddr2line\fR reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output.  In this mode, \fBaddr2line\fR may be used
-in a pipe to convert dynamically chosen addresses.
-.PP
-The format of the output is \fB\s-1FILENAME:LINENO\s0\fR.  The file name and
-line number for each input address is printed on separate lines.
-.PP
-If the \fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR
-line is preceded by \fB\s-1FUNCTIONNAME\s0\fR which is the name of the
-function containing the address.
-.PP
-If the \fB\-i\fR option is used and the code at the given address is
-present there because of inlining by the compiler then the
-\&\fB{\s-1FUNCTIONNAME\s0} \s-1FILENAME:LINENO\s0\fR information for the inlining
-function will be displayed afterwards.  This continues recursively
-until there is no more inlining to report.
-.PP
-If the \fB\-a\fR option is used then the output is prefixed by the
-input address.
-.PP
-If the \fB\-p\fR option is used then the output for each input
-address is displayed on one, possibly quite long, line.  If
-\&\fB\-p\fR is not used then the output is broken up into multiple
-lines, based on the paragraphs above.
-.PP
-If the file name or function name can not be determined,
-\&\fBaddr2line\fR will print two question marks in their place.  If the
-line number can not be determined, \fBaddr2line\fR will print 0.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-addresses\fR" 4
-.IX Item "--addresses"
-.PD
-Display the address before the function name, file and line number
-information.  The address is printed with a \fB0x\fR prefix to easily
-identify it.
-.IP "\fB\-b\fR \fIbfdname\fR" 4
-.IX Item "-b bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable.  Different compilers have different
-mangling styles. The optional demangling style argument can be used to
-choose an appropriate demangling style for your compiler.
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
-.IX Item "--exe=filename"
-.PD
-Specify the name of the executable for which addresses should be
-translated.  The default file is \fIa.out\fR.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-functions\fR" 4
-.IX Item "--functions"
-.PD
-Display function names as well as file and line number information.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-basenames\fR" 4
-.IX Item "--basenames"
-.PD
-Display only the base of each file name.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-inlines\fR" 4
-.IX Item "--inlines"
-.PD
-If the address belongs to a function that was inlined, the source
-information for all enclosing scopes back to the first non-inlined
-function will also be printed.  For example, if \f(CW\*(C`main\*(C'\fR inlines
-\&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from
-\&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR
-will also be printed.
-.IP "\fB\-j\fR" 4
-.IX Item "-j"
-.PD 0
-.IP "\fB\-\-section\fR" 4
-.IX Item "--section"
-.PD
-Read offsets relative to the specified section instead of absolute addresses.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-pretty\-print\fR" 4
-.IX Item "--pretty-print"
-.PD
-Make the output more human friendly: each location are printed on one line.
-If option \fB\-i\fR is specified, lines for all enclosing scopes are
-prefixed with \fB(inlined by)\fR.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR.  The options read are
-inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace.  A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes.  Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash.  The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991\-2013 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/share/man/man1/mips-qca-linux-uclibc-ar.1 b/share/man/man1/mips-qca-linux-uclibc-ar.1
deleted file mode 100644
index f3d02f8..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-ar.1
+++ /dev/null
@@ -1,461 +0,0 @@
-.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "AR 1"
-.TH AR 1 "2013-11-18" "binutils-2.23.91" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-ar \- create, modify, and extract from archives
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ar [\fB\-\-plugin\fR \fIname\fR] [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] [\fB\-\-target\fR \fIbfdname\fR] \fIarchive\fR [\fImember\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
-archives.  An \fIarchive\fR is a single file holding a collection of
-other files in a structure that makes it possible to retrieve
-the original individual files (called \fImembers\fR of the archive).
-.PP
-The original files' contents, mode (permissions), timestamp, owner, and
-group are preserved in the archive, and can be restored on
-extraction.
-.PP
-\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
-length; however, depending on how \fBar\fR is configured on your
-system, a limit on member-name length may be imposed for compatibility
-with archive formats maintained with other tools.  If it exists, the
-limit is often 15 characters (typical of formats related to a.out) or 16
-characters (typical of formats related to coff).
-.PP
-\&\fBar\fR is considered a binary utility because archives of this sort
-are most often used as \fIlibraries\fR holding commonly needed
-subroutines.
-.PP
-\&\fBar\fR creates an index to the symbols defined in relocatable
-object modules in the archive when you specify the modifier \fBs\fR.
-Once created, this index is updated in the archive whenever \fBar\fR
-makes a change to its contents (save for the \fBq\fR update operation).
-An archive with such an index speeds up linking to the library, and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-.PP
-You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
-table.  If an archive lacks the table, another form of \fBar\fR called
-\&\fBranlib\fR can be used to add just the table.
-.PP
-\&\s-1GNU\s0 \fBar\fR can optionally create a \fIthin\fR archive,
-which contains a symbol index and references to the original copies
-of the member files of the archive.  This is useful for building
-libraries for use within a local build tree, where the relocatable
-objects are expected to remain available, and copying the contents of
-each object would only waste time and space.
-.PP
-An archive can either be \fIthin\fR or it can be normal.  It cannot
-be both at the same time.  Once an archive is created its format
-cannot be changed without first deleting it and then creating a new
-archive in its place.
-.PP
-Thin archives are also \fIflattened\fR, so that adding one thin
-archive to another thin archive does not nest it, as would happen with
-a normal archive.  Instead the elements of the first archive are added
-individually to the second archive.
-.PP
-The paths to the elements of the archive are stored relative to the
-archive itself.
-.PP
-\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
-facilities.  You can control its activity using command-line options,
-like the different varieties of \fBar\fR on Unix systems; or, if you
-specify the single command-line option \fB\-M\fR, you can control it
-with a script supplied via standard input, like the \s-1MRI\s0 \*(L"librarian\*(R"
-program.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
-flags \fImod\fR in any order, within the first command-line argument.
-.PP
-If you wish, you may begin the first command-line argument with a
-dash.
-.PP
-The \fIp\fR keyletter specifies what operation to execute; it may be
-any of the following, but you must specify only one of them:
-.IP "\fBd\fR" 4
-.IX Item "d"
-\&\fIDelete\fR modules from the archive.  Specify the names of modules to
-be deleted as \fImember\fR...; the archive is untouched if you
-specify no files to delete.
-.Sp
-If you specify the \fBv\fR modifier, \fBar\fR lists each module
-as it is deleted.
-.IP "\fBm\fR" 4
-.IX Item "m"
-Use this operation to \fImove\fR members in an archive.
-.Sp
-The ordering of members in an archive can make a difference in how
-programs are linked using the library, if a symbol is defined in more
-than one member.
-.Sp
-If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
-\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
-you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
-specified place instead.
-.IP "\fBp\fR" 4
-.IX Item "p"
-\&\fIPrint\fR the specified members of the archive, to the standard
-output file.  If the \fBv\fR modifier is specified, show the member
-name before copying its contents to standard output.
-.Sp
-If you specify no \fImember\fR arguments, all the files in the archive are
-printed.
-.IP "\fBq\fR" 4
-.IX Item "q"
-\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
-\&\fIarchive\fR, without checking for replacement.
-.Sp
-The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
-operation; new members are always placed at the end of the archive.
-.Sp
-The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
-.Sp
-Since the point of this operation is speed, implementations of
-\&\fBar\fR have the option of not updating the archive's symbol
-table if one exists.  Too many different systems however assume that
-symbol tables are always up-to-date, so \s-1GNU\s0 \fBar\fR will
-rebuild the table even with a quick append.
-.Sp
-Note \- \s-1GNU\s0 \fBar\fR treats the command \fBqs\fR as a
-synonym for \fBr\fR \- replacing already existing files in the
-archive and appending new ones at the end.
-.IP "\fBr\fR" 4
-.IX Item "r"
-Insert the files \fImember\fR... into \fIarchive\fR (with
-\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
-previously existing members are deleted if their names match those being
-added.
-.Sp
-If one of the files named in \fImember\fR... does not exist, \fBar\fR
-displays an error message, and leaves undisturbed any existing members
-of the archive matching that name.
-.Sp
-By default, new members are added at the end of the file; but you may
-use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
-placement relative to some existing member.
-.Sp
-The modifier \fBv\fR used with this operation elicits a line of
-output for each file inserted, along with one of the letters \fBa\fR or
-\&\fBr\fR to indicate whether the file was appended (no old member
-deleted) or replaced.
-.IP "\fBs\fR" 4
-.IX Item "s"
-Add an index to the archive, or update it if it already exists.  Note
-this command is an exception to the rule that there can only be one
-command letter, as it is possible to use it as either a command or a
-modifier.  In either case it does the same thing.
-.IP "\fBt\fR" 4
-.IX Item "t"
-Display a \fItable\fR listing the contents of \fIarchive\fR, or those
-of the files listed in \fImember\fR... that are present in the
-archive.  Normally only the member name is shown; if you also want to
-see the modes (permissions), timestamp, owner, group, and size, you can
-request that by also specifying the \fBv\fR modifier.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are listed.
-.Sp
-If there is more than one file with the same name (say, \fBfie\fR) in
-an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
-first instance; to see them all, you must ask for a complete
-listing\-\-\-in our example, \fBar t b.a\fR.
-.IP "\fBx\fR" 4
-.IX Item "x"
-\&\fIExtract\fR members (named \fImember\fR) from the archive.  You can
-use the \fBv\fR modifier with this operation, to request that
-\&\fBar\fR list each name as it extracts it.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are extracted.
-.Sp
-Files cannot be extracted from a thin archive.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Displays the list of command line options supported by \fBar\fR
-and then exits.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-Displays the version information of \fBar\fR and then exits.
-.PP
-A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
-keyletter, to specify variations on an operation's behavior:
-.IP "\fBa\fR" 4
-.IX Item "a"
-Add new files \fIafter\fR an existing member of the
-archive.  If you use the modifier \fBa\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.
-.IP "\fBb\fR" 4
-.IX Item "b"
-Add new files \fIbefore\fR an existing member of the
-archive.  If you use the modifier \fBb\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.  (same as \fBi\fR).
-.IP "\fBc\fR" 4
-.IX Item "c"
-\&\fICreate\fR the archive.  The specified \fIarchive\fR is always
-created if it did not exist, when you request an update.  But a warning is
-issued unless you specify in advance that you expect to create it, by
-using this modifier.
-.IP "\fBD\fR" 4
-.IX Item "D"
-Operate in \fIdeterministic\fR mode.  When adding files and the archive
-index use zero for UIDs, GIDs, timestamps, and use consistent file modes
-for all files.  When this option is used, if \fBar\fR is used with
-identical options and identical input files, multiple runs will create
-identical output files regardless of the input files' owners, groups,
-file modes, or modification times.
-.Sp
-If \fIbinutils\fR was configured with
-\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
-It can be disabled with the \fBU\fR modifier, below.
-.IP "\fBf\fR" 4
-.IX Item "f"
-Truncate names in the archive.  \s-1GNU\s0 \fBar\fR will normally permit file
-names of any length.  This will cause it to create archives which are
-not compatible with the native \fBar\fR program on some systems.  If
-this is a concern, the \fBf\fR modifier may be used to truncate file
-names when putting them in the archive.
-.IP "\fBi\fR" 4
-.IX Item "i"
-Insert new files \fIbefore\fR an existing member of the
-archive.  If you use the modifier \fBi\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.  (same as \fBb\fR).
-.IP "\fBl\fR" 4
-.IX Item "l"
-This modifier is accepted but not used.
-.IP "\fBN\fR" 4
-.IX Item "N"
-Uses the \fIcount\fR parameter.  This is used if there are multiple
-entries in the archive with the same name.  Extract or delete instance
-\&\fIcount\fR of the given name from the archive.
-.IP "\fBo\fR" 4
-.IX Item "o"
-Preserve the \fIoriginal\fR dates of members when extracting them.  If
-you do not specify this modifier, files extracted from the archive
-are stamped with the time of extraction.
-.IP "\fBP\fR" 4
-.IX Item "P"
-Use the full path name when matching names in the archive.  \s-1GNU\s0
-\&\fBar\fR can not create an archive with a full path name (such archives
-are not \s-1POSIX\s0 complaint), but other archive creators can.  This option
-will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
-name, which can be convenient when extracting a single file from an
-archive created by another tool.
-.IP "\fBs\fR" 4
-.IX Item "s"
-Write an object-file index into the archive, or update an existing one,
-even if no other change is made to the archive.  You may use this modifier
-flag either with any operation, or alone.  Running \fBar s\fR on an
-archive is equivalent to running \fBranlib\fR on it.
-.IP "\fBS\fR" 4
-.IX Item "S"
-Do not generate an archive symbol table.  This can speed up building a
-large library in several steps.  The resulting archive can not be used
-with the linker.  In order to build a symbol table, you must omit the
-\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
-\&\fBranlib\fR on the archive.
-.IP "\fBT\fR" 4
-.IX Item "T"
-Make the specified \fIarchive\fR a \fIthin\fR archive.  If it already
-exists and is a regular archive, the existing members must be present
-in the same directory as \fIarchive\fR.
-.IP "\fBu\fR" 4
-.IX Item "u"
-Normally, \fBar r\fR... inserts all files
-listed into the archive.  If you would like to insert \fIonly\fR those
-of the files you list that are newer than existing members of the same
-names, use this modifier.  The \fBu\fR modifier is allowed only for the
-operation \fBr\fR (replace).  In particular, the combination \fBqu\fR is
-not allowed, since checking the timestamps would lose any speed
-advantage from the operation \fBq\fR.
-.IP "\fBU\fR" 4
-.IX Item "U"
-Do \fInot\fR operate in \fIdeterministic\fR mode.  This is the inverse
-of the \fBD\fR modifier, above: added files and the archive index will
-get their actual \s-1UID\s0, \s-1GID\s0, timestamp, and file mode values.
-.Sp
-This is the default unless \fIbinutils\fR was configured with
-\&\fB\-\-enable\-deterministic\-archives\fR.
-.IP "\fBv\fR" 4
-.IX Item "v"
-This modifier requests the \fIverbose\fR version of an operation.  Many
-operations display additional information, such as filenames processed,
-when the modifier \fBv\fR is appended.
-.IP "\fBV\fR" 4
-.IX Item "V"
-This modifier shows the version number of \fBar\fR.
-.PP
-\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
-compatibility with \s-1AIX\s0.  The behaviour produced by this option is the
-default for \s-1GNU\s0 \fBar\fR.  \fBar\fR does not support any of the other
-\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
-which is the default for \s-1AIX\s0 \fBar\fR.
-.PP
-The optional command line switch \fB\-\-plugin\fR \fIname\fR causes
-\&\fBar\fR to load the plugin called \fIname\fR which adds support
-for more file formats.  This option is only available if the toolchain
-has been built with plugin support enabled.
-.PP
-The optional command line switch \fB\-\-target\fR \fIbfdname\fR
-specifies that the archive members are in an object code format
-different from your system's default format.  See
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR.  The options read are
-inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace.  A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes.  Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash.  The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991\-2013 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/share/man/man1/mips-qca-linux-uclibc-as.1 b/share/man/man1/mips-qca-linux-uclibc-as.1
deleted file mode 100644
index eb347fb..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-as.1
+++ /dev/null
@@ -1,1593 +0,0 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.20)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "AS 1"
-.TH AS 1 "2013-11-26" "binutils-2.23.92" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-AS \- the portable GNU assembler.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-as [\fB\-a\fR[\fBcdghlns\fR][=\fIfile\fR]] [\fB\-\-alternate\fR] [\fB\-D\fR]
- [\fB\-\-compress\-debug\-sections\fR]  [\fB\-\-nocompress\-debug\-sections\fR]
- [\fB\-\-debug\-prefix\-map\fR \fIold\fR=\fInew\fR]
- [\fB\-\-defsym\fR \fIsym\fR=\fIval\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-\-gstabs\fR]
- [\fB\-\-gstabs+\fR] [\fB\-\-gdwarf\-2\fR] [\fB\-\-gdwarf\-sections\fR]
- [\fB\-\-help\fR] [\fB\-I\fR \fIdir\fR] [\fB\-J\fR]
- [\fB\-K\fR] [\fB\-L\fR] [\fB\-\-listing\-lhs\-width\fR=\fI\s-1NUM\s0\fR]
- [\fB\-\-listing\-lhs\-width2\fR=\fI\s-1NUM\s0\fR] [\fB\-\-listing\-rhs\-width\fR=\fI\s-1NUM\s0\fR]
- [\fB\-\-listing\-cont\-lines\fR=\fI\s-1NUM\s0\fR] [\fB\-\-keep\-locals\fR] [\fB\-o\fR
- \fIobjfile\fR] [\fB\-R\fR] [\fB\-\-reduce\-memory\-overheads\fR] [\fB\-\-statistics\fR]
- [\fB\-v\fR] [\fB\-version\fR] [\fB\-\-version\fR] [\fB\-W\fR] [\fB\-\-warn\fR]
- [\fB\-\-fatal\-warnings\fR] [\fB\-w\fR] [\fB\-x\fR] [\fB\-Z\fR] [\fB@\fR\fI\s-1FILE\s0\fR]
- [\fB\-\-size\-check=[error|warning]\fR]
- [\fB\-\-target\-help\fR] [\fItarget-options\fR]
- [\fB\-\-\fR|\fIfiles\fR ...]
-.PP
-\&\fITarget AArch64 options:\fR
-   [\fB\-EB\fR|\fB\-EL\fR]
-   [\fB\-mabi\fR=\fI\s-1ABI\s0\fR]
-.PP
-\&\fITarget Alpha options:\fR
-   [\fB\-m\fR\fIcpu\fR]
-   [\fB\-mdebug\fR | \fB\-no\-mdebug\fR]
-   [\fB\-replace\fR | \fB\-noreplace\fR]
-   [\fB\-relax\fR] [\fB\-g\fR] [\fB\-G\fR\fIsize\fR]
-   [\fB\-F\fR] [\fB\-32addr\fR]
-.PP
-\&\fITarget \s-1ARC\s0 options:\fR
-   [\fB\-marc[5|6|7|8]\fR]
-   [\fB\-EB\fR|\fB\-EL\fR]
-.PP
-\&\fITarget \s-1ARM\s0 options:\fR
-   [\fB\-mcpu\fR=\fIprocessor\fR[+\fIextension\fR...]]
-   [\fB\-march\fR=\fIarchitecture\fR[+\fIextension\fR...]]
-   [\fB\-mfpu\fR=\fIfloating-point-format\fR]
-   [\fB\-mfloat\-abi\fR=\fIabi\fR]
-   [\fB\-meabi\fR=\fIver\fR]
-   [\fB\-mthumb\fR]
-   [\fB\-EB\fR|\fB\-EL\fR]
-   [\fB\-mapcs\-32\fR|\fB\-mapcs\-26\fR|\fB\-mapcs\-float\fR|
-    \fB\-mapcs\-reentrant\fR]
-   [\fB\-mthumb\-interwork\fR] [\fB\-k\fR]
-.PP
-\&\fITarget Blackfin options:\fR
-   [\fB\-mcpu\fR=\fIprocessor\fR[\-\fIsirevision\fR]]
-   [\fB\-mfdpic\fR]
-   [\fB\-mno\-fdpic\fR]
-   [\fB\-mnopic\fR]
-.PP
-\&\fITarget \s-1CRIS\s0 options:\fR
-   [\fB\-\-underscore\fR | \fB\-\-no\-underscore\fR]
-   [\fB\-\-pic\fR] [\fB\-N\fR]
-   [\fB\-\-emulation=criself\fR | \fB\-\-emulation=crisaout\fR]
-   [\fB\-\-march=v0_v10\fR | \fB\-\-march=v10\fR | \fB\-\-march=v32\fR | \fB\-\-march=common_v10_v32\fR]
-.PP
-\&\fITarget D10V options:\fR
-   [\fB\-O\fR]
-.PP
-\&\fITarget D30V options:\fR
-   [\fB\-O\fR|\fB\-n\fR|\fB\-N\fR]
-.PP
-\&\fITarget \s-1EPIPHANY\s0 options:\fR
-   [\fB\-mepiphany\fR|\fB\-mepiphany16\fR]
-.PP
-\&\fITarget H8/300 options:\fR
-   [\-h\-tick\-hex]
-.PP
-\&\fITarget i386 options:\fR
-   [\fB\-\-32\fR|\fB\-\-x32\fR|\fB\-\-64\fR] [\fB\-n\fR]
-   [\fB\-march\fR=\fI\s-1CPU\s0\fR[+\fI\s-1EXTENSION\s0\fR...]] [\fB\-mtune\fR=\fI\s-1CPU\s0\fR]
-.PP
-\&\fITarget i960 options:\fR
-   [\fB\-ACA\fR|\fB\-ACA_A\fR|\fB\-ACB\fR|\fB\-ACC\fR|\fB\-AKA\fR|\fB\-AKB\fR|
-    \fB\-AKC\fR|\fB\-AMC\fR]
-   [\fB\-b\fR] [\fB\-no\-relax\fR]
-.PP
-\&\fITarget \s-1IA\-64\s0 options:\fR
-   [\fB\-mconstant\-gp\fR|\fB\-mauto\-pic\fR]
-   [\fB\-milp32\fR|\fB\-milp64\fR|\fB\-mlp64\fR|\fB\-mp64\fR]
-   [\fB\-mle\fR|\fBmbe\fR]
-   [\fB\-mtune=itanium1\fR|\fB\-mtune=itanium2\fR]
-   [\fB\-munwind\-check=warning\fR|\fB\-munwind\-check=error\fR]
-   [\fB\-mhint.b=ok\fR|\fB\-mhint.b=warning\fR|\fB\-mhint.b=error\fR]
-   [\fB\-x\fR|\fB\-xexplicit\fR] [\fB\-xauto\fR] [\fB\-xdebug\fR]
-.PP
-\&\fITarget \s-1IP2K\s0 options:\fR
-   [\fB\-mip2022\fR|\fB\-mip2022ext\fR]
-.PP
-\&\fITarget M32C options:\fR
-   [\fB\-m32c\fR|\fB\-m16c\fR] [\-relax] [\-h\-tick\-hex]
-.PP
-\&\fITarget M32R options:\fR
-   [\fB\-\-m32rx\fR|\fB\-\-[no\-]warn\-explicit\-parallel\-conflicts\fR|
-   \fB\-\-W[n]p\fR]
-.PP
-\&\fITarget M680X0 options:\fR
-   [\fB\-l\fR] [\fB\-m68000\fR|\fB\-m68010\fR|\fB\-m68020\fR|...]
-.PP
-\&\fITarget M68HC11 options:\fR
-   [\fB\-m68hc11\fR|\fB\-m68hc12\fR|\fB\-m68hcs12\fR|\fB\-mm9s12x\fR|\fB\-mm9s12xg\fR]
-   [\fB\-mshort\fR|\fB\-mlong\fR]
-   [\fB\-mshort\-double\fR|\fB\-mlong\-double\fR]
-   [\fB\-\-force\-long\-branches\fR] [\fB\-\-short\-branches\fR]
-   [\fB\-\-strict\-direct\-mode\fR] [\fB\-\-print\-insn\-syntax\fR]
-   [\fB\-\-print\-opcodes\fR] [\fB\-\-generate\-example\fR]
-.PP
-\&\fITarget \s-1MCORE\s0 options:\fR
-   [\fB\-jsri2bsr\fR] [\fB\-sifilter\fR] [\fB\-relax\fR]
-   [\fB\-mcpu=[210|340]\fR]
-.PP
-\&\fITarget Meta options:\fR
-   [\fB\-mcpu=\fR\fIcpu\fR] [\fB\-mfpu=\fR\fIcpu\fR] [\fB\-mdsp=\fR\fIcpu\fR]
-\&\fITarget \s-1MICROBLAZE\s0 options:\fR
-.PP
-\&\fITarget \s-1MIPS\s0 options:\fR
-   [\fB\-nocpp\fR] [\fB\-EL\fR] [\fB\-EB\fR] [\fB\-O\fR[\fIoptimization level\fR]]
-   [\fB\-g\fR[\fIdebug level\fR]] [\fB\-G\fR \fInum\fR] [\fB\-KPIC\fR] [\fB\-call_shared\fR]
-   [\fB\-non_shared\fR] [\fB\-xgot\fR [\fB\-mvxworks\-pic\fR]
-   [\fB\-mabi\fR=\fI\s-1ABI\s0\fR] [\fB\-32\fR] [\fB\-n32\fR] [\fB\-64\fR] [\fB\-mfp32\fR] [\fB\-mgp32\fR]
-   [\fB\-march\fR=\fI\s-1CPU\s0\fR] [\fB\-mtune\fR=\fI\s-1CPU\s0\fR] [\fB\-mips1\fR] [\fB\-mips2\fR]
-   [\fB\-mips3\fR] [\fB\-mips4\fR] [\fB\-mips5\fR] [\fB\-mips32\fR] [\fB\-mips32r2\fR]
-   [\fB\-mips64\fR] [\fB\-mips64r2\fR]
-   [\fB\-construct\-floats\fR] [\fB\-no\-construct\-floats\fR]
-   [\fB\-mnan=\fR\fIencoding\fR]
-   [\fB\-trap\fR] [\fB\-no\-break\fR] [\fB\-break\fR] [\fB\-no\-trap\fR]
-   [\fB\-mips16\fR] [\fB\-no\-mips16\fR]
-   [\fB\-mmicromips\fR] [\fB\-mno\-micromips\fR]
-   [\fB\-msmartmips\fR] [\fB\-mno\-smartmips\fR]
-   [\fB\-mips3d\fR] [\fB\-no\-mips3d\fR]
-   [\fB\-mdmx\fR] [\fB\-no\-mdmx\fR]
-   [\fB\-mdsp\fR] [\fB\-mno\-dsp\fR]
-   [\fB\-mdspr2\fR] [\fB\-mno\-dspr2\fR]
-   [\fB\-mmt\fR] [\fB\-mno\-mt\fR]
-   [\fB\-mmcu\fR] [\fB\-mno\-mcu\fR]
-   [\fB\-minsn32\fR] [\fB\-mno\-insn32\fR]
-   [\fB\-mfix7000\fR] [\fB\-mno\-fix7000\fR]
-   [\fB\-mfix\-vr4120\fR] [\fB\-mno\-fix\-vr4120\fR]
-   [\fB\-mfix\-vr4130\fR] [\fB\-mno\-fix\-vr4130\fR]
-   [\fB\-mdebug\fR] [\fB\-no\-mdebug\fR]
-   [\fB\-mpdr\fR] [\fB\-mno\-pdr\fR]
-.PP
-\&\fITarget \s-1MMIX\s0 options:\fR
-   [\fB\-\-fixed\-special\-register\-names\fR] [\fB\-\-globalize\-symbols\fR]
-   [\fB\-\-gnu\-syntax\fR] [\fB\-\-relax\fR] [\fB\-\-no\-predefined\-symbols\fR]
-   [\fB\-\-no\-expand\fR] [\fB\-\-no\-merge\-gregs\fR] [\fB\-x\fR]
-   [\fB\-\-linker\-allocated\-gregs\fR]
-.PP
-\&\fITarget Nios \s-1II\s0 options:\fR
-   [\fB\-relax\-all\fR] [\fB\-relax\-section\fR] [\fB\-no\-relax\fR]
-   [\fB\-EB\fR] [\fB\-EL\fR]
-.PP
-\&\fITarget \s-1PDP11\s0 options:\fR
-   [\fB\-mpic\fR|\fB\-mno\-pic\fR] [\fB\-mall\fR] [\fB\-mno\-extensions\fR]
-   [\fB\-m\fR\fIextension\fR|\fB\-mno\-\fR\fIextension\fR]
-   [\fB\-m\fR\fIcpu\fR] [\fB\-m\fR\fImachine\fR]
-.PP
-\&\fITarget picoJava options:\fR
-   [\fB\-mb\fR|\fB\-me\fR]
-.PP
-\&\fITarget PowerPC options:\fR
-   [\fB\-a32\fR|\fB\-a64\fR]
-   [\fB\-mpwrx\fR|\fB\-mpwr2\fR|\fB\-mpwr\fR|\fB\-m601\fR|\fB\-mppc\fR|\fB\-mppc32\fR|\fB\-m603\fR|\fB\-m604\fR|\fB\-m403\fR|\fB\-m405\fR|
-    \fB\-m440\fR|\fB\-m464\fR|\fB\-m476\fR|\fB\-m7400\fR|\fB\-m7410\fR|\fB\-m7450\fR|\fB\-m7455\fR|\fB\-m750cl\fR|\fB\-mppc64\fR|
-    \fB\-m620\fR|\fB\-me500\fR|\fB\-e500x2\fR|\fB\-me500mc\fR|\fB\-me500mc64\fR|\fB\-me5500\fR|\fB\-me6500\fR|\fB\-mppc64bridge\fR|
-    \fB\-mbooke\fR|\fB\-mpower4\fR|\fB\-mpwr4\fR|\fB\-mpower5\fR|\fB\-mpwr5\fR|\fB\-mpwr5x\fR|\fB\-mpower6\fR|\fB\-mpwr6\fR|
-    \fB\-mpower7\fR|\fB\-mpwr7\fR|\fB\-mpower8\fR|\fB\-mpwr8\fR|\fB\-ma2\fR|\fB\-mcell\fR|\fB\-mspe\fR|\fB\-mtitan\fR|\fB\-me300\fR|\fB\-mcom\fR]
-   [\fB\-many\fR] [\fB\-maltivec\fR|\fB\-mvsx\fR|\fB\-mhtm\fR|\fB\-mvle\fR]
-   [\fB\-mregnames\fR|\fB\-mno\-regnames\fR]
-   [\fB\-mrelocatable\fR|\fB\-mrelocatable\-lib\fR|\fB\-K \s-1PIC\s0\fR] [\fB\-memb\fR]
-   [\fB\-mlittle\fR|\fB\-mlittle\-endian\fR|\fB\-le\fR|\fB\-mbig\fR|\fB\-mbig\-endian\fR|\fB\-be\fR]
-   [\fB\-msolaris\fR|\fB\-mno\-solaris\fR]
-   [\fB\-nops=\fR\fIcount\fR]
-.PP
-\&\fITarget \s-1RX\s0 options:\fR
-   [\fB\-mlittle\-endian\fR|\fB\-mbig\-endian\fR]
-   [\fB\-m32bit\-doubles\fR|\fB\-m64bit\-doubles\fR]
-   [\fB\-muse\-conventional\-section\-names\fR]
-   [\fB\-msmall\-data\-limit\fR]
-   [\fB\-mpid\fR]
-   [\fB\-mrelax\fR]
-   [\fB\-mint\-register=\fR\fInumber\fR]
-   [\fB\-mgcc\-abi\fR|\fB\-mrx\-abi\fR]
-.PP
-\&\fITarget s390 options:\fR
-   [\fB\-m31\fR|\fB\-m64\fR] [\fB\-mesa\fR|\fB\-mzarch\fR] [\fB\-march\fR=\fI\s-1CPU\s0\fR]
-   [\fB\-mregnames\fR|\fB\-mno\-regnames\fR]
-   [\fB\-mwarn\-areg\-zero\fR]
-.PP
-\&\fITarget \s-1SCORE\s0 options:\fR
-   [\fB\-EB\fR][\fB\-EL\fR][\fB\-FIXDD\fR][\fB\-NWARN\fR]
-   [\fB\-SCORE5\fR][\fB\-SCORE5U\fR][\fB\-SCORE7\fR][\fB\-SCORE3\fR]
-   [\fB\-march=score7\fR][\fB\-march=score3\fR]
-   [\fB\-USE_R1\fR][\fB\-KPIC\fR][\fB\-O0\fR][\fB\-G\fR \fInum\fR][\fB\-V\fR]
-.PP
-\&\fITarget \s-1SPARC\s0 options:\fR
-   [\fB\-Av6\fR|\fB\-Av7\fR|\fB\-Av8\fR|\fB\-Asparclet\fR|\fB\-Asparclite\fR
-    \fB\-Av8plus\fR|\fB\-Av8plusa\fR|\fB\-Av9\fR|\fB\-Av9a\fR]
-   [\fB\-xarch=v8plus\fR|\fB\-xarch=v8plusa\fR] [\fB\-bump\fR]
-   [\fB\-32\fR|\fB\-64\fR]
-.PP
-\&\fITarget \s-1TIC54X\s0 options:\fR
- [\fB\-mcpu=54[123589]\fR|\fB\-mcpu=54[56]lp\fR] [\fB\-mfar\-mode\fR|\fB\-mf\fR]
- [\fB\-merrors\-to\-file\fR \fI<filename>\fR|\fB\-me\fR \fI<filename>\fR]
-.PP
-\&\fITarget \s-1TIC6X\s0 options:\fR
-   [\fB\-march=\fR\fIarch\fR] [\fB\-mbig\-endian\fR|\fB\-mlittle\-endian\fR]
-   [\fB\-mdsbt\fR|\fB\-mno\-dsbt\fR] [\fB\-mpid=no\fR|\fB\-mpid=near\fR|\fB\-mpid=far\fR]
-   [\fB\-mpic\fR|\fB\-mno\-pic\fR]
-.PP
-\&\fITarget TILE-Gx options:\fR
-   [\fB\-m32\fR|\fB\-m64\fR][\fB\-EB\fR][\fB\-EL\fR]
-.PP
-\&\fITarget Xtensa options:\fR
- [\fB\-\-[no\-]text\-section\-literals\fR] [\fB\-\-[no\-]absolute\-literals\fR]
- [\fB\-\-[no\-]target\-align\fR] [\fB\-\-[no\-]longcalls\fR]
- [\fB\-\-[no\-]transform\fR]
- [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR]
-.PP
-\&\fITarget Z80 options:\fR
-  [\fB\-z80\fR] [\fB\-r800\fR]
-  [ \fB\-ignore\-undocumented\-instructions\fR] [\fB\-Wnud\fR]
-  [ \fB\-ignore\-unportable\-instructions\fR] [\fB\-Wnup\fR]
-  [ \fB\-warn\-undocumented\-instructions\fR] [\fB\-Wud\fR]
-  [ \fB\-warn\-unportable\-instructions\fR] [\fB\-Wup\fR]
-  [ \fB\-forbid\-undocumented\-instructions\fR] [\fB\-Fud\fR]
-  [ \fB\-forbid\-unportable\-instructions\fR] [\fB\-Fup\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \fBas\fR is really a family of assemblers.
-If you use (or have used) the \s-1GNU\s0 assembler on one architecture, you
-should find a fairly similar environment when you use it on another
-architecture.  Each version has much in common with the others,
-including object file formats, most assembler directives (often called
-\&\fIpseudo-ops\fR) and assembler syntax.
-.PP
-\&\fBas\fR is primarily intended to assemble the output of the
-\&\s-1GNU\s0 C compiler \f(CW\*(C`gcc\*(C'\fR for use by the linker
-\&\f(CW\*(C`ld\*(C'\fR.  Nevertheless, we've tried to make \fBas\fR
-assemble correctly everything that other assemblers for the same
-machine would assemble.
-Any exceptions are documented explicitly.
-This doesn't mean \fBas\fR always uses the same syntax as another
-assembler for the same architecture; for example, we know of several
-incompatible versions of 680x0 assembly language syntax.
-.PP
-Each time you run \fBas\fR it assembles exactly one source
-program.  The source program is made up of one or more files.
-(The standard input is also a file.)
-.PP
-You give \fBas\fR a command line that has zero or more input file
-names.  The input files are read (from left file name to right).  A
-command line argument (in any position) that has no special meaning
-is taken to be an input file name.
-.PP
-If you give \fBas\fR no file names it attempts to read one input file
-from the \fBas\fR standard input, which is normally your terminal.  You
-may have to type \fBctl-D\fR to tell \fBas\fR there is no more program
-to assemble.
-.PP
-Use \fB\-\-\fR if you need to explicitly name the standard input file
-in your command line.
-.PP
-If the source is empty, \fBas\fR produces a small, empty object
-file.
-.PP
-\&\fBas\fR may write warnings and error messages to the standard error
-file (usually your terminal).  This should not happen when  a compiler
-runs \fBas\fR automatically.  Warnings report an assumption made so
-that \fBas\fR could keep assembling a flawed program; errors report a
-grave problem that stops the assembly.
-.PP
-If you are invoking \fBas\fR via the \s-1GNU\s0 C compiler,
-you can use the \fB\-Wa\fR option to pass arguments through to the assembler.
-The assembler arguments must be separated from each other (and the \fB\-Wa\fR)
-by commas.  For example:
-.PP
-.Vb 1
-\&        gcc \-c \-g \-O \-Wa,\-alh,\-L file.c
-.Ve
-.PP
-This passes two options to the assembler: \fB\-alh\fR (emit a listing to
-standard output with high-level and assembly source) and \fB\-L\fR (retain
-local symbols in the symbol table).
-.PP
-Usually you do not need to use this \fB\-Wa\fR mechanism, since many compiler
-command-line options are automatically passed to the assembler by the compiler.
-(You can call the \s-1GNU\s0 compiler driver with the \fB\-v\fR option to see
-precisely what options it passes to each compilation pass, including the
-assembler.)
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR.  The options read are
-inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace.  A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes.  Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash.  The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.IP "\fB\-a[cdghlmns]\fR" 4
-.IX Item "-a[cdghlmns]"
-Turn on listings, in any of a variety of ways:
-.RS 4
-.IP "\fB\-ac\fR" 4
-.IX Item "-ac"
-omit false conditionals
-.IP "\fB\-ad\fR" 4
-.IX Item "-ad"
-omit debugging directives
-.IP "\fB\-ag\fR" 4
-.IX Item "-ag"
-include general information, like as version and options passed
-.IP "\fB\-ah\fR" 4
-.IX Item "-ah"
-include high-level source
-.IP "\fB\-al\fR" 4
-.IX Item "-al"
-include assembly
-.IP "\fB\-am\fR" 4
-.IX Item "-am"
-include macro expansions
-.IP "\fB\-an\fR" 4
-.IX Item "-an"
-omit forms processing
-.IP "\fB\-as\fR" 4
-.IX Item "-as"
-include symbols
-.IP "\fB=file\fR" 4
-.IX Item "=file"
-set the name of the listing file
-.RE
-.RS 4
-.Sp
-You may combine these options; for example, use \fB\-aln\fR for assembly
-listing without forms processing.  The \fB=file\fR option, if used, must be
-the last one.  By itself, \fB\-a\fR defaults to \fB\-ahls\fR.
-.RE
-.IP "\fB\-\-alternate\fR" 4
-.IX Item "--alternate"
-Begin in alternate macro mode.
-.IP "\fB\-\-compress\-debug\-sections\fR" 4
-.IX Item "--compress-debug-sections"
-Compress \s-1DWARF\s0 debug sections using zlib.  The debug sections are renamed
-to begin with \fB.zdebug\fR, and the resulting object file may not be
-compatible with older linkers and object file utilities.
-.IP "\fB\-\-nocompress\-debug\-sections\fR" 4
-.IX Item "--nocompress-debug-sections"
-Do not compress \s-1DWARF\s0 debug sections.  This is the default.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-Ignored.  This option is accepted for script compatibility with calls to
-other assemblers.
-.IP "\fB\-\-debug\-prefix\-map\fR \fIold\fR\fB=\fR\fInew\fR" 4
-.IX Item "--debug-prefix-map old=new"
-When assembling files in directory \fI\fIold\fI\fR, record debugging
-information describing them as in \fI\fInew\fI\fR instead.
-.IP "\fB\-\-defsym\fR \fIsym\fR\fB=\fR\fIvalue\fR" 4
-.IX Item "--defsym sym=value"
-Define the symbol \fIsym\fR to be \fIvalue\fR before assembling the input file.
-\&\fIvalue\fR must be an integer constant.  As in C, a leading \fB0x\fR
-indicates a hexadecimal value, and a leading \fB0\fR indicates an octal
-value.  The value of the symbol can be overridden inside a source file via the
-use of a \f(CW\*(C`.set\*(C'\fR pseudo-op.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-\&\*(L"fast\*(R"\-\-\-skip whitespace and comment preprocessing (assume source is
-compiler output).
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-gen\-debug\fR" 4
-.IX Item "--gen-debug"
-.PD
-Generate debugging information for each assembler source line using whichever
-debug format is preferred by the target.  This currently means either \s-1STABS\s0,
-\&\s-1ECOFF\s0 or \s-1DWARF2\s0.
-.IP "\fB\-\-gstabs\fR" 4
-.IX Item "--gstabs"
-Generate stabs debugging information for each assembler line.  This
-may help debugging assembler code, if the debugger can handle it.
-.IP "\fB\-\-gstabs+\fR" 4
-.IX Item "--gstabs+"
-Generate stabs debugging information for each assembler line, with \s-1GNU\s0
-extensions that probably only gdb can handle, and that could make other
-debuggers crash or refuse to read your program.  This
-may help debugging assembler code.  Currently the only \s-1GNU\s0 extension is
-the location of the current working directory at assembling time.
-.IP "\fB\-\-gdwarf\-2\fR" 4
-.IX Item "--gdwarf-2"
-Generate \s-1DWARF2\s0 debugging information for each assembler line.  This
-may help debugging assembler code, if the debugger can handle it.  Note\-\-\-this
-option is only supported by some targets, not all of them.
-.IP "\fB\-\-gdwarf\-sections\fR" 4
-.IX Item "--gdwarf-sections"
-Instead of creating a .debug_line section, create a series of
-\&.debug_line.\fIfoo\fR sections where \fIfoo\fR is the name of the
-corresponding code section.  For example a code section called \fI.text.func\fR
-will have its dwarf line number information placed into a section called
-\&\fI.debug_line.text.func\fR.  If the code section is just called \fI.text\fR
-then debug line section will still be called just \fI.debug_line\fR without any
-suffix.
-.IP "\fB\-\-size\-check=error\fR" 4
-.IX Item "--size-check=error"
-.PD 0
-.IP "\fB\-\-size\-check=warning\fR" 4
-.IX Item "--size-check=warning"
-.PD
-Issue an error or warning for invalid \s-1ELF\s0 .size directive.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the command line options and exit.
-.IP "\fB\-\-target\-help\fR" 4
-.IX Item "--target-help"
-Print a summary of all target specific options and exit.
-.IP "\fB\-I\fR \fIdir\fR" 4
-.IX Item "-I dir"
-Add directory \fIdir\fR to the search list for \f(CW\*(C`.include\*(C'\fR directives.
-.IP "\fB\-J\fR" 4
-.IX Item "-J"
-Don't warn about signed overflow.
-.IP "\fB\-K\fR" 4
-.IX Item "-K"
-Issue warnings when difference tables altered for long displacements.
-.IP "\fB\-L\fR" 4
-.IX Item "-L"
-.PD 0
-.IP "\fB\-\-keep\-locals\fR" 4
-.IX Item "--keep-locals"
-.PD
-Keep (in the symbol table) local symbols.  These symbols start with
-system-specific local label prefixes, typically \fB.L\fR for \s-1ELF\s0 systems
-or \fBL\fR for traditional a.out systems.
-.IP "\fB\-\-listing\-lhs\-width=\fR\fInumber\fR" 4
-.IX Item "--listing-lhs-width=number"
-Set the maximum width, in words, of the output data column for an assembler
-listing to \fInumber\fR.
-.IP "\fB\-\-listing\-lhs\-width2=\fR\fInumber\fR" 4
-.IX Item "--listing-lhs-width2=number"
-Set the maximum width, in words, of the output data column for continuation
-lines in an assembler listing to \fInumber\fR.
-.IP "\fB\-\-listing\-rhs\-width=\fR\fInumber\fR" 4
-.IX Item "--listing-rhs-width=number"
-Set the maximum width of an input source line, as displayed in a listing, to
-\&\fInumber\fR bytes.
-.IP "\fB\-\-listing\-cont\-lines=\fR\fInumber\fR" 4
-.IX Item "--listing-cont-lines=number"
-Set the maximum number of lines printed in a listing for a single line of input
-to \fInumber\fR + 1.
-.IP "\fB\-o\fR \fIobjfile\fR" 4
-.IX Item "-o objfile"
-Name the object-file output from \fBas\fR \fIobjfile\fR.
-.IP "\fB\-R\fR" 4
-.IX Item "-R"
-Fold the data section into the text section.
-.Sp
-Set the default size of \s-1GAS\s0's hash tables to a prime number close to
-\&\fInumber\fR.  Increasing this value can reduce the length of time it takes the
-assembler to perform its tasks, at the expense of increasing the assembler's
-memory requirements.  Similarly reducing this value can reduce the memory
-requirements at the expense of speed.
-.IP "\fB\-\-reduce\-memory\-overheads\fR" 4
-.IX Item "--reduce-memory-overheads"
-This option reduces \s-1GAS\s0's memory requirements, at the expense of making the
-assembly processes slower.  Currently this switch is a synonym for
-\&\fB\-\-hash\-size=4051\fR, but in the future it may have other effects as well.
-.IP "\fB\-\-statistics\fR" 4
-.IX Item "--statistics"
-Print the maximum space (in bytes) and total time (in seconds) used by
-assembly.
-.IP "\fB\-\-strip\-local\-absolute\fR" 4
-.IX Item "--strip-local-absolute"
-Remove local absolute symbols from the outgoing symbol table.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-version\fR" 4
-.IX Item "-version"
-.PD
-Print the \fBas\fR version.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-Print the \fBas\fR version and exit.
-.IP "\fB\-W\fR" 4
-.IX Item "-W"
-.PD 0
-.IP "\fB\-\-no\-warn\fR" 4
-.IX Item "--no-warn"
-.PD
-Suppress warning messages.
-.IP "\fB\-\-fatal\-warnings\fR" 4
-.IX Item "--fatal-warnings"
-Treat warnings as errors.
-.IP "\fB\-\-warn\fR" 4
-.IX Item "--warn"
-Don't suppress warning messages or treat them as errors.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-Ignored.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-Ignored.
-.IP "\fB\-Z\fR" 4
-.IX Item "-Z"
-Generate an object file even after errors.
-.IP "\fB\-\- |\fR \fIfiles\fR \fB...\fR" 4
-.IX Item "-- | files ..."
-Standard input, or source files to assemble.
-.PP
-The following options are available when as is configured for the
-64\-bit mode of the \s-1ARM\s0 Architecture (AArch64).
-.IP "\fB\-EB\fR" 4
-.IX Item "-EB"
-This option specifies that the output generated by the assembler should
-be marked as being encoded for a big-endian processor.
-.IP "\fB\-EL\fR" 4
-.IX Item "-EL"
-This option specifies that the output generated by the assembler should
-be marked as being encoded for a little-endian processor.
-.IP "\fB\-mabi=\fR\fIabi\fR" 4
-.IX Item "-mabi=abi"
-Specify which \s-1ABI\s0 the source code uses.  The recognized arguments
-are: \f(CW\*(C`ilp32\*(C'\fR and \f(CW\*(C`lp64\*(C'\fR, which decides the generated object
-file in \s-1ELF32\s0 and \s-1ELF64\s0 format respectively.  The default is \f(CW\*(C`lp64\*(C'\fR.
-.PP
-The following options are available when as is configured for an Alpha
-processor.
-.IP "\fB\-m\fR\fIcpu\fR" 4
-.IX Item "-mcpu"
-This option specifies the target processor.  If an attempt is made to
-assemble an instruction which will not execute on the target processor,
-the assembler may either expand the instruction as a macro or issue an
-error message.  This option is equivalent to the \f(CW\*(C`.arch\*(C'\fR directive.
-.Sp
-The following processor names are recognized:
-\&\f(CW21064\fR,
-\&\f(CW\*(C`21064a\*(C'\fR,
-\&\f(CW21066\fR,
-\&\f(CW21068\fR,
-\&\f(CW21164\fR,
-\&\f(CW\*(C`21164a\*(C'\fR,
-\&\f(CW\*(C`21164pc\*(C'\fR,
-\&\f(CW21264\fR,
-\&\f(CW\*(C`21264a\*(C'\fR,
-\&\f(CW\*(C`21264b\*(C'\fR,
-\&\f(CW\*(C`ev4\*(C'\fR,
-\&\f(CW\*(C`ev5\*(C'\fR,
-\&\f(CW\*(C`lca45\*(C'\fR,
-\&\f(CW\*(C`ev5\*(C'\fR,
-\&\f(CW\*(C`ev56\*(C'\fR,
-\&\f(CW\*(C`pca56\*(C'\fR,
-\&\f(CW\*(C`ev6\*(C'\fR,
-\&\f(CW\*(C`ev67\*(C'\fR,
-\&\f(CW\*(C`ev68\*(C'\fR.
-The special name \f(CW\*(C`all\*(C'\fR may be used to allow the assembler to accept
-instructions valid for any Alpha processor.
-.Sp
-In order to support existing practice in \s-1OSF/1\s0 with respect to \f(CW\*(C`.arch\*(C'\fR,
-and existing practice within \fB\s-1MILO\s0\fR (the Linux \s-1ARC\s0 bootloader), the
-numbered processor names (e.g. 21064) enable the processor-specific PALcode
-instructions, while the \*(L"electro-vlasic\*(R" names (e.g. \f(CW\*(C`ev4\*(C'\fR) do not.
-.IP "\fB\-mdebug\fR" 4
-.IX Item "-mdebug"
-.PD 0
-.IP "\fB\-no\-mdebug\fR" 4
-.IX Item "-no-mdebug"
-.PD
-Enables or disables the generation of \f(CW\*(C`.mdebug\*(C'\fR encapsulation for
-stabs directives and procedure descriptors.  The default is to automatically
-enable \f(CW\*(C`.mdebug\*(C'\fR when the first stabs directive is seen.
-.IP "\fB\-relax\fR" 4
-.IX Item "-relax"
-This option forces all relocations to be put into the object file, instead
-of saving space and resolving some relocations at assembly time.  Note that
-this option does not propagate all symbol arithmetic into the object file,
-because not all symbol arithmetic can be represented.  However, the option
-can still be useful in specific applications.
-.IP "\fB\-replace\fR" 4
-.IX Item "-replace"
-.PD 0
-.IP "\fB\-noreplace\fR" 4
-.IX Item "-noreplace"
-.PD
-Enables or disables the optimization of procedure calls, both at assemblage
-and at link time.  These options are only available for \s-1VMS\s0 targets and
-\&\f(CW\*(C`\-replace\*(C'\fR is the default.  See section 1.4.1 of the OpenVMS Linker
-Utility Manual.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-This option is used when the compiler generates debug information.  When
-\&\fBgcc\fR is using \fBmips-tfile\fR to generate debug
-information for \s-1ECOFF\s0, local labels must be passed through to the object
-file.  Otherwise this option has no effect.
-.IP "\fB\-G\fR\fIsize\fR" 4
-.IX Item "-Gsize"
-A local common symbol larger than \fIsize\fR is placed in \f(CW\*(C`.bss\*(C'\fR,
-while smaller symbols are placed in \f(CW\*(C`.sbss\*(C'\fR.
-.IP "\fB\-F\fR" 4
-.IX Item "-F"
-.PD 0
-.IP "\fB\-32addr\fR" 4
-.IX Item "-32addr"
-.PD
-These options are ignored for backward compatibility.
-.PP
-The following options are available when as is configured for
-an \s-1ARC\s0 processor.
-.IP "\fB\-marc[5|6|7|8]\fR" 4
-.IX Item "-marc[5|6|7|8]"
-This option selects the core processor variant.
-.IP "\fB\-EB | \-EL\fR" 4
-.IX Item "-EB | -EL"
-Select either big-endian (\-EB) or little-endian (\-EL) output.
-.PP
-The following options are available when as is configured for the \s-1ARM\s0
-processor family.
-.IP "\fB\-mcpu=\fR\fIprocessor\fR\fB[+\fR\fIextension\fR\fB...]\fR" 4
-.IX Item "-mcpu=processor[+extension...]"
-Specify which \s-1ARM\s0 processor variant is the target.
-.IP "\fB\-march=\fR\fIarchitecture\fR\fB[+\fR\fIextension\fR\fB...]\fR" 4
-.IX Item "-march=architecture[+extension...]"
-Specify which \s-1ARM\s0 architecture variant is used by the target.
-.IP "\fB\-mfpu=\fR\fIfloating-point-format\fR" 4
-.IX Item "-mfpu=floating-point-format"
-Select which Floating Point architecture is the target.
-.IP "\fB\-mfloat\-abi=\fR\fIabi\fR" 4
-.IX Item "-mfloat-abi=abi"
-Select which floating point \s-1ABI\s0 is in use.
-.IP "\fB\-mthumb\fR" 4
-.IX Item "-mthumb"
-Enable Thumb only instruction decoding.
-.IP "\fB\-mapcs\-32 | \-mapcs\-26 | \-mapcs\-float | \-mapcs\-reentrant\fR" 4
-.IX Item "-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant"
-Select which procedure calling convention is in use.
-.IP "\fB\-EB | \-EL\fR" 4
-.IX Item "-EB | -EL"
-Select either big-endian (\-EB) or little-endian (\-EL) output.
-.IP "\fB\-mthumb\-interwork\fR" 4
-.IX Item "-mthumb-interwork"
-Specify that the code has been generated with interworking between Thumb and
-\&\s-1ARM\s0 code in mind.
-.IP "\fB\-k\fR" 4
-.IX Item "-k"
-Specify that \s-1PIC\s0 code has been generated.
-.PP
-The following options are available when as is configured for
-the Blackfin processor family.
-.IP "\fB\-mcpu=\fR\fIprocessor\fR[\fB\-\fR\fIsirevision\fR]" 4
-.IX Item "-mcpu=processor[-sirevision]"
-This option specifies the target processor.  The optional \fIsirevision\fR
-is not used in assembler.  It's here such that \s-1GCC\s0 can easily pass down its
-\&\f(CW\*(C`\-mcpu=\*(C'\fR option.  The assembler will issue an
-error message if an attempt is made to assemble an instruction which
-will not execute on the target processor.  The following processor names are
-recognized:
-\&\f(CW\*(C`bf504\*(C'\fR,
-\&\f(CW\*(C`bf506\*(C'\fR,
-\&\f(CW\*(C`bf512\*(C'\fR,
-\&\f(CW\*(C`bf514\*(C'\fR,
-\&\f(CW\*(C`bf516\*(C'\fR,
-\&\f(CW\*(C`bf518\*(C'\fR,
-\&\f(CW\*(C`bf522\*(C'\fR,
-\&\f(CW\*(C`bf523\*(C'\fR,
-\&\f(CW\*(C`bf524\*(C'\fR,
-\&\f(CW\*(C`bf525\*(C'\fR,
-\&\f(CW\*(C`bf526\*(C'\fR,
-\&\f(CW\*(C`bf527\*(C'\fR,
-\&\f(CW\*(C`bf531\*(C'\fR,
-\&\f(CW\*(C`bf532\*(C'\fR,
-\&\f(CW\*(C`bf533\*(C'\fR,
-\&\f(CW\*(C`bf534\*(C'\fR,
-\&\f(CW\*(C`bf535\*(C'\fR (not implemented yet),
-\&\f(CW\*(C`bf536\*(C'\fR,
-\&\f(CW\*(C`bf537\*(C'\fR,
-\&\f(CW\*(C`bf538\*(C'\fR,
-\&\f(CW\*(C`bf539\*(C'\fR,
-\&\f(CW\*(C`bf542\*(C'\fR,
-\&\f(CW\*(C`bf542m\*(C'\fR,
-\&\f(CW\*(C`bf544\*(C'\fR,
-\&\f(CW\*(C`bf544m\*(C'\fR,
-\&\f(CW\*(C`bf547\*(C'\fR,
-\&\f(CW\*(C`bf547m\*(C'\fR,
-\&\f(CW\*(C`bf548\*(C'\fR,
-\&\f(CW\*(C`bf548m\*(C'\fR,
-\&\f(CW\*(C`bf549\*(C'\fR,
-\&\f(CW\*(C`bf549m\*(C'\fR,
-\&\f(CW\*(C`bf561\*(C'\fR,
-and
-\&\f(CW\*(C`bf592\*(C'\fR.
-.IP "\fB\-mfdpic\fR" 4
-.IX Item "-mfdpic"
-Assemble for the \s-1FDPIC\s0 \s-1ABI\s0.
-.IP "\fB\-mno\-fdpic\fR" 4
-.IX Item "-mno-fdpic"
-.PD 0
-.IP "\fB\-mnopic\fR" 4
-.IX Item "-mnopic"
-.PD
-Disable \-mfdpic.
-.PP
-See the info pages for documentation of the CRIS-specific options.
-.PP
-The following options are available when as is configured for
-a D10V processor.
-.IP "\fB\-O\fR" 4
-.IX Item "-O"
-Optimize output by parallelizing instructions.
-.PP
-The following options are available when as is configured for a D30V
-processor.
-.IP "\fB\-O\fR" 4
-.IX Item "-O"
-Optimize output by parallelizing instructions.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-Warn when nops are generated.
-.IP "\fB\-N\fR" 4
-.IX Item "-N"
-Warn when a nop after a 32\-bit multiply instruction is generated.
-.PP
-The following options are available when as is configured for
-an Epiphany processor.
-.IP "\fB\-mepiphany\fR" 4
-.IX Item "-mepiphany"
-Specifies that the both 32 and 16 bit instructions are allowed.  This is the
-default behavior.
-.IP "\fB\-mepiphany16\fR" 4
-.IX Item "-mepiphany16"
-Restricts the permitted instructions to just the 16 bit set.
-.PP
-The following options are available when as is configured for an H8/300
-processor.
-\&\f(CW@chapter\fR H8/300 Dependent Features
-.SS "Options"
-.IX Subsection "Options"
-The Renesas H8/300 version of \f(CW\*(C`as\*(C'\fR has one
-machine-dependent option:
-.IP "\fB\-h\-tick\-hex\fR" 4
-.IX Item "-h-tick-hex"
-Support H'00 style hex constants in addition to 0x00 style.
-.PP
-The following options are available when as is configured for
-an i386 processor.
-.IP "\fB\-\-32 | \-\-x32 | \-\-64\fR" 4
-.IX Item "--32 | --x32 | --64"
-Select the word size, either 32 bits or 64 bits.  \fB\-\-32\fR
-implies Intel i386 architecture, while \fB\-\-x32\fR and \fB\-\-64\fR
-imply \s-1AMD\s0 x86\-64 architecture with 32\-bit or 64\-bit word-size
-respectively.
-.Sp
-These options are only available with the \s-1ELF\s0 object file format, and
-require that the necessary \s-1BFD\s0 support has been included (on a 32\-bit
-platform you have to add \-\-enable\-64\-bit\-bfd to configure enable 64\-bit
-usage and use x86\-64 as target platform).
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-By default, x86 \s-1GAS\s0 replaces multiple nop instructions used for
-alignment within code sections with multi-byte nop instructions such
-as leal 0(%esi,1),%esi.  This switch disables the optimization.
-.IP "\fB\-\-divide\fR" 4
-.IX Item "--divide"
-On SVR4\-derived platforms, the character \fB/\fR is treated as a comment
-character, which means that it cannot be used in expressions.  The
-\&\fB\-\-divide\fR option turns \fB/\fR into a normal character.  This does
-not disable \fB/\fR at the beginning of a line starting a comment, or
-affect using \fB#\fR for starting a comment.
-.IP "\fB\-march=\fR\fI\s-1CPU\s0\fR\fB[+\fR\fI\s-1EXTENSION\s0\fR\fB...]\fR" 4
-.IX Item "-march=CPU[+EXTENSION...]"
-This option specifies the target processor.  The assembler will
-issue an error message if an attempt is made to assemble an instruction
-which will not execute on the target processor.  The following
-processor names are recognized:
-\&\f(CW\*(C`i8086\*(C'\fR,
-\&\f(CW\*(C`i186\*(C'\fR,
-\&\f(CW\*(C`i286\*(C'\fR,
-\&\f(CW\*(C`i386\*(C'\fR,
-\&\f(CW\*(C`i486\*(C'\fR,
-\&\f(CW\*(C`i586\*(C'\fR,
-\&\f(CW\*(C`i686\*(C'\fR,
-\&\f(CW\*(C`pentium\*(C'\fR,
-\&\f(CW\*(C`pentiumpro\*(C'\fR,
-\&\f(CW\*(C`pentiumii\*(C'\fR,
-\&\f(CW\*(C`pentiumiii\*(C'\fR,
-\&\f(CW\*(C`pentium4\*(C'\fR,
-\&\f(CW\*(C`prescott\*(C'\fR,
-\&\f(CW\*(C`nocona\*(C'\fR,
-\&\f(CW\*(C`core\*(C'\fR,
-\&\f(CW\*(C`core2\*(C'\fR,
-\&\f(CW\*(C`corei7\*(C'\fR,
-\&\f(CW\*(C`l1om\*(C'\fR,
-\&\f(CW\*(C`k1om\*(C'\fR,
-\&\f(CW\*(C`k6\*(C'\fR,
-\&\f(CW\*(C`k6_2\*(C'\fR,
-\&\f(CW\*(C`athlon\*(C'\fR,
-\&\f(CW\*(C`opteron\*(C'\fR,
-\&\f(CW\*(C`k8\*(C'\fR,
-\&\f(CW\*(C`amdfam10\*(C'\fR,
-\&\f(CW\*(C`bdver1\*(C'\fR,
-\&\f(CW\*(C`bdver2\*(C'\fR,
-\&\f(CW\*(C`bdver3\*(C'\fR,
-\&\f(CW\*(C`btver1\*(C'\fR,
-\&\f(CW\*(C`btver2\*(C'\fR,
-\&\f(CW\*(C`generic32\*(C'\fR and
-\&\f(CW\*(C`generic64\*(C'\fR.
-.Sp
-In addition to the basic instruction set, the assembler can be told to
-accept various extension mnemonics.  For example,
-\&\f(CW\*(C`\-march=i686+sse4+vmx\*(C'\fR extends \fIi686\fR with \fIsse4\fR and
-\&\fIvmx\fR.  The following extensions are currently supported:
-\&\f(CW8087\fR,
-\&\f(CW287\fR,
-\&\f(CW387\fR,
-\&\f(CW\*(C`no87\*(C'\fR,
-\&\f(CW\*(C`mmx\*(C'\fR,
-\&\f(CW\*(C`nommx\*(C'\fR,
-\&\f(CW\*(C`sse\*(C'\fR,
-\&\f(CW\*(C`sse2\*(C'\fR,
-\&\f(CW\*(C`sse3\*(C'\fR,
-\&\f(CW\*(C`ssse3\*(C'\fR,
-\&\f(CW\*(C`sse4.1\*(C'\fR,
-\&\f(CW\*(C`sse4.2\*(C'\fR,
-\&\f(CW\*(C`sse4\*(C'\fR,
-\&\f(CW\*(C`nosse\*(C'\fR,
-\&\f(CW\*(C`avx\*(C'\fR,
-\&\f(CW\*(C`avx2\*(C'\fR,
-\&\f(CW\*(C`adx\*(C'\fR,
-\&\f(CW\*(C`rdseed\*(C'\fR,
-\&\f(CW\*(C`prfchw\*(C'\fR,
-\&\f(CW\*(C`smap\*(C'\fR,
-\&\f(CW\*(C`mpx\*(C'\fR,
-\&\f(CW\*(C`sha\*(C'\fR,
-\&\f(CW\*(C`avx512f\*(C'\fR,
-\&\f(CW\*(C`avx512cd\*(C'\fR,
-\&\f(CW\*(C`avx512er\*(C'\fR,
-\&\f(CW\*(C`avx512pf\*(C'\fR,
-\&\f(CW\*(C`noavx\*(C'\fR,
-\&\f(CW\*(C`vmx\*(C'\fR,
-\&\f(CW\*(C`vmfunc\*(C'\fR,
-\&\f(CW\*(C`smx\*(C'\fR,
-\&\f(CW\*(C`xsave\*(C'\fR,
-\&\f(CW\*(C`xsaveopt\*(C'\fR,
-\&\f(CW\*(C`aes\*(C'\fR,
-\&\f(CW\*(C`pclmul\*(C'\fR,
-\&\f(CW\*(C`fsgsbase\*(C'\fR,
-\&\f(CW\*(C`rdrnd\*(C'\fR,
-\&\f(CW\*(C`f16c\*(C'\fR,
-\&\f(CW\*(C`bmi2\*(C'\fR,
-\&\f(CW\*(C`fma\*(C'\fR,
-\&\f(CW\*(C`movbe\*(C'\fR,
-\&\f(CW\*(C`ept\*(C'\fR,
-\&\f(CW\*(C`lzcnt\*(C'\fR,
-\&\f(CW\*(C`hle\*(C'\fR,
-\&\f(CW\*(C`rtm\*(C'\fR,
-\&\f(CW\*(C`invpcid\*(C'\fR,
-\&\f(CW\*(C`clflush\*(C'\fR,
-\&\f(CW\*(C`lwp\*(C'\fR,
-\&\f(CW\*(C`fma4\*(C'\fR,
-\&\f(CW\*(C`xop\*(C'\fR,
-\&\f(CW\*(C`cx16\*(C'\fR,
-\&\f(CW\*(C`syscall\*(C'\fR,
-\&\f(CW\*(C`rdtscp\*(C'\fR,
-\&\f(CW\*(C`3dnow\*(C'\fR,
-\&\f(CW\*(C`3dnowa\*(C'\fR,
-\&\f(CW\*(C`sse4a\*(C'\fR,
-\&\f(CW\*(C`sse5\*(C'\fR,
-\&\f(CW\*(C`svme\*(C'\fR,
-\&\f(CW\*(C`abm\*(C'\fR and
-\&\f(CW\*(C`padlock\*(C'\fR.
-Note that rather than extending a basic instruction set, the extension
-mnemonics starting with \f(CW\*(C`no\*(C'\fR revoke the respective functionality.
-.Sp
-When the \f(CW\*(C`.arch\*(C'\fR directive is used with \fB\-march\fR, the
-\&\f(CW\*(C`.arch\*(C'\fR directive will take precedent.
-.IP "\fB\-mtune=\fR\fI\s-1CPU\s0\fR" 4
-.IX Item "-mtune=CPU"
-This option specifies a processor to optimize for. When used in
-conjunction with the \fB\-march\fR option, only instructions
-of the processor specified by the \fB\-march\fR option will be
-generated.
-.Sp
-Valid \fI\s-1CPU\s0\fR values are identical to the processor list of
-\&\fB\-march=\fR\fI\s-1CPU\s0\fR.
-.IP "\fB\-msse2avx\fR" 4
-.IX Item "-msse2avx"
-This option specifies that the assembler should encode \s-1SSE\s0 instructions
-with \s-1VEX\s0 prefix.
-.IP "\fB\-msse\-check=\fR\fInone\fR" 4
-.IX Item "-msse-check=none"
-.PD 0
-.IP "\fB\-msse\-check=\fR\fIwarning\fR" 4
-.IX Item "-msse-check=warning"
-.IP "\fB\-msse\-check=\fR\fIerror\fR" 4
-.IX Item "-msse-check=error"
-.PD
-These options control if the assembler should check \s-1SSE\s0 instructions.
-\&\fB\-msse\-check=\fR\fInone\fR will make the assembler not to check \s-1SSE\s0
-instructions,  which is the default.  \fB\-msse\-check=\fR\fIwarning\fR
-will make the assembler issue a warning for any \s-1SSE\s0 instruction.
-\&\fB\-msse\-check=\fR\fIerror\fR will make the assembler issue an error
-for any \s-1SSE\s0 instruction.
-.IP "\fB\-mavxscalar=\fR\fI128\fR" 4
-.IX Item "-mavxscalar=128"
-.PD 0
-.IP "\fB\-mavxscalar=\fR\fI256\fR" 4
-.IX Item "-mavxscalar=256"
-.PD
-These options control how the assembler should encode scalar \s-1AVX\s0
-instructions.  \fB\-mavxscalar=\fR\fI128\fR will encode scalar
-\&\s-1AVX\s0 instructions with 128bit vector length, which is the default.
-\&\fB\-mavxscalar=\fR\fI256\fR will encode scalar \s-1AVX\s0 instructions
-with 256bit vector length.
-.IP "\fB\-mevexlig=\fR\fI128\fR" 4
-.IX Item "-mevexlig=128"
-.PD 0
-.IP "\fB\-mevexlig=\fR\fI256\fR" 4
-.IX Item "-mevexlig=256"
-.IP "\fB\-mevexlig=\fR\fI512\fR" 4
-.IX Item "-mevexlig=512"
-.PD
-These options control how the assembler should encode length-ignored
-(\s-1LIG\s0) \s-1EVEX\s0 instructions.  \fB\-mevexlig=\fR\fI128\fR will encode \s-1LIG\s0
-\&\s-1EVEX\s0 instructions with 128bit vector length, which is the default.
-\&\fB\-mevexlig=\fR\fI256\fR and \fB\-mevexlig=\fR\fI512\fR will
-encode \s-1LIG\s0 \s-1EVEX\s0 instructions with 256bit and 512bit vector length,
-respectively.
-.IP "\fB\-mevexwig=\fR\fI0\fR" 4
-.IX Item "-mevexwig=0"
-.PD 0
-.IP "\fB\-mevexwig=\fR\fI1\fR" 4
-.IX Item "-mevexwig=1"
-.PD
-These options control how the assembler should encode w\-ignored (\s-1WIG\s0)
-\&\s-1EVEX\s0 instructions.  \fB\-mevexwig=\fR\fI0\fR will encode \s-1WIG\s0
-\&\s-1EVEX\s0 instructions with evex.w = 0, which is the default.
-\&\fB\-mevexwig=\fR\fI1\fR will encode \s-1WIG\s0 \s-1EVEX\s0 instructions with
-evex.w = 1.
-.IP "\fB\-mmnemonic=\fR\fIatt\fR" 4
-.IX Item "-mmnemonic=att"
-.PD 0
-.IP "\fB\-mmnemonic=\fR\fIintel\fR" 4
-.IX Item "-mmnemonic=intel"
-.PD
-This option specifies instruction mnemonic for matching instructions.
-The \f(CW\*(C`.att_mnemonic\*(C'\fR and \f(CW\*(C`.intel_mnemonic\*(C'\fR directives will
-take precedent.
-.IP "\fB\-msyntax=\fR\fIatt\fR" 4
-.IX Item "-msyntax=att"
-.PD 0
-.IP "\fB\-msyntax=\fR\fIintel\fR" 4
-.IX Item "-msyntax=intel"
-.PD
-This option specifies instruction syntax when processing instructions.
-The \f(CW\*(C`.att_syntax\*(C'\fR and \f(CW\*(C`.intel_syntax\*(C'\fR directives will
-take precedent.
-.IP "\fB\-mnaked\-reg\fR" 4
-.IX Item "-mnaked-reg"
-This opetion specifies that registers don't require a \fB%\fR prefix.
-The \f(CW\*(C`.att_syntax\*(C'\fR and \f(CW\*(C`.intel_syntax\*(C'\fR directives will take precedent.
-.IP "\fB\-madd\-bnd\-prefix\fR" 4
-.IX Item "-madd-bnd-prefix"
-This option forces the assembler to add \s-1BND\s0 prefix to all branches, even
-if such prefix was not explicitly specified in the source code.
-.PP
-The following options are available when as is configured for the
-Intel 80960 processor.
-.IP "\fB\-ACA | \-ACA_A | \-ACB | \-ACC | \-AKA | \-AKB | \-AKC | \-AMC\fR" 4
-.IX Item "-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC"
-Specify which variant of the 960 architecture is the target.
-.IP "\fB\-b\fR" 4
-.IX Item "-b"
-Add code to collect statistics about branches taken.
-.IP "\fB\-no\-relax\fR" 4
-.IX Item "-no-relax"
-Do not alter compare-and-branch instructions for long displacements;
-error if necessary.
-.PP
-The following options are available when as is configured for the
-Ubicom \s-1IP2K\s0 series.
-.IP "\fB\-mip2022ext\fR" 4
-.IX Item "-mip2022ext"
-Specifies that the extended \s-1IP2022\s0 instructions are allowed.
-.IP "\fB\-mip2022\fR" 4
-.IX Item "-mip2022"
-Restores the default behaviour, which restricts the permitted instructions to
-just the basic \s-1IP2022\s0 ones.
-.PP
-The following options are available when as is configured for the
-Renesas M32C and M16C processors.
-.IP "\fB\-m32c\fR" 4
-.IX Item "-m32c"
-Assemble M32C instructions.
-.IP "\fB\-m16c\fR" 4
-.IX Item "-m16c"
-Assemble M16C instructions (the default).
-.IP "\fB\-relax\fR" 4
-.IX Item "-relax"
-Enable support for link-time relaxations.
-.IP "\fB\-h\-tick\-hex\fR" 4
-.IX Item "-h-tick-hex"
-Support H'00 style hex constants in addition to 0x00 style.
-.PP
-The following options are available when as is configured for the
-Renesas M32R (formerly Mitsubishi M32R) series.
-.IP "\fB\-\-m32rx\fR" 4
-.IX Item "--m32rx"
-Specify which processor in the M32R family is the target.  The default
-is normally the M32R, but this option changes it to the M32RX.
-.IP "\fB\-\-warn\-explicit\-parallel\-conflicts or \-\-Wp\fR" 4
-.IX Item "--warn-explicit-parallel-conflicts or --Wp"
-Produce warning messages when questionable parallel constructs are
-encountered.
-.IP "\fB\-\-no\-warn\-explicit\-parallel\-conflicts or \-\-Wnp\fR" 4
-.IX Item "--no-warn-explicit-parallel-conflicts or --Wnp"
-Do not produce warning messages when questionable parallel constructs are
-encountered.
-.PP
-The following options are available when as is configured for the
-Motorola 68000 series.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-Shorten references to undefined symbols, to one word instead of two.
-.IP "\fB\-m68000 | \-m68008 | \-m68010 | \-m68020 | \-m68030\fR" 4
-.IX Item "-m68000 | -m68008 | -m68010 | -m68020 | -m68030"
-.PD 0
-.IP "\fB| \-m68040 | \-m68060 | \-m68302 | \-m68331 | \-m68332\fR" 4
-.IX Item "| -m68040 | -m68060 | -m68302 | -m68331 | -m68332"
-.IP "\fB| \-m68333 | \-m68340 | \-mcpu32 | \-m5200\fR" 4
-.IX Item "| -m68333 | -m68340 | -mcpu32 | -m5200"
-.PD
-Specify what processor in the 68000 family is the target.  The default
-is normally the 68020, but this can be changed at configuration time.
-.IP "\fB\-m68881 | \-m68882 | \-mno\-68881 | \-mno\-68882\fR" 4
-.IX Item "-m68881 | -m68882 | -mno-68881 | -mno-68882"
-The target machine does (or does not) have a floating-point coprocessor.
-The default is to assume a coprocessor for 68020, 68030, and cpu32.  Although
-the basic 68000 is not compatible with the 68881, a combination of the
-two can be specified, since it's possible to do emulation of the
-coprocessor instructions with the main processor.
-.IP "\fB\-m68851 | \-mno\-68851\fR" 4
-.IX Item "-m68851 | -mno-68851"
-The target machine does (or does not) have a memory-management
-unit coprocessor.  The default is to assume an \s-1MMU\s0 for 68020 and up.
-.PP
-The following options are available when as is configured for an
-Altera Nios \s-1II\s0 processor.
-.IP "\fB\-relax\-section\fR" 4
-.IX Item "-relax-section"
-Replace identified out-of-range branches with PC-relative \f(CW\*(C`jmp\*(C'\fR
-sequences when possible.  The generated code sequences are suitable
-for use in position-independent code, but there is a practical limit
-on the extended branch range because of the length of the sequences.
-This option is the default.
-.IP "\fB\-relax\-all\fR" 4
-.IX Item "-relax-all"
-Replace branch instructions not determinable to be in range
-and all call instructions with \f(CW\*(C`jmp\*(C'\fR and \f(CW\*(C`callr\*(C'\fR sequences
-(respectively).  This option generates absolute relocations against the
-target symbols and is not appropriate for position-independent code.
-.IP "\fB\-no\-relax\fR" 4
-.IX Item "-no-relax"
-Do not replace any branches or calls.
-.IP "\fB\-EB\fR" 4
-.IX Item "-EB"
-Generate big-endian output.
-.IP "\fB\-EL\fR" 4
-.IX Item "-EL"
-Generate little-endian output.  This is the default.
-.PP
-The following options are available when as is configured for a
-Meta processor.
-.ie n .IP """\-mcpu=metac11""" 4
-.el .IP "\f(CW\-mcpu=metac11\fR" 4
-.IX Item "-mcpu=metac11"
-Generate code for Meta 1.1.
-.ie n .IP """\-mcpu=metac12""" 4
-.el .IP "\f(CW\-mcpu=metac12\fR" 4
-.IX Item "-mcpu=metac12"
-Generate code for Meta 1.2.
-.ie n .IP """\-mcpu=metac21""" 4
-.el .IP "\f(CW\-mcpu=metac21\fR" 4
-.IX Item "-mcpu=metac21"
-Generate code for Meta 2.1.
-.ie n .IP """\-mfpu=metac21""" 4
-.el .IP "\f(CW\-mfpu=metac21\fR" 4
-.IX Item "-mfpu=metac21"
-Allow code to use \s-1FPU\s0 hardware of Meta 2.1.
-.PP
-See the info pages for documentation of the MMIX-specific options.
-.PP
-The following options are available when as is configured for a
-PowerPC processor.
-.IP "\fB\-a32\fR" 4
-.IX Item "-a32"
-Generate \s-1ELF32\s0 or \s-1XCOFF32\s0.
-.IP "\fB\-a64\fR" 4
-.IX Item "-a64"
-Generate \s-1ELF64\s0 or \s-1XCOFF64\s0.
-.IP "\fB\-K \s-1PIC\s0\fR" 4
-.IX Item "-K PIC"
-Set \s-1EF_PPC_RELOCATABLE_LIB\s0 in \s-1ELF\s0 flags.
-.IP "\fB\-mpwrx | \-mpwr2\fR" 4
-.IX Item "-mpwrx | -mpwr2"
-Generate code for \s-1POWER/2\s0 (\s-1RIOS2\s0).
-.IP "\fB\-mpwr\fR" 4
-.IX Item "-mpwr"
-Generate code for \s-1POWER\s0 (\s-1RIOS1\s0)
-.IP "\fB\-m601\fR" 4
-.IX Item "-m601"
-Generate code for PowerPC 601.
-.IP "\fB\-mppc, \-mppc32, \-m603, \-m604\fR" 4
-.IX Item "-mppc, -mppc32, -m603, -m604"
-Generate code for PowerPC 603/604.
-.IP "\fB\-m403, \-m405\fR" 4
-.IX Item "-m403, -m405"
-Generate code for PowerPC 403/405.
-.IP "\fB\-m440\fR" 4
-.IX Item "-m440"
-Generate code for PowerPC 440.  BookE and some 405 instructions.
-.IP "\fB\-m464\fR" 4
-.IX Item "-m464"
-Generate code for PowerPC 464.
-.IP "\fB\-m476\fR" 4
-.IX Item "-m476"
-Generate code for PowerPC 476.
-.IP "\fB\-m7400, \-m7410, \-m7450, \-m7455\fR" 4
-.IX Item "-m7400, -m7410, -m7450, -m7455"
-Generate code for PowerPC 7400/7410/7450/7455.
-.IP "\fB\-m750cl\fR" 4
-.IX Item "-m750cl"
-Generate code for PowerPC 750CL.
-.IP "\fB\-mppc64, \-m620\fR" 4
-.IX Item "-mppc64, -m620"
-Generate code for PowerPC 620/625/630.
-.IP "\fB\-me500, \-me500x2\fR" 4
-.IX Item "-me500, -me500x2"
-Generate code for Motorola e500 core complex.
-.IP "\fB\-me500mc\fR" 4
-.IX Item "-me500mc"
-Generate code for Freescale e500mc core complex.
-.IP "\fB\-me500mc64\fR" 4
-.IX Item "-me500mc64"
-Generate code for Freescale e500mc64 core complex.
-.IP "\fB\-me5500\fR" 4
-.IX Item "-me5500"
-Generate code for Freescale e5500 core complex.
-.IP "\fB\-me6500\fR" 4
-.IX Item "-me6500"
-Generate code for Freescale e6500 core complex.
-.IP "\fB\-mspe\fR" 4
-.IX Item "-mspe"
-Generate code for Motorola \s-1SPE\s0 instructions.
-.IP "\fB\-mtitan\fR" 4
-.IX Item "-mtitan"
-Generate code for AppliedMicro Titan core complex.
-.IP "\fB\-mppc64bridge\fR" 4
-.IX Item "-mppc64bridge"
-Generate code for PowerPC 64, including bridge insns.
-.IP "\fB\-mbooke\fR" 4
-.IX Item "-mbooke"
-Generate code for 32\-bit BookE.
-.IP "\fB\-ma2\fR" 4
-.IX Item "-ma2"
-Generate code for A2 architecture.
-.IP "\fB\-me300\fR" 4
-.IX Item "-me300"
-Generate code for PowerPC e300 family.
-.IP "\fB\-maltivec\fR" 4
-.IX Item "-maltivec"
-Generate code for processors with AltiVec instructions.
-.IP "\fB\-mvle\fR" 4
-.IX Item "-mvle"
-Generate code for Freescale PowerPC \s-1VLE\s0 instructions.
-.IP "\fB\-mvsx\fR" 4
-.IX Item "-mvsx"
-Generate code for processors with Vector-Scalar (\s-1VSX\s0) instructions.
-.IP "\fB\-mhtm\fR" 4
-.IX Item "-mhtm"
-Generate code for processors with Hardware Transactional Memory instructions.
-.IP "\fB\-mpower4, \-mpwr4\fR" 4
-.IX Item "-mpower4, -mpwr4"
-Generate code for Power4 architecture.
-.IP "\fB\-mpower5, \-mpwr5, \-mpwr5x\fR" 4
-.IX Item "-mpower5, -mpwr5, -mpwr5x"
-Generate code for Power5 architecture.
-.IP "\fB\-mpower6, \-mpwr6\fR" 4
-.IX Item "-mpower6, -mpwr6"
-Generate code for Power6 architecture.
-.IP "\fB\-mpower7, \-mpwr7\fR" 4
-.IX Item "-mpower7, -mpwr7"
-Generate code for Power7 architecture.
-.IP "\fB\-mpower8, \-mpwr8\fR" 4
-.IX Item "-mpower8, -mpwr8"
-Generate code for Power8 architecture.
-.IP "\fB\-mcell\fR" 4
-.IX Item "-mcell"
-.PD 0
-.IP "\fB\-mcell\fR" 4
-.IX Item "-mcell"
-.PD
-Generate code for Cell Broadband Engine architecture.
-.IP "\fB\-mcom\fR" 4
-.IX Item "-mcom"
-Generate code Power/PowerPC common instructions.
-.IP "\fB\-many\fR" 4
-.IX Item "-many"
-Generate code for any architecture (\s-1PWR/PWRX/PPC\s0).
-.IP "\fB\-mregnames\fR" 4
-.IX Item "-mregnames"
-Allow symbolic names for registers.
-.IP "\fB\-mno\-regnames\fR" 4
-.IX Item "-mno-regnames"
-Do not allow symbolic names for registers.
-.IP "\fB\-mrelocatable\fR" 4
-.IX Item "-mrelocatable"
-Support for \s-1GCC\s0's \-mrelocatable option.
-.IP "\fB\-mrelocatable\-lib\fR" 4
-.IX Item "-mrelocatable-lib"
-Support for \s-1GCC\s0's \-mrelocatable\-lib option.
-.IP "\fB\-memb\fR" 4
-.IX Item "-memb"
-Set \s-1PPC_EMB\s0 bit in \s-1ELF\s0 flags.
-.IP "\fB\-mlittle, \-mlittle\-endian, \-le\fR" 4
-.IX Item "-mlittle, -mlittle-endian, -le"
-Generate code for a little endian machine.
-.IP "\fB\-mbig, \-mbig\-endian, \-be\fR" 4
-.IX Item "-mbig, -mbig-endian, -be"
-Generate code for a big endian machine.
-.IP "\fB\-msolaris\fR" 4
-.IX Item "-msolaris"
-Generate code for Solaris.
-.IP "\fB\-mno\-solaris\fR" 4
-.IX Item "-mno-solaris"
-Do not generate code for Solaris.
-.IP "\fB\-nops=\fR\fIcount\fR" 4
-.IX Item "-nops=count"
-If an alignment directive inserts more than \fIcount\fR nops, put a
-branch at the beginning to skip execution of the nops.
-.PP
-See the info pages for documentation of the RX-specific options.
-.PP
-The following options are available when as is configured for the s390
-processor family.
-.IP "\fB\-m31\fR" 4
-.IX Item "-m31"
-.PD 0
-.IP "\fB\-m64\fR" 4
-.IX Item "-m64"
-.PD
-Select the word size, either 31/32 bits or 64 bits.
-.IP "\fB\-mesa\fR" 4
-.IX Item "-mesa"
-.PD 0
-.IP "\fB\-mzarch\fR" 4
-.IX Item "-mzarch"
-.PD
-Select the architecture mode, either the Enterprise System
-Architecture (esa) or the z/Architecture mode (zarch).
-.IP "\fB\-march=\fR\fIprocessor\fR" 4
-.IX Item "-march=processor"
-Specify which s390 processor variant is the target, \fBg6\fR, \fBg6\fR,
-\&\fBz900\fR, \fBz990\fR, \fBz9\-109\fR, \fBz9\-ec\fR, \fBz10\fR,
-\&\fBz196\fR, or \fBzEC12\fR.
-.IP "\fB\-mregnames\fR" 4
-.IX Item "-mregnames"
-.PD 0
-.IP "\fB\-mno\-regnames\fR" 4
-.IX Item "-mno-regnames"
-.PD
-Allow or disallow symbolic names for registers.
-.IP "\fB\-mwarn\-areg\-zero\fR" 4
-.IX Item "-mwarn-areg-zero"
-Warn whenever the operand for a base or index register has been specified
-but evaluates to zero.
-.PP
-The following options are available when as is configured for a
-\&\s-1TMS320C6000\s0 processor.
-.IP "\fB\-march=\fR\fIarch\fR" 4
-.IX Item "-march=arch"
-Enable (only) instructions from architecture \fIarch\fR.  By default,
-all instructions are permitted.
-.Sp
-The following values of \fIarch\fR are accepted: \f(CW\*(C`c62x\*(C'\fR,
-\&\f(CW\*(C`c64x\*(C'\fR, \f(CW\*(C`c64x+\*(C'\fR, \f(CW\*(C`c67x\*(C'\fR, \f(CW\*(C`c67x+\*(C'\fR, \f(CW\*(C`c674x\*(C'\fR.
-.IP "\fB\-mdsbt\fR" 4
-.IX Item "-mdsbt"
-.PD 0
-.IP "\fB\-mno\-dsbt\fR" 4
-.IX Item "-mno-dsbt"
-.PD
-The \fB\-mdsbt\fR option causes the assembler to generate the
-\&\f(CW\*(C`Tag_ABI_DSBT\*(C'\fR attribute with a value of 1, indicating that the
-code is using \s-1DSBT\s0 addressing.  The \fB\-mno\-dsbt\fR option, the
-default, causes the tag to have a value of 0, indicating that the code
-does not use \s-1DSBT\s0 addressing.  The linker will emit a warning if
-objects of different type (\s-1DSBT\s0 and non-DSBT) are linked together.
-.IP "\fB\-mpid=no\fR" 4
-.IX Item "-mpid=no"
-.PD 0
-.IP "\fB\-mpid=near\fR" 4
-.IX Item "-mpid=near"
-.IP "\fB\-mpid=far\fR" 4
-.IX Item "-mpid=far"
-.PD
-The \fB\-mpid=\fR option causes the assembler to generate the
-\&\f(CW\*(C`Tag_ABI_PID\*(C'\fR attribute with a value indicating the form of data
-addressing used by the code.  \fB\-mpid=no\fR, the default,
-indicates position-dependent data addressing, \fB\-mpid=near\fR
-indicates position-independent addressing with \s-1GOT\s0 accesses using near
-\&\s-1DP\s0 addressing, and \fB\-mpid=far\fR indicates position-independent
-addressing with \s-1GOT\s0 accesses using far \s-1DP\s0 addressing.  The linker will
-emit a warning if objects built with different settings of this option
-are linked together.
-.IP "\fB\-mpic\fR" 4
-.IX Item "-mpic"
-.PD 0
-.IP "\fB\-mno\-pic\fR" 4
-.IX Item "-mno-pic"
-.PD
-The \fB\-mpic\fR option causes the assembler to generate the
-\&\f(CW\*(C`Tag_ABI_PIC\*(C'\fR attribute with a value of 1, indicating that the
-code is using position-independent code addressing,  The
-\&\f(CW\*(C`\-mno\-pic\*(C'\fR option, the default, causes the tag to have a value of
-0, indicating position-dependent code addressing.  The linker will
-emit a warning if objects of different type (position-dependent and
-position-independent) are linked together.
-.IP "\fB\-mbig\-endian\fR" 4
-.IX Item "-mbig-endian"
-.PD 0
-.IP "\fB\-mlittle\-endian\fR" 4
-.IX Item "-mlittle-endian"
-.PD
-Generate code for the specified endianness.  The default is
-little-endian.
-.PP
-The following options are available when as is configured for a TILE-Gx
-processor.
-.IP "\fB\-m32 | \-m64\fR" 4
-.IX Item "-m32 | -m64"
-Select the word size, either 32 bits or 64 bits.
-.IP "\fB\-EB | \-EL\fR" 4
-.IX Item "-EB | -EL"
-Select the endianness, either big-endian (\-EB) or little-endian (\-EL).
-.PP
-The following options are available when as is configured for an
-Xtensa processor.
-.IP "\fB\-\-text\-section\-literals | \-\-no\-text\-section\-literals\fR" 4
-.IX Item "--text-section-literals | --no-text-section-literals"
-Control the treatment of literal pools.  The default is
-\&\fB\-\-no\-text\-section\-literals\fR, which places literals in
-separate sections in the output file.  This allows the literal pool to be
-placed in a data \s-1RAM/ROM\s0.  With \fB\-\-text\-section\-literals\fR, the
-literals are interspersed in the text section in order to keep them as
-close as possible to their references.  This may be necessary for large
-assembly files, where the literals would otherwise be out of range of the
-\&\f(CW\*(C`L32R\*(C'\fR instructions in the text section.  These options only affect
-literals referenced via PC-relative \f(CW\*(C`L32R\*(C'\fR instructions; literals
-for absolute mode \f(CW\*(C`L32R\*(C'\fR instructions are handled separately.
-.IP "\fB\-\-absolute\-literals | \-\-no\-absolute\-literals\fR" 4
-.IX Item "--absolute-literals | --no-absolute-literals"
-Indicate to the assembler whether \f(CW\*(C`L32R\*(C'\fR instructions use absolute
-or PC-relative addressing.  If the processor includes the absolute
-addressing option, the default is to use absolute \f(CW\*(C`L32R\*(C'\fR
-relocations.  Otherwise, only the PC-relative \f(CW\*(C`L32R\*(C'\fR relocations
-can be used.
-.IP "\fB\-\-target\-align | \-\-no\-target\-align\fR" 4
-.IX Item "--target-align | --no-target-align"
-Enable or disable automatic alignment to reduce branch penalties at some
-expense in code size.    This optimization is enabled by default.  Note
-that the assembler will always align instructions like \f(CW\*(C`LOOP\*(C'\fR that
-have fixed alignment requirements.
-.IP "\fB\-\-longcalls | \-\-no\-longcalls\fR" 4
-.IX Item "--longcalls | --no-longcalls"
-Enable or disable transformation of call instructions to allow calls
-across a greater range of addresses.    This option should be used when call
-targets can potentially be out of range.  It may degrade both code size
-and performance, but the linker can generally optimize away the
-unnecessary overhead when a call ends up within range.  The default is
-\&\fB\-\-no\-longcalls\fR.
-.IP "\fB\-\-transform | \-\-no\-transform\fR" 4
-.IX Item "--transform | --no-transform"
-Enable or disable all assembler transformations of Xtensa instructions,
-including both relaxation and optimization.  The default is
-\&\fB\-\-transform\fR; \fB\-\-no\-transform\fR should only be used in the
-rare cases when the instructions must be exactly as specified in the
-assembly source.  Using \fB\-\-no\-transform\fR causes out of range
-instruction operands to be errors.
-.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR" 4
-.IX Item "--rename-section oldname=newname"
-Rename the \fIoldname\fR section to \fInewname\fR.  This option can be used
-multiple times to rename multiple sections.
-.PP
-The following options are available when as is configured for
-a Z80 family processor.
-.IP "\fB\-z80\fR" 4
-.IX Item "-z80"
-Assemble for Z80 processor.
-.IP "\fB\-r800\fR" 4
-.IX Item "-r800"
-Assemble for R800 processor.
-.IP "\fB\-ignore\-undocumented\-instructions\fR" 4
-.IX Item "-ignore-undocumented-instructions"
-.PD 0
-.IP "\fB\-Wnud\fR" 4
-.IX Item "-Wnud"
-.PD
-Assemble undocumented Z80 instructions that also work on R800 without warning.
-.IP "\fB\-ignore\-unportable\-instructions\fR" 4
-.IX Item "-ignore-unportable-instructions"
-.PD 0
-.IP "\fB\-Wnup\fR" 4
-.IX Item "-Wnup"
-.PD
-Assemble all undocumented Z80 instructions without warning.
-.IP "\fB\-warn\-undocumented\-instructions\fR" 4
-.IX Item "-warn-undocumented-instructions"
-.PD 0
-.IP "\fB\-Wud\fR" 4
-.IX Item "-Wud"
-.PD
-Issue a warning for undocumented Z80 instructions that also work on R800.
-.IP "\fB\-warn\-unportable\-instructions\fR" 4
-.IX Item "-warn-unportable-instructions"
-.PD 0
-.IP "\fB\-Wup\fR" 4
-.IX Item "-Wup"
-.PD
-Issue a warning for undocumented Z80 instructions that do not work on R800.
-.IP "\fB\-forbid\-undocumented\-instructions\fR" 4
-.IX Item "-forbid-undocumented-instructions"
-.PD 0
-.IP "\fB\-Fud\fR" 4
-.IX Item "-Fud"
-.PD
-Treat all undocumented instructions as errors.
-.IP "\fB\-forbid\-unportable\-instructions\fR" 4
-.IX Item "-forbid-unportable-instructions"
-.PD 0
-.IP "\fB\-Fup\fR" 4
-.IX Item "-Fup"
-.PD
-Treat undocumented Z80 instructions that do not work on R800 as errors.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIgcc\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIbinutils\fR and \fIld\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991\-2013 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/share/man/man1/mips-qca-linux-uclibc-c++filt.1 b/share/man/man1/mips-qca-linux-uclibc-c++filt.1
deleted file mode 100644
index 9eb0b81..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-c++filt.1
+++ /dev/null
@@ -1,336 +0,0 @@
-.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "C++FILT 1"
-.TH C++FILT 1 "2013-11-18" "binutils-2.23.91" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-c++filt \- Demangle C++ and Java symbols.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-c++filt [\fB\-_\fR|\fB\-\-strip\-underscore\fR]
-        [\fB\-n\fR|\fB\-\-no\-strip\-underscore\fR]
-        [\fB\-p\fR|\fB\-\-no\-params\fR]
-        [\fB\-t\fR|\fB\-\-types\fR]
-        [\fB\-i\fR|\fB\-\-no\-verbose\fR]
-        [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
-        [\fB\-\-help\fR]  [\fB\-\-version\fR]  [\fIsymbol\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \*(C+ and Java languages provide function overloading, which means
-that you can write many functions with the same name, providing that
-each function takes parameters of different types.  In order to be
-able to distinguish these similarly named functions \*(C+ and Java
-encode them into a low-level assembler name which uniquely identifies
-each different version.  This process is known as \fImangling\fR. The
-\&\fBc++filt\fR
-[1]
-program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
-names into user-level names so that they can be read.
-.PP
-Every alphanumeric word (consisting of letters, digits, underscores,
-dollars, or periods) seen in the input is a potential mangled name.
-If the name decodes into a \*(C+ name, the \*(C+ name replaces the
-low-level name in the output, otherwise the original word is output.
-In this way you can pass an entire assembler source file, containing
-mangled names, through \fBc++filt\fR and see the same source file
-containing demangled names.
-.PP
-You can also use \fBc++filt\fR to decipher individual symbols by
-passing them on the command line:
-.PP
-.Vb 1
-\&        c++filt <symbol>
-.Ve
-.PP
-If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
-names from the standard input instead.  All the results are printed on
-the standard output.  The difference between reading names from the
-command line versus reading names from the standard input is that
-command line arguments are expected to be just mangled names and no
-checking is performed to separate them from surrounding text.  Thus
-for example:
-.PP
-.Vb 1
-\&        c++filt \-n _Z1fv
-.Ve
-.PP
-will work and demangle the name to \*(L"f()\*(R" whereas:
-.PP
-.Vb 1
-\&        c++filt \-n _Z1fv,
-.Ve
-.PP
-will not work.  (Note the extra comma at the end of the mangled
-name which makes it invalid).  This command however will work:
-.PP
-.Vb 1
-\&        echo _Z1fv, | c++filt \-n
-.Ve
-.PP
-and will display \*(L"f(),\*(R", i.e., the demangled name followed by a
-trailing comma.  This behaviour is because when the names are read
-from the standard input it is expected that they might be part of an
-assembler source file where there might be extra, extraneous
-characters trailing after a mangled name.  For example:
-.PP
-.Vb 1
-\&            .type   _Z1fv, @function
-.Ve
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-_\fR" 4
-.IX Item "-_"
-.PD 0
-.IP "\fB\-\-strip\-underscore\fR" 4
-.IX Item "--strip-underscore"
-.PD
-On some systems, both the C and \*(C+ compilers put an underscore in front
-of every name.  For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
-name \f(CW\*(C`_foo\*(C'\fR.  This option removes the initial underscore.  Whether
-\&\fBc++filt\fR removes the underscore by default is target dependent.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-no\-strip\-underscore\fR" 4
-.IX Item "--no-strip-underscore"
-.PD
-Do not remove the initial underscore.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-no\-params\fR" 4
-.IX Item "--no-params"
-.PD
-When demangling the name of a function, do not display the types of
-the function's parameters.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-types\fR" 4
-.IX Item "--types"
-.PD
-Attempt to demangle types as well as function names.  This is disabled
-by default since mangled types are normally only used internally in
-the compiler, and they can be confused with non-mangled names.  For example,
-a function called \*(L"a\*(R" treated as a mangled type name would be
-demangled to \*(L"signed char\*(R".
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-no\-verbose\fR" 4
-.IX Item "--no-verbose"
-.PD
-Do not include implementation details (if any) in the demangled
-output.
-.IP "\fB\-s\fR \fIformat\fR" 4
-.IX Item "-s format"
-.PD 0
-.IP "\fB\-\-format=\fR\fIformat\fR" 4
-.IX Item "--format=format"
-.PD
-\&\fBc++filt\fR can decode various methods of mangling, used by
-different compilers.  The argument to this option selects which
-method it uses:
-.RS 4
-.ie n .IP """auto""" 4
-.el .IP "\f(CWauto\fR" 4
-.IX Item "auto"
-Automatic selection based on executable (the default method)
-.ie n .IP """gnu""" 4
-.el .IP "\f(CWgnu\fR" 4
-.IX Item "gnu"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
-.ie n .IP """lucid""" 4
-.el .IP "\f(CWlucid\fR" 4
-.IX Item "lucid"
-the one used by the Lucid compiler (lcc)
-.ie n .IP """arm""" 4
-.el .IP "\f(CWarm\fR" 4
-.IX Item "arm"
-the one specified by the \*(C+ Annotated Reference Manual
-.ie n .IP """hp""" 4
-.el .IP "\f(CWhp\fR" 4
-.IX Item "hp"
-the one used by the \s-1HP\s0 compiler (aCC)
-.ie n .IP """edg""" 4
-.el .IP "\f(CWedg\fR" 4
-.IX Item "edg"
-the one used by the \s-1EDG\s0 compiler
-.ie n .IP """gnu\-v3""" 4
-.el .IP "\f(CWgnu\-v3\fR" 4
-.IX Item "gnu-v3"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
-.ie n .IP """java""" 4
-.el .IP "\f(CWjava\fR" 4
-.IX Item "java"
-the one used by the \s-1GNU\s0 Java compiler (gcj)
-.ie n .IP """gnat""" 4
-.el .IP "\f(CWgnat\fR" 4
-.IX Item "gnat"
-the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
-.RE
-.RS 4
-.RE
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the options to \fBc++filt\fR and exit.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-Print the version number of \fBc++filt\fR and exit.
-.IP "\fB@\fR\fIfile\fR" 4
-.IX Item "@file"
-Read command-line options from \fIfile\fR.  The options read are
-inserted in place of the original @\fIfile\fR option.  If \fIfile\fR
-does not exist, or cannot be read, then the option will be treated
-literally, and not removed.
-.Sp
-Options in \fIfile\fR are separated by whitespace.  A whitespace
-character may be included in an option by surrounding the entire
-option in either single or double quotes.  Any character (including a
-backslash) may be included by prefixing the character to be included
-with a backslash.  The \fIfile\fR may itself contain additional
-@\fIfile\fR options; any such options will be processed recursively.
-.SH "FOOTNOTES"
-.IX Header "FOOTNOTES"
-.IP "1." 4
-MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
-MS-DOS this program is named \fB\s-1CXXFILT\s0\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991\-2013 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/share/man/man1/mips-qca-linux-uclibc-cpp.1 b/share/man/man1/mips-qca-linux-uclibc-cpp.1
deleted file mode 100644
index 2f4065f..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-cpp.1
+++ /dev/null
@@ -1,992 +0,0 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "CPP 1"
-.TH CPP 1 "2013-04-12" "gcc-4.6.4" "GNU"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-cpp \- The C Preprocessor
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-cpp [\fB\-D\fR\fImacro\fR[=\fIdefn\fR]...] [\fB\-U\fR\fImacro\fR]
-    [\fB\-I\fR\fIdir\fR...] [\fB\-iquote\fR\fIdir\fR...]
-    [\fB\-W\fR\fIwarn\fR...]
-    [\fB\-M\fR|\fB\-MM\fR] [\fB\-MG\fR] [\fB\-MF\fR \fIfilename\fR]
-    [\fB\-MP\fR] [\fB\-MQ\fR \fItarget\fR...]
-    [\fB\-MT\fR \fItarget\fR...]
-    [\fB\-P\fR] [\fB\-fno\-working\-directory\fR]
-    [\fB\-x\fR \fIlanguage\fR] [\fB\-std=\fR\fIstandard\fR]
-    \fIinfile\fR \fIoutfile\fR
-.PP
-Only the most useful options are listed here; see below for the remainder.
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The C preprocessor, often known as \fIcpp\fR, is a \fImacro processor\fR
-that is used automatically by the C compiler to transform your program
-before compilation.  It is called a macro processor because it allows
-you to define \fImacros\fR, which are brief abbreviations for longer
-constructs.
-.PP
-The C preprocessor is intended to be used only with C, \*(C+, and
-Objective-C source code.  In the past, it has been abused as a general
-text processor.  It will choke on input which does not obey C's lexical
-rules.  For example, apostrophes will be interpreted as the beginning of
-character constants, and cause errors.  Also, you cannot rely on it
-preserving characteristics of the input which are not significant to
-C\-family languages.  If a Makefile is preprocessed, all the hard tabs
-will be removed, and the Makefile will not work.
-.PP
-Having said that, you can often get away with using cpp on things which
-are not C.  Other Algol-ish programming languages are often safe
-(Pascal, Ada, etc.) So is assembly, with caution.  \fB\-traditional\-cpp\fR
-mode preserves more white space, and is otherwise more permissive.  Many
-of the problems can be avoided by writing C or \*(C+ style comments
-instead of native language comments, and keeping macros simple.
-.PP
-Wherever possible, you should use a preprocessor geared to the language
-you are writing in.  Modern versions of the \s-1GNU\s0 assembler have macro
-facilities.  Most high level programming languages have their own
-conditional compilation and inclusion mechanism.  If all else fails,
-try a true general text processor, such as \s-1GNU\s0 M4.
-.PP
-C preprocessors vary in some details.  This manual discusses the \s-1GNU\s0 C
-preprocessor, which provides a small superset of the features of \s-1ISO\s0
-Standard C.  In its default mode, the \s-1GNU\s0 C preprocessor does not do a
-few things required by the standard.  These are features which are
-rarely, if ever, used, and may cause surprising changes to the meaning
-of a program which does not expect them.  To get strict \s-1ISO\s0 Standard C,
-you should use the \fB\-std=c90\fR, \fB\-std=c99\fR or
-\&\fB\-std=c1x\fR options, depending
-on which version of the standard you want.  To get all the mandatory
-diagnostics, you must also use \fB\-pedantic\fR.
-.PP
-This manual describes the behavior of the \s-1ISO\s0 preprocessor.  To
-minimize gratuitous differences, where the \s-1ISO\s0 preprocessor's
-behavior does not conflict with traditional semantics, the
-traditional preprocessor should behave the same way.  The various
-differences that do exist are detailed in the section \fBTraditional
-Mode\fR.
-.PP
-For clarity, unless noted otherwise, references to \fB\s-1CPP\s0\fR in this
-manual refer to \s-1GNU\s0 \s-1CPP\s0.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The C preprocessor expects two file names as arguments, \fIinfile\fR and
-\&\fIoutfile\fR.  The preprocessor reads \fIinfile\fR together with any
-other files it specifies with \fB#include\fR.  All the output generated
-by the combined input files is written in \fIoutfile\fR.
-.PP
-Either \fIinfile\fR or \fIoutfile\fR may be \fB\-\fR, which as
-\&\fIinfile\fR means to read from standard input and as \fIoutfile\fR
-means to write to standard output.  Also, if either file is omitted, it
-means the same as if \fB\-\fR had been specified for that file.
-.PP
-Unless otherwise noted, or the option ends in \fB=\fR, all options
-which take an argument may have that argument appear either immediately
-after the option, or with a space between option and argument:
-\&\fB\-Ifoo\fR and \fB\-I foo\fR have the same effect.
-.PP
-Many options have multi-letter names; therefore multiple single-letter
-options may \fInot\fR be grouped: \fB\-dM\fR is very different from
-\&\fB\-d\ \-M\fR.
-.IP "\fB\-D\fR \fIname\fR" 4
-.IX Item "-D name"
-Predefine \fIname\fR as a macro, with definition \f(CW1\fR.
-.IP "\fB\-D\fR \fIname\fR\fB=\fR\fIdefinition\fR" 4
-.IX Item "-D name=definition"
-The contents of \fIdefinition\fR are tokenized and processed as if
-they appeared during translation phase three in a \fB#define\fR
-directive.  In particular, the definition will be truncated by
-embedded newline characters.
-.Sp
-If you are invoking the preprocessor from a shell or shell-like
-program you may need to use the shell's quoting syntax to protect
-characters such as spaces that have a meaning in the shell syntax.
-.Sp
-If you wish to define a function-like macro on the command line, write
-its argument list with surrounding parentheses before the equals sign
-(if any).  Parentheses are meaningful to most shells, so you will need
-to quote the option.  With \fBsh\fR and \fBcsh\fR,
-\&\fB\-D'\fR\fIname\fR\fB(\fR\fIargs...\fR\fB)=\fR\fIdefinition\fR\fB'\fR works.
-.Sp
-\&\fB\-D\fR and \fB\-U\fR options are processed in the order they
-are given on the command line.  All \fB\-imacros\fR \fIfile\fR and
-\&\fB\-include\fR \fIfile\fR options are processed after all
-\&\fB\-D\fR and \fB\-U\fR options.
-.IP "\fB\-U\fR \fIname\fR" 4
-.IX Item "-U name"
-Cancel any previous definition of \fIname\fR, either built in or
-provided with a \fB\-D\fR option.
-.IP "\fB\-undef\fR" 4
-.IX Item "-undef"
-Do not predefine any system-specific or GCC-specific macros.  The
-standard predefined macros remain defined.
-.IP "\fB\-I\fR \fIdir\fR" 4
-.IX Item "-I dir"
-Add the directory \fIdir\fR to the list of directories to be searched
-for header files.
-.Sp
-Directories named by \fB\-I\fR are searched before the standard
-system include directories.  If the directory \fIdir\fR is a standard
-system include directory, the option is ignored to ensure that the
-default search order for system directories and the special treatment
-of system headers are not defeated
-\&.
-If \fIdir\fR begins with \f(CW\*(C`=\*(C'\fR, then the \f(CW\*(C`=\*(C'\fR will be replaced
-by the sysroot prefix; see \fB\-\-sysroot\fR and \fB\-isysroot\fR.
-.IP "\fB\-o\fR \fIfile\fR" 4
-.IX Item "-o file"
-Write output to \fIfile\fR.  This is the same as specifying \fIfile\fR
-as the second non-option argument to \fBcpp\fR.  \fBgcc\fR has a
-different interpretation of a second non-option argument, so you must
-use \fB\-o\fR to specify the output file.
-.IP "\fB\-Wall\fR" 4
-.IX Item "-Wall"
-Turns on all optional warnings which are desirable for normal code.
-At present this is \fB\-Wcomment\fR, \fB\-Wtrigraphs\fR,
-\&\fB\-Wmultichar\fR and a warning about integer promotion causing a
-change of sign in \f(CW\*(C`#if\*(C'\fR expressions.  Note that many of the
-preprocessor's warnings are on by default and have no options to
-control them.
-.IP "\fB\-Wcomment\fR" 4
-.IX Item "-Wcomment"
-.PD 0
-.IP "\fB\-Wcomments\fR" 4
-.IX Item "-Wcomments"
-.PD
-Warn whenever a comment-start sequence \fB/*\fR appears in a \fB/*\fR
-comment, or whenever a backslash-newline appears in a \fB//\fR comment.
-(Both forms have the same effect.)
-.IP "\fB\-Wtrigraphs\fR" 4
-.IX Item "-Wtrigraphs"
-Most trigraphs in comments cannot affect the meaning of the program.
-However, a trigraph that would form an escaped newline (\fB??/\fR at
-the end of a line) can, by changing where the comment begins or ends.
-Therefore, only trigraphs that would form escaped newlines produce
-warnings inside a comment.
-.Sp
-This option is implied by \fB\-Wall\fR.  If \fB\-Wall\fR is not
-given, this option is still enabled unless trigraphs are enabled.  To
-get trigraph conversion without warnings, but get the other
-\&\fB\-Wall\fR warnings, use \fB\-trigraphs \-Wall \-Wno\-trigraphs\fR.
-.IP "\fB\-Wtraditional\fR" 4
-.IX Item "-Wtraditional"
-Warn about certain constructs that behave differently in traditional and
-\&\s-1ISO\s0 C.  Also warn about \s-1ISO\s0 C constructs that have no traditional C
-equivalent, and problematic constructs which should be avoided.
-.IP "\fB\-Wundef\fR" 4
-.IX Item "-Wundef"
-Warn whenever an identifier which is not a macro is encountered in an
-\&\fB#if\fR directive, outside of \fBdefined\fR.  Such identifiers are
-replaced with zero.
-.IP "\fB\-Wunused\-macros\fR" 4
-.IX Item "-Wunused-macros"
-Warn about macros defined in the main file that are unused.  A macro
-is \fIused\fR if it is expanded or tested for existence at least once.
-The preprocessor will also warn if the macro has not been used at the
-time it is redefined or undefined.
-.Sp
-Built-in macros, macros defined on the command line, and macros
-defined in include files are not warned about.
-.Sp
-\&\fINote:\fR If a macro is actually used, but only used in skipped
-conditional blocks, then \s-1CPP\s0 will report it as unused.  To avoid the
-warning in such a case, you might improve the scope of the macro's
-definition by, for example, moving it into the first skipped block.
-Alternatively, you could provide a dummy use with something like:
-.Sp
-.Vb 2
-\&        #if defined the_macro_causing_the_warning
-\&        #endif
-.Ve
-.IP "\fB\-Wendif\-labels\fR" 4
-.IX Item "-Wendif-labels"
-Warn whenever an \fB#else\fR or an \fB#endif\fR are followed by text.
-This usually happens in code of the form
-.Sp
-.Vb 5
-\&        #if FOO
-\&        ...
-\&        #else FOO
-\&        ...
-\&        #endif FOO
-.Ve
-.Sp
-The second and third \f(CW\*(C`FOO\*(C'\fR should be in comments, but often are not
-in older programs.  This warning is on by default.
-.IP "\fB\-Werror\fR" 4
-.IX Item "-Werror"
-Make all warnings into hard errors.  Source code which triggers warnings
-will be rejected.
-.IP "\fB\-Wsystem\-headers\fR" 4
-.IX Item "-Wsystem-headers"
-Issue warnings for code in system headers.  These are normally unhelpful
-in finding bugs in your own code, therefore suppressed.  If you are
-responsible for the system library, you may want to see them.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-Suppress all warnings, including those which \s-1GNU\s0 \s-1CPP\s0 issues by default.
-.IP "\fB\-pedantic\fR" 4
-.IX Item "-pedantic"
-Issue all the mandatory diagnostics listed in the C standard.  Some of
-them are left out by default, since they trigger frequently on harmless
-code.
-.IP "\fB\-pedantic\-errors\fR" 4
-.IX Item "-pedantic-errors"
-Issue all the mandatory diagnostics, and make all mandatory diagnostics
-into errors.  This includes mandatory diagnostics that \s-1GCC\s0 issues
-without \fB\-pedantic\fR but treats as warnings.
-.IP "\fB\-M\fR" 4
-.IX Item "-M"
-Instead of outputting the result of preprocessing, output a rule
-suitable for \fBmake\fR describing the dependencies of the main
-source file.  The preprocessor outputs one \fBmake\fR rule containing
-the object file name for that source file, a colon, and the names of all
-the included files, including those coming from \fB\-include\fR or
-\&\fB\-imacros\fR command line options.
-.Sp
-Unless specified explicitly (with \fB\-MT\fR or \fB\-MQ\fR), the
-object file name consists of the name of the source file with any
-suffix replaced with object file suffix and with any leading directory
-parts removed.  If there are many included files then the rule is
-split into several lines using \fB\e\fR\-newline.  The rule has no
-commands.
-.Sp
-This option does not suppress the preprocessor's debug output, such as
-\&\fB\-dM\fR.  To avoid mixing such debug output with the dependency
-rules you should explicitly specify the dependency output file with
-\&\fB\-MF\fR, or use an environment variable like
-\&\fB\s-1DEPENDENCIES_OUTPUT\s0\fR.  Debug output
-will still be sent to the regular output stream as normal.
-.Sp
-Passing \fB\-M\fR to the driver implies \fB\-E\fR, and suppresses
-warnings with an implicit \fB\-w\fR.
-.IP "\fB\-MM\fR" 4
-.IX Item "-MM"
-Like \fB\-M\fR but do not mention header files that are found in
-system header directories, nor header files that are included,
-directly or indirectly, from such a header.
-.Sp
-This implies that the choice of angle brackets or double quotes in an
-\&\fB#include\fR directive does not in itself determine whether that
-header will appear in \fB\-MM\fR dependency output.  This is a
-slight change in semantics from \s-1GCC\s0 versions 3.0 and earlier.
-.IP "\fB\-MF\fR \fIfile\fR" 4
-.IX Item "-MF file"
-When used with \fB\-M\fR or \fB\-MM\fR, specifies a
-file to write the dependencies to.  If no \fB\-MF\fR switch is given
-the preprocessor sends the rules to the same place it would have sent
-preprocessed output.
-.Sp
-When used with the driver options \fB\-MD\fR or \fB\-MMD\fR,
-\&\fB\-MF\fR overrides the default dependency output file.
-.IP "\fB\-MG\fR" 4
-.IX Item "-MG"
-In conjunction with an option such as \fB\-M\fR requesting
-dependency generation, \fB\-MG\fR assumes missing header files are
-generated files and adds them to the dependency list without raising
-an error.  The dependency filename is taken directly from the
-\&\f(CW\*(C`#include\*(C'\fR directive without prepending any path.  \fB\-MG\fR
-also suppresses preprocessed output, as a missing header file renders
-this useless.
-.Sp
-This feature is used in automatic updating of makefiles.
-.IP "\fB\-MP\fR" 4
-.IX Item "-MP"
-This option instructs \s-1CPP\s0 to add a phony target for each dependency
-other than the main file, causing each to depend on nothing.  These
-dummy rules work around errors \fBmake\fR gives if you remove header
-files without updating the \fIMakefile\fR to match.
-.Sp
-This is typical output:
-.Sp
-.Vb 1
-\&        test.o: test.c test.h
-\&        
-\&        test.h:
-.Ve
-.IP "\fB\-MT\fR \fItarget\fR" 4
-.IX Item "-MT target"
-Change the target of the rule emitted by dependency generation.  By
-default \s-1CPP\s0 takes the name of the main input file, deletes any
-directory components and any file suffix such as \fB.c\fR, and
-appends the platform's usual object suffix.  The result is the target.
-.Sp
-An \fB\-MT\fR option will set the target to be exactly the string you
-specify.  If you want multiple targets, you can specify them as a single
-argument to \fB\-MT\fR, or use multiple \fB\-MT\fR options.
-.Sp
-For example, \fB\-MT\ '$(objpfx)foo.o'\fR might give
-.Sp
-.Vb 1
-\&        $(objpfx)foo.o: foo.c
-.Ve
-.IP "\fB\-MQ\fR \fItarget\fR" 4
-.IX Item "-MQ target"
-Same as \fB\-MT\fR, but it quotes any characters which are special to
-Make.  \fB\-MQ\ '$(objpfx)foo.o'\fR gives
-.Sp
-.Vb 1
-\&        $$(objpfx)foo.o: foo.c
-.Ve
-.Sp
-The default target is automatically quoted, as if it were given with
-\&\fB\-MQ\fR.
-.IP "\fB\-MD\fR" 4
-.IX Item "-MD"
-\&\fB\-MD\fR is equivalent to \fB\-M \-MF\fR \fIfile\fR, except that
-\&\fB\-E\fR is not implied.  The driver determines \fIfile\fR based on
-whether an \fB\-o\fR option is given.  If it is, the driver uses its
-argument but with a suffix of \fI.d\fR, otherwise it takes the name
-of the input file, removes any directory components and suffix, and
-applies a \fI.d\fR suffix.
-.Sp
-If \fB\-MD\fR is used in conjunction with \fB\-E\fR, any
-\&\fB\-o\fR switch is understood to specify the dependency output file, but if used without \fB\-E\fR, each \fB\-o\fR
-is understood to specify a target object file.
-.Sp
-Since \fB\-E\fR is not implied, \fB\-MD\fR can be used to generate
-a dependency output file as a side-effect of the compilation process.
-.IP "\fB\-MMD\fR" 4
-.IX Item "-MMD"
-Like \fB\-MD\fR except mention only user header files, not system
-header files.
-.IP "\fB\-x c\fR" 4
-.IX Item "-x c"
-.PD 0
-.IP "\fB\-x c++\fR" 4
-.IX Item "-x c++"
-.IP "\fB\-x objective-c\fR" 4
-.IX Item "-x objective-c"
-.IP "\fB\-x assembler-with-cpp\fR" 4
-.IX Item "-x assembler-with-cpp"
-.PD
-Specify the source language: C, \*(C+, Objective-C, or assembly.  This has
-nothing to do with standards conformance or extensions; it merely
-selects which base syntax to expect.  If you give none of these options,
-cpp will deduce the language from the extension of the source file:
-\&\fB.c\fR, \fB.cc\fR, \fB.m\fR, or \fB.S\fR.  Some other common
-extensions for \*(C+ and assembly are also recognized.  If cpp does not
-recognize the extension, it will treat the file as C; this is the most
-generic mode.
-.Sp
-\&\fINote:\fR Previous versions of cpp accepted a \fB\-lang\fR option
-which selected both the language and the standards conformance level.
-This option has been removed, because it conflicts with the \fB\-l\fR
-option.
-.IP "\fB\-std=\fR\fIstandard\fR" 4
-.IX Item "-std=standard"
-.PD 0
-.IP "\fB\-ansi\fR" 4
-.IX Item "-ansi"
-.PD
-Specify the standard to which the code should conform.  Currently \s-1CPP\s0
-knows about C and \*(C+ standards; others may be added in the future.
-.Sp
-\&\fIstandard\fR
-may be one of:
-.RS 4
-.ie n .IP """c90""" 4
-.el .IP "\f(CWc90\fR" 4
-.IX Item "c90"
-.PD 0
-.ie n .IP """c89""" 4
-.el .IP "\f(CWc89\fR" 4
-.IX Item "c89"
-.ie n .IP """iso9899:1990""" 4
-.el .IP "\f(CWiso9899:1990\fR" 4
-.IX Item "iso9899:1990"
-.PD
-The \s-1ISO\s0 C standard from 1990.  \fBc90\fR is the customary shorthand for
-this version of the standard.
-.Sp
-The \fB\-ansi\fR option is equivalent to \fB\-std=c90\fR.
-.ie n .IP """iso9899:199409""" 4
-.el .IP "\f(CWiso9899:199409\fR" 4
-.IX Item "iso9899:199409"
-The 1990 C standard, as amended in 1994.
-.ie n .IP """iso9899:1999""" 4
-.el .IP "\f(CWiso9899:1999\fR" 4
-.IX Item "iso9899:1999"
-.PD 0
-.ie n .IP """c99""" 4
-.el .IP "\f(CWc99\fR" 4
-.IX Item "c99"
-.ie n .IP """iso9899:199x""" 4
-.el .IP "\f(CWiso9899:199x\fR" 4
-.IX Item "iso9899:199x"
-.ie n .IP """c9x""" 4
-.el .IP "\f(CWc9x\fR" 4
-.IX Item "c9x"
-.PD
-The revised \s-1ISO\s0 C standard, published in December 1999.  Before
-publication, this was known as C9X.
-.ie n .IP """c1x""" 4
-.el .IP "\f(CWc1x\fR" 4
-.IX Item "c1x"
-The next version of the \s-1ISO\s0 C standard, still under development.
-.ie n .IP """gnu90""" 4
-.el .IP "\f(CWgnu90\fR" 4
-.IX Item "gnu90"
-.PD 0
-.ie n .IP """gnu89""" 4
-.el .IP "\f(CWgnu89\fR" 4
-.IX Item "gnu89"
-.PD
-The 1990 C standard plus \s-1GNU\s0 extensions.  This is the default.
-.ie n .IP """gnu99""" 4
-.el .IP "\f(CWgnu99\fR" 4
-.IX Item "gnu99"
-.PD 0
-.ie n .IP """gnu9x""" 4
-.el .IP "\f(CWgnu9x\fR" 4
-.IX Item "gnu9x"
-.PD
-The 1999 C standard plus \s-1GNU\s0 extensions.
-.ie n .IP """gnu1x""" 4
-.el .IP "\f(CWgnu1x\fR" 4
-.IX Item "gnu1x"
-The next version of the \s-1ISO\s0 C standard, still under development, plus
-\&\s-1GNU\s0 extensions.
-.ie n .IP """c++98""" 4
-.el .IP "\f(CWc++98\fR" 4
-.IX Item "c++98"
-The 1998 \s-1ISO\s0 \*(C+ standard plus amendments.
-.ie n .IP """gnu++98""" 4
-.el .IP "\f(CWgnu++98\fR" 4
-.IX Item "gnu++98"
-The same as \fB\-std=c++98\fR plus \s-1GNU\s0 extensions.  This is the
-default for \*(C+ code.
-.RE
-.RS 4
-.RE
-.IP "\fB\-I\-\fR" 4
-.IX Item "-I-"
-Split the include path.  Any directories specified with \fB\-I\fR
-options before \fB\-I\-\fR are searched only for headers requested with
-\&\f(CW\*(C`#include\ "\f(CIfile\f(CW"\*(C'\fR; they are not searched for
-\&\f(CW\*(C`#include\ <\f(CIfile\f(CW>\*(C'\fR.  If additional directories are
-specified with \fB\-I\fR options after the \fB\-I\-\fR, those
-directories are searched for all \fB#include\fR directives.
-.Sp
-In addition, \fB\-I\-\fR inhibits the use of the directory of the current
-file directory as the first search directory for \f(CW\*(C`#include\ "\f(CIfile\f(CW"\*(C'\fR.
-.Sp
-This option has been deprecated.
-.IP "\fB\-nostdinc\fR" 4
-.IX Item "-nostdinc"
-Do not search the standard system directories for header files.
-Only the directories you have specified with \fB\-I\fR options
-(and the directory of the current file, if appropriate) are searched.
-.IP "\fB\-nostdinc++\fR" 4
-.IX Item "-nostdinc++"
-Do not search for header files in the \*(C+\-specific standard directories,
-but do still search the other standard directories.  (This option is
-used when building the \*(C+ library.)
-.IP "\fB\-include\fR \fIfile\fR" 4
-.IX Item "-include file"
-Process \fIfile\fR as if \f(CW\*(C`#include "file"\*(C'\fR appeared as the first
-line of the primary source file.  However, the first directory searched
-for \fIfile\fR is the preprocessor's working directory \fIinstead of\fR
-the directory containing the main source file.  If not found there, it
-is searched for in the remainder of the \f(CW\*(C`#include "..."\*(C'\fR search
-chain as normal.
-.Sp
-If multiple \fB\-include\fR options are given, the files are included
-in the order they appear on the command line.
-.IP "\fB\-imacros\fR \fIfile\fR" 4
-.IX Item "-imacros file"
-Exactly like \fB\-include\fR, except that any output produced by
-scanning \fIfile\fR is thrown away.  Macros it defines remain defined.
-This allows you to acquire all the macros from a header without also
-processing its declarations.
-.Sp
-All files specified by \fB\-imacros\fR are processed before all files
-specified by \fB\-include\fR.
-.IP "\fB\-idirafter\fR \fIdir\fR" 4
-.IX Item "-idirafter dir"
-Search \fIdir\fR for header files, but do it \fIafter\fR all
-directories specified with \fB\-I\fR and the standard system directories
-have been exhausted.  \fIdir\fR is treated as a system include directory.
-If \fIdir\fR begins with \f(CW\*(C`=\*(C'\fR, then the \f(CW\*(C`=\*(C'\fR will be replaced
-by the sysroot prefix; see \fB\-\-sysroot\fR and \fB\-isysroot\fR.
-.IP "\fB\-iprefix\fR \fIprefix\fR" 4
-.IX Item "-iprefix prefix"
-Specify \fIprefix\fR as the prefix for subsequent \fB\-iwithprefix\fR
-options.  If the prefix represents a directory, you should include the
-final \fB/\fR.
-.IP "\fB\-iwithprefix\fR \fIdir\fR" 4
-.IX Item "-iwithprefix dir"
-.PD 0
-.IP "\fB\-iwithprefixbefore\fR \fIdir\fR" 4
-.IX Item "-iwithprefixbefore dir"
-.PD
-Append \fIdir\fR to the prefix specified previously with
-\&\fB\-iprefix\fR, and add the resulting directory to the include search
-path.  \fB\-iwithprefixbefore\fR puts it in the same place \fB\-I\fR
-would; \fB\-iwithprefix\fR puts it where \fB\-idirafter\fR would.
-.IP "\fB\-isysroot\fR \fIdir\fR" 4
-.IX Item "-isysroot dir"
-This option is like the \fB\-\-sysroot\fR option, but applies only to
-header files (except for Darwin targets, where it applies to both header
-files and libraries).  See the \fB\-\-sysroot\fR option for more
-information.
-.IP "\fB\-imultilib\fR \fIdir\fR" 4
-.IX Item "-imultilib dir"
-Use \fIdir\fR as a subdirectory of the directory containing
-target-specific \*(C+ headers.
-.IP "\fB\-isystem\fR \fIdir\fR" 4
-.IX Item "-isystem dir"
-Search \fIdir\fR for header files, after all directories specified by
-\&\fB\-I\fR but before the standard system directories.  Mark it
-as a system directory, so that it gets the same special treatment as
-is applied to the standard system directories.
-.Sp
-If \fIdir\fR begins with \f(CW\*(C`=\*(C'\fR, then the \f(CW\*(C`=\*(C'\fR will be replaced
-by the sysroot prefix; see \fB\-\-sysroot\fR and \fB\-isysroot\fR.
-.IP "\fB\-iquote\fR \fIdir\fR" 4
-.IX Item "-iquote dir"
-Search \fIdir\fR only for header files requested with
-\&\f(CW\*(C`#include\ "\f(CIfile\f(CW"\*(C'\fR; they are not searched for
-\&\f(CW\*(C`#include\ <\f(CIfile\f(CW>\*(C'\fR, before all directories specified by
-\&\fB\-I\fR and before the standard system directories.
-.Sp
-If \fIdir\fR begins with \f(CW\*(C`=\*(C'\fR, then the \f(CW\*(C`=\*(C'\fR will be replaced
-by the sysroot prefix; see \fB\-\-sysroot\fR and \fB\-isysroot\fR.
-.IP "\fB\-fdirectives\-only\fR" 4
-.IX Item "-fdirectives-only"
-When preprocessing, handle directives, but do not expand macros.
-.Sp
-The option's behavior depends on the \fB\-E\fR and \fB\-fpreprocessed\fR
-options.
-.Sp
-With \fB\-E\fR, preprocessing is limited to the handling of directives
-such as \f(CW\*(C`#define\*(C'\fR, \f(CW\*(C`#ifdef\*(C'\fR, and \f(CW\*(C`#error\*(C'\fR.  Other
-preprocessor operations, such as macro expansion and trigraph
-conversion are not performed.  In addition, the \fB\-dD\fR option is
-implicitly enabled.
-.Sp
-With \fB\-fpreprocessed\fR, predefinition of command line and most
-builtin macros is disabled.  Macros such as \f(CW\*(C`_\|_LINE_\|_\*(C'\fR, which are
-contextually dependent, are handled normally.  This enables compilation of
-files previously preprocessed with \f(CW\*(C`\-E \-fdirectives\-only\*(C'\fR.
-.Sp
-With both \fB\-E\fR and \fB\-fpreprocessed\fR, the rules for
-\&\fB\-fpreprocessed\fR take precedence.  This enables full preprocessing of
-files previously preprocessed with \f(CW\*(C`\-E \-fdirectives\-only\*(C'\fR.
-.IP "\fB\-fdollars\-in\-identifiers\fR" 4
-.IX Item "-fdollars-in-identifiers"
-Accept \fB$\fR in identifiers.
-.IP "\fB\-fextended\-identifiers\fR" 4
-.IX Item "-fextended-identifiers"
-Accept universal character names in identifiers.  This option is
-experimental; in a future version of \s-1GCC\s0, it will be enabled by
-default for C99 and \*(C+.
-.IP "\fB\-fpreprocessed\fR" 4
-.IX Item "-fpreprocessed"
-Indicate to the preprocessor that the input file has already been
-preprocessed.  This suppresses things like macro expansion, trigraph
-conversion, escaped newline splicing, and processing of most directives.
-The preprocessor still recognizes and removes comments, so that you can
-pass a file preprocessed with \fB\-C\fR to the compiler without
-problems.  In this mode the integrated preprocessor is little more than
-a tokenizer for the front ends.
-.Sp
-\&\fB\-fpreprocessed\fR is implicit if the input file has one of the
-extensions \fB.i\fR, \fB.ii\fR or \fB.mi\fR.  These are the
-extensions that \s-1GCC\s0 uses for preprocessed files created by
-\&\fB\-save\-temps\fR.
-.IP "\fB\-ftabstop=\fR\fIwidth\fR" 4
-.IX Item "-ftabstop=width"
-Set the distance between tab stops.  This helps the preprocessor report
-correct column numbers in warnings or errors, even if tabs appear on the
-line.  If the value is less than 1 or greater than 100, the option is
-ignored.  The default is 8.
-.IP "\fB\-fexec\-charset=\fR\fIcharset\fR" 4
-.IX Item "-fexec-charset=charset"
-Set the execution character set, used for string and character
-constants.  The default is \s-1UTF\-8\s0.  \fIcharset\fR can be any encoding
-supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine.
-.IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4
-.IX Item "-fwide-exec-charset=charset"
-Set the wide execution character set, used for wide string and
-character constants.  The default is \s-1UTF\-32\s0 or \s-1UTF\-16\s0, whichever
-corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR.  As with
-\&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported
-by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have
-problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR.
-.IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4
-.IX Item "-finput-charset=charset"
-Set the input character set, used for translation from the character
-set of the input file to the source character set used by \s-1GCC\s0.  If the
-locale does not specify, or \s-1GCC\s0 cannot get this information from the
-locale, the default is \s-1UTF\-8\s0.  This can be overridden by either the locale
-or this command line option.  Currently the command line option takes
-precedence if there's a conflict.  \fIcharset\fR can be any encoding
-supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine.
-.IP "\fB\-fworking\-directory\fR" 4
-.IX Item "-fworking-directory"
-Enable generation of linemarkers in the preprocessor output that will
-let the compiler know the current working directory at the time of
-preprocessing.  When this option is enabled, the preprocessor will
-emit, after the initial linemarker, a second linemarker with the
-current working directory followed by two slashes.  \s-1GCC\s0 will use this
-directory, when it's present in the preprocessed input, as the
-directory emitted as the current working directory in some debugging
-information formats.  This option is implicitly enabled if debugging
-information is enabled, but this can be inhibited with the negated
-form \fB\-fno\-working\-directory\fR.  If the \fB\-P\fR flag is
-present in the command line, this option has no effect, since no
-\&\f(CW\*(C`#line\*(C'\fR directives are emitted whatsoever.
-.IP "\fB\-fno\-show\-column\fR" 4
-.IX Item "-fno-show-column"
-Do not print column numbers in diagnostics.  This may be necessary if
-diagnostics are being scanned by a program that does not understand the
-column numbers, such as \fBdejagnu\fR.
-.IP "\fB\-A\fR \fIpredicate\fR\fB=\fR\fIanswer\fR" 4
-.IX Item "-A predicate=answer"
-Make an assertion with the predicate \fIpredicate\fR and answer
-\&\fIanswer\fR.  This form is preferred to the older form \fB\-A\fR
-\&\fIpredicate\fR\fB(\fR\fIanswer\fR\fB)\fR, which is still supported, because
-it does not use shell special characters.
-.IP "\fB\-A \-\fR\fIpredicate\fR\fB=\fR\fIanswer\fR" 4
-.IX Item "-A -predicate=answer"
-Cancel an assertion with the predicate \fIpredicate\fR and answer
-\&\fIanswer\fR.
-.IP "\fB\-dCHARS\fR" 4
-.IX Item "-dCHARS"
-\&\fI\s-1CHARS\s0\fR is a sequence of one or more of the following characters,
-and must not be preceded by a space.  Other characters are interpreted
-by the compiler proper, or reserved for future versions of \s-1GCC\s0, and so
-are silently ignored.  If you specify characters whose behavior
-conflicts, the result is undefined.
-.RS 4
-.IP "\fBM\fR" 4
-.IX Item "M"
-Instead of the normal output, generate a list of \fB#define\fR
-directives for all the macros defined during the execution of the
-preprocessor, including predefined macros.  This gives you a way of
-finding out what is predefined in your version of the preprocessor.
-Assuming you have no file \fIfoo.h\fR, the command
-.Sp
-.Vb 1
-\&        touch foo.h; cpp \-dM foo.h
-.Ve
-.Sp
-will show all the predefined macros.
-.Sp
-If you use \fB\-dM\fR without the \fB\-E\fR option, \fB\-dM\fR is
-interpreted as a synonym for \fB\-fdump\-rtl\-mach\fR.
-.IP "\fBD\fR" 4
-.IX Item "D"
-Like \fBM\fR except in two respects: it does \fInot\fR include the
-predefined macros, and it outputs \fIboth\fR the \fB#define\fR
-directives and the result of preprocessing.  Both kinds of output go to
-the standard output file.
-.IP "\fBN\fR" 4
-.IX Item "N"
-Like \fBD\fR, but emit only the macro names, not their expansions.
-.IP "\fBI\fR" 4
-.IX Item "I"
-Output \fB#include\fR directives in addition to the result of
-preprocessing.
-.IP "\fBU\fR" 4
-.IX Item "U"
-Like \fBD\fR except that only macros that are expanded, or whose
-definedness is tested in preprocessor directives, are output; the
-output is delayed until the use or test of the macro; and
-\&\fB#undef\fR directives are also output for macros tested but
-undefined at the time.
-.RE
-.RS 4
-.RE
-.IP "\fB\-P\fR" 4
-.IX Item "-P"
-Inhibit generation of linemarkers in the output from the preprocessor.
-This might be useful when running the preprocessor on something that is
-not C code, and will be sent to a program which might be confused by the
-linemarkers.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-Do not discard comments.  All comments are passed through to the output
-file, except for comments in processed directives, which are deleted
-along with the directive.
-.Sp
-You should be prepared for side effects when using \fB\-C\fR; it
-causes the preprocessor to treat comments as tokens in their own right.
-For example, comments appearing at the start of what would be a
-directive line have the effect of turning that line into an ordinary
-source line, since the first token on the line is no longer a \fB#\fR.
-.IP "\fB\-CC\fR" 4
-.IX Item "-CC"
-Do not discard comments, including during macro expansion.  This is
-like \fB\-C\fR, except that comments contained within macros are
-also passed through to the output file where the macro is expanded.
-.Sp
-In addition to the side-effects of the \fB\-C\fR option, the
-\&\fB\-CC\fR option causes all \*(C+\-style comments inside a macro
-to be converted to C\-style comments.  This is to prevent later use
-of that macro from inadvertently commenting out the remainder of
-the source line.
-.Sp
-The \fB\-CC\fR option is generally used to support lint comments.
-.IP "\fB\-traditional\-cpp\fR" 4
-.IX Item "-traditional-cpp"
-Try to imitate the behavior of old-fashioned C preprocessors, as
-opposed to \s-1ISO\s0 C preprocessors.
-.IP "\fB\-trigraphs\fR" 4
-.IX Item "-trigraphs"
-Process trigraph sequences.
-.IP "\fB\-remap\fR" 4
-.IX Item "-remap"
-Enable special code to work around file systems which only permit very
-short file names, such as MS-DOS.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD 0
-.IP "\fB\-\-target\-help\fR" 4
-.IX Item "--target-help"
-.PD
-Print text describing all the command line options instead of
-preprocessing anything.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-Verbose mode.  Print out \s-1GNU\s0 \s-1CPP\s0's version number at the beginning of
-execution, and report the final form of the include path.
-.IP "\fB\-H\fR" 4
-.IX Item "-H"
-Print the name of each header file used, in addition to other normal
-activities.  Each name is indented to show how deep in the
-\&\fB#include\fR stack it is.  Precompiled header files are also
-printed, even if they are found to be invalid; an invalid precompiled
-header file is printed with \fB...x\fR and a valid one with \fB...!\fR .
-.IP "\fB\-version\fR" 4
-.IX Item "-version"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Print out \s-1GNU\s0 \s-1CPP\s0's version number.  With one dash, proceed to
-preprocess as normal.  With two dashes, exit immediately.
-.SH "ENVIRONMENT"
-.IX Header "ENVIRONMENT"
-This section describes the environment variables that affect how \s-1CPP\s0
-operates.  You can use them to specify directories or prefixes to use
-when searching for include files, or to control dependency output.
-.PP
-Note that you can also specify places to search using options such as
-\&\fB\-I\fR, and control dependency output with options like
-\&\fB\-M\fR.  These take precedence over
-environment variables, which in turn take precedence over the
-configuration of \s-1GCC\s0.
-.IP "\fB\s-1CPATH\s0\fR" 4
-.IX Item "CPATH"
-.PD 0
-.IP "\fBC_INCLUDE_PATH\fR" 4
-.IX Item "C_INCLUDE_PATH"
-.IP "\fB\s-1CPLUS_INCLUDE_PATH\s0\fR" 4
-.IX Item "CPLUS_INCLUDE_PATH"
-.IP "\fB\s-1OBJC_INCLUDE_PATH\s0\fR" 4
-.IX Item "OBJC_INCLUDE_PATH"
-.PD
-Each variable's value is a list of directories separated by a special
-character, much like \fB\s-1PATH\s0\fR, in which to look for header files.
-The special character, \f(CW\*(C`PATH_SEPARATOR\*(C'\fR, is target-dependent and
-determined at \s-1GCC\s0 build time.  For Microsoft Windows-based targets it is a
-semicolon, and for almost all other targets it is a colon.
-.Sp
-\&\fB\s-1CPATH\s0\fR specifies a list of directories to be searched as if
-specified with \fB\-I\fR, but after any paths given with \fB\-I\fR
-options on the command line.  This environment variable is used
-regardless of which language is being preprocessed.
-.Sp
-The remaining environment variables apply only when preprocessing the
-particular language indicated.  Each specifies a list of directories
-to be searched as if specified with \fB\-isystem\fR, but after any
-paths given with \fB\-isystem\fR options on the command line.
-.Sp
-In all these variables, an empty element instructs the compiler to
-search its current working directory.  Empty elements can appear at the
-beginning or end of a path.  For instance, if the value of
-\&\fB\s-1CPATH\s0\fR is \f(CW\*(C`:/special/include\*(C'\fR, that has the same
-effect as \fB\-I.\ \-I/special/include\fR.
-.IP "\fB\s-1DEPENDENCIES_OUTPUT\s0\fR" 4
-.IX Item "DEPENDENCIES_OUTPUT"
-If this variable is set, its value specifies how to output
-dependencies for Make based on the non-system header files processed
-by the compiler.  System header files are ignored in the dependency
-output.
-.Sp
-The value of \fB\s-1DEPENDENCIES_OUTPUT\s0\fR can be just a file name, in
-which case the Make rules are written to that file, guessing the target
-name from the source file name.  Or the value can have the form
-\&\fIfile\fR\fB \fR\fItarget\fR, in which case the rules are written to
-file \fIfile\fR using \fItarget\fR as the target name.
-.Sp
-In other words, this environment variable is equivalent to combining
-the options \fB\-MM\fR and \fB\-MF\fR,
-with an optional \fB\-MT\fR switch too.
-.IP "\fB\s-1SUNPRO_DEPENDENCIES\s0\fR" 4
-.IX Item "SUNPRO_DEPENDENCIES"
-This variable is the same as \fB\s-1DEPENDENCIES_OUTPUT\s0\fR (see above),
-except that system header files are not ignored, so it implies
-\&\fB\-M\fR rather than \fB\-MM\fR.  However, the dependence on the
-main input file is omitted.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7),
-\&\fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIcpp\fR, \fIgcc\fR, and
-\&\fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011
-Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation.  A copy of
-the license is included in the
-man page \fIgfdl\fR\|(7).
-This manual contains no Invariant Sections.  The Front-Cover Texts are
-(a) (see below), and the Back-Cover Texts are (b) (see below).
-.PP
-(a) The \s-1FSF\s0's Front-Cover Text is:
-.PP
-.Vb 1
-\&     A GNU Manual
-.Ve
-.PP
-(b) The \s-1FSF\s0's Back-Cover Text is:
-.PP
-.Vb 3
-\&     You have freedom to copy and modify this GNU Manual, like GNU
-\&     software.  Copies published by the Free Software Foundation raise
-\&     funds for GNU development.
-.Ve
diff --git a/share/man/man1/mips-qca-linux-uclibc-dlltool.1 b/share/man/man1/mips-qca-linux-uclibc-dlltool.1
deleted file mode 100644
index 796f690..0000000
--- a/share/man/man1/mips-qca-linux-uclibc-dlltool.1
+++ /dev/null
@@ -1,529 +0,0 @@
-.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "DLLTOOL 1"
-.TH DLLTOOL 1 "2013-11-18" "binutils-2.23.91" "GNU Development Tools"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-dlltool \- Create files needed to build and use DLLs.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
-        [\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
-        [\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
-        [\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
-        [\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
-        [\fB\-y\fR|\fB\-\-output\-delaylib\fR \fIlibrary-file-name\fR]
-        [\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
-        [\fB\-\-exclude\-symbols\fR \fIlist\fR]
-        [\fB\-\-no\-default\-excludes\fR]
-        [\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
-        [\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
-        [\fB\-a\fR|\fB\-\-add\-indirect\fR]
-        [\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-\-add\-stdcall\-underscore\fR]
-        [\fB\-k\fR|\fB\-\-kill\-at\fR] [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
-        [\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
-        [\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR]
-        [\fB\-\-use\-nul\-prefixed\-import\-tables\fR]
-        [\fB\-I\fR|\fB\-\-identify\fR \fIlibrary-file-name\fR] [\fB\-\-identify\-strict\fR]
-        [\fB\-i\fR|\fB\-\-interwork\fR]
-        [\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
-        [\fB\-v\fR|\fB\-\-verbose\fR]
-        [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
-        [\fB\-\-no\-leading\-underscore\fR] [\fB\-\-leading\-underscore\fR]
-        [object\-file ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
-\&\fB\-b\fR options as well as object files specified on the command
-line.  It then processes these inputs and if the \fB\-e\fR option has
-been specified it creates a exports file.  If the \fB\-l\fR option
-has been specified it creates a library file and if the \fB\-z\fR option
-has been specified it creates a def file.  Any or all of the \fB\-e\fR,
-\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
-dlltool.
-.PP
-When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
-to have three other files.  \fBdlltool\fR can help with the creation of
-these files.
-.PP
-The first file is a \fI.def\fR file which specifies which functions are
-exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on.  This
-is a text file and can be created by hand, or \fBdlltool\fR can be used
-to create it using the \fB\-z\fR option.  In this case \fBdlltool\fR
-will scan the object files specified on its command line looking for
-those functions which have been specially marked as being exported and
-put entries for them in the \fI.def\fR file it creates.
-.PP
-In order to mark a function as being exported from a \s-1DLL\s0, it needs to
-have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
-section of the object file.  This can be done in C by using the
-\&\fIasm()\fR operator:
-.PP
-.Vb 2
-\&          asm (".section .drectve");
-\&          asm (".ascii \e"\-export:my_func\e"");
-\&        
-\&          int my_func (void) { ... }
-.Ve
-.PP
-The second file needed for \s-1DLL\s0 creation is an exports file.  This file
-is linked with the object files that make up the body of the \s-1DLL\s0 and it
-handles the interface between the \s-1DLL\s0 and the outside world.  This is a
-binary file and it can be created by giving the \fB\-e\fR option to
-\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file.
-.PP
-The third file needed for \s-1DLL\s0 creation is the library file that programs
-will link with in order to access the functions in the \s-1DLL\s0 (an `import
-library').  This file can be created by giving the \fB\-l\fR option to
-dlltool when it is creating or reading in a \fI.def\fR file.
-.PP
-If the \fB\-y\fR option is specified, dlltool generates a delay-import
-library that can be used instead of the normal import library to allow
-a program to link to the dll only as soon as an imported function is
-called for the first time. The resulting executable will need to be
-linked to the static delayimp library containing _\|\fI_delayLoadHelper2()\fR,
-which in turn will import LoadLibraryA and GetProcAddress from kernel32.
-.PP
-\&\fBdlltool\fR builds the library file by hand, but it builds the
-exports file by creating temporary files containing assembler statements
-and then assembling these.  The \fB\-S\fR command line option can be
-used to specify the path to the assembler that dlltool will use,
-and the \fB\-f\fR option can be used to pass specific flags to that
-assembler.  The \fB\-n\fR can be used to prevent dlltool from deleting
-these temporary assembler files when it is done, and if \fB\-n\fR is
-specified twice then this will prevent dlltool from deleting the
-temporary object files it used to build the library.
-.PP
-Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
-also creating a program (from an object file called \fBprogram.o\fR)
-that uses that \s-1DLL:\s0
-.PP
-.Vb 4
-\&          gcc \-c dll.c
-\&          dlltool \-e exports.o \-l dll.lib dll.o
-\&          gcc dll.o exports.o \-o dll.dll
-\&          gcc program.o dll.lib \-o program
-.Ve
-.PP
-\&\fBdlltool\fR may also be used to query an existing import library
-to determine the name of the \s-1DLL\s0 to which it is associated.  See the
-description of the \fB\-I\fR or \fB\-\-identify\fR option.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The command line options have the following meanings:
-.IP "\fB\-d\fR \fIfilename\fR" 4
-.IX Item "-d filename"
-.PD 0
-.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
-.IX Item "--input-def filename"
-.PD
-Specifies the name of a \fI.def\fR file to be read in and processed.
-.IP "\fB\-b\fR \fIfilename\fR" 4
-.IX Item "-b filename"
-.PD 0
-.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
-.IX Item "--base-file filename"
-.PD
-Specifies the name of a base file to be read in and processed.  The
-contents of this file will be added to the relocation section in the
-exports file generated by dlltool.
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
-.IX Item "--output-exp filename"
-.PD
-Specifies the name of the export file to be created by dlltool.
-.IP "\fB\-z\fR \fIfilename\fR" 4
-.IX Item "-z filename"
-.PD 0
-.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
-.IX Item "--output-def filename"
-.PD
-Specifies the name of the \fI.def\fR file to be created by dlltool.
-.IP "\fB\-l\fR \fIfilename\fR" 4
-.IX Item "-l filename"
-.PD 0
-.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
-.IX Item "--output-lib filename"
-.PD
-Specifies the name of the library file to be created by dlltool.
-.IP "\fB\-y\fR \fIfilename\fR" 4
-.IX Item "-y filename"
-.PD 0
-.IP "\fB\-\-output\-delaylib\fR \fIfilename\fR" 4
-.IX Item "--output-delaylib filename"
-.PD
-Specifies the name of the delay-import library file to be created by dlltool.
-.IP "\fB\-\-export\-all\-symbols\fR" 4
-.IX Item "--export-all-symbols"
-Treat all global and weak defined symbols found in the input object
-files as symbols to be exported.  There is a small list of symbols which
-are not exported by default; see the \fB\-\-no\-default\-excludes\fR
-option.  You may add to the list of symbols to not export by using the
-\&\fB\-\-exclude\-symbols\fR option.
-.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
-.IX Item "--no-export-all-symbols"
-Only export symbols explicitly listed in an input \fI.def\fR file or in
-\&\fB.drectve\fR sections in the input object files.  This is the default
-behaviour.  The \fB.drectve\fR sections are created by \fBdllexport\fR
-attributes in the source code.
-.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
-.IX Item "--exclude-symbols list"
-Do not export the symbols in \fIlist\fR.  This is a list of symbol names
-separated by comma or colon characters.  The symbol names should not
-contain a leading underscore.  This is only meaningful when
-\&\fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-\-no\-default\-excludes\fR" 4
-.IX Item "--no-default-excludes"
-When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
-exporting certain special symbols.  The current list of symbols to avoid
-exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
-\&\fBimpure_ptr\fR.  You may use the \fB\-\-no\-default\-excludes\fR option
-to go ahead and export these special symbols.  This is only meaningful
-when \fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-S\fR \fIpath\fR" 4
-.IX Item "-S path"
-.PD 0
-.IP "\fB\-\-as\fR \fIpath\fR" 4
-.IX Item "--as path"
-.PD
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-.IP "\fB\-f\fR \fIoptions\fR" 4
-.IX Item "-f options"
-.PD 0
-.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
-.IX Item "--as-flags options"
-.PD
-Specifies any specific command line options to be passed to the
-assembler when building the exports file.  This option will work even if
-the \fB\-S\fR option is not used.  This option only takes one argument,
-and if it occurs more than once on the command line, then later
-occurrences will override earlier occurrences.  So if it is necessary to
-pass multiple options to the assembler they should be enclosed in
-double quotes.
-.IP "\fB\-D\fR \fIname\fR" 4
-.IX Item "-D name"
-.PD 0
-.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
-.IX Item "--dll-name name"
-.PD
-Specifies the name to be stored in the \fI.def\fR file as the name of
-the \s-1DLL\s0 when the \f