summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2015-02-13 14:55:15 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2015-03-13 18:31:42 +0800
commitc29b88617a91d2777e883998f653186ec79a1b77 (patch)
tree7982a1e6a401d54c6fc6be007f757a4dfa693b4c
parent8edfd4eb3d69ff37346bc3b3f8ea78462e4380c8 (diff)
downloadx86_64-linux-android-4.9-c29b88617a91d2777e883998f653186ec79a1b77.tar.gz
Refresh x86_64-linux-android-4.9 (darwin-x86)
mainly to contain the fix about bognus array-bound checking See https://android-review.googlesource.com/#/c/125800 Change-Id: I22c98ebab9dee5b94fe2b13d6a2a2da9e7fa12d3
-rw-r--r--SOURCES14
-rwxr-xr-xbin/x86_64-linux-android-addr2linebin920384 -> 980176 bytes
-rwxr-xr-xbin/x86_64-linux-android-arbin950992 -> 1014992 bytes
-rwxr-xr-xbin/x86_64-linux-android-asbin1600640 -> 1796552 bytes
-rwxr-xr-xbin/x86_64-linux-android-c++filtbin916184 -> 984172 bytes
-rwxr-xr-xbin/x86_64-linux-android-cppbin761952 -> 767516 bytes
-rwxr-xr-xbin/x86_64-linux-android-dwpbin4294952 -> 4347408 bytes
-rwxr-xr-xbin/x86_64-linux-android-elfeditbin36072 -> 36152 bytes
-rwxr-xr-xbin/x86_64-linux-android-g++bin766048 -> 767516 bytes
-rwxr-xr-xbin/x86_64-linux-android-gccbin761952 -> 767508 bytes
-rwxr-xr-xbin/x86_64-linux-android-gcc-arbin32216 -> 32304 bytes
-rwxr-xr-xbin/x86_64-linux-android-gcc-nmbin32216 -> 32304 bytes
-rwxr-xr-xbin/x86_64-linux-android-gcc-ranlibbin32216 -> 32304 bytes
-rwxr-xr-xbin/x86_64-linux-android-gcovbin376144 -> 377276 bytes
-rwxr-xr-xbin/x86_64-linux-android-gcov-toolbin407448 -> 408648 bytes
-rwxr-xr-xbin/x86_64-linux-android-gdbbin7428848 -> 7859776 bytes
-rwxr-xr-xbin/x86_64-linux-android-gprofbin987904 -> 1055952 bytes
-rwxr-xr-xbin/x86_64-linux-android-ld.bfdbin1738432 -> 1823668 bytes
-rwxr-xr-xbin/x86_64-linux-android-ld.goldbin5810664 -> 6790940 bytes
-rwxr-xr-xbin/x86_64-linux-android-ld.mcldbin2697080 -> 2696992 bytes
-rwxr-xr-xbin/x86_64-linux-android-nmbin928568 -> 992500 bytes
-rwxr-xr-xbin/x86_64-linux-android-objcopybin1098688 -> 1162976 bytes
-rwxr-xr-xbin/x86_64-linux-android-objdumpbin1980808 -> 2102872 bytes
-rwxr-xr-xbin/x86_64-linux-android-ranlibbin951024 -> 1010904 bytes
-rwxr-xr-xbin/x86_64-linux-android-readelfbin423024 -> 443928 bytes
-rwxr-xr-xbin/x86_64-linux-android-sizebin920440 -> 980236 bytes
-rwxr-xr-xbin/x86_64-linux-android-stringsbin920440 -> 984336 bytes
-rwxr-xr-xbin/x86_64-linux-android-stripbin1098688 -> 1162976 bytes
-rw-r--r--include/gdb/jit-reader.h2
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtbegin.obin2584 -> 2584 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtbeginS.obin2788 -> 2788 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtbeginT.obin2584 -> 2584 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtend.obin938 -> 940 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtendS.obin938 -> 940 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtfastmath.obin4724 -> 4724 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtprec32.obin2460 -> 2460 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtprec64.obin2468 -> 2468 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/crtprec80.obin2460 -> 2460 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/libgcc.abin5177518 -> 5177494 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/32/libgcov.abin309070 -> 309070 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtbegin.obin3288 -> 3288 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtbeginS.obin3624 -> 3624 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtbeginT.obin3288 -> 3288 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtend.obin1354 -> 1360 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtendS.obin1354 -> 1360 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtfastmath.obin3920 -> 3920 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtprec32.obin3520 -> 3520 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtprec64.obin3528 -> 3528 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/crtprec80.obin3520 -> 3520 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/libgcc.abin7294968 -> 7294944 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/libgcov.abin450048 -> 450048 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtbegin.obin2352 -> 2352 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtbeginS.obin2572 -> 2572 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtbeginT.obin2352 -> 2352 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtend.obin938 -> 940 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtendS.obin938 -> 940 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtfastmath.obin2772 -> 2772 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtprec32.obin2516 -> 2516 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtprec64.obin2532 -> 2532 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/crtprec80.obin2516 -> 2516 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/libgcc.abin6017336 -> 6017316 bytes
-rw-r--r--lib/gcc/x86_64-linux-android/4.9/x32/libgcov.abin327236 -> 327236 bytes
-rw-r--r--lib/x86_64/libiberty.abin395168 -> 0 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/cc1bin16722384 -> 16830480 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/cc1plusbin17860408 -> 17963632 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/collect2bin390464 -> 391660 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/libfunction_reordering_plugin.0.sobin40808 -> 40836 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/liblto_plugin.0.sobin80368 -> 80568 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/lto-wrapperbin600912 -> 602188 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/lto1bin15988400 -> 16094684 bytes
-rwxr-xr-xlibexec/gcc/x86_64-linux-android/4.9/plugin/gengtypebin256648 -> 252952 bytes
-rw-r--r--share/gdb/python/gdb/FrameDecorator.py302
-rw-r--r--share/gdb/python/gdb/FrameIterator.py51
-rw-r--r--share/gdb/python/gdb/__init__.py4
-rw-r--r--share/gdb/python/gdb/command/__init__.py2
-rw-r--r--share/gdb/python/gdb/command/bound_registers.py45
-rw-r--r--share/gdb/python/gdb/command/explore.py2
-rw-r--r--share/gdb/python/gdb/command/frame_filters.py467
-rw-r--r--share/gdb/python/gdb/command/pretty_printers.py2
-rw-r--r--share/gdb/python/gdb/command/prompt.py2
-rw-r--r--share/gdb/python/gdb/command/type_printers.py2
-rw-r--r--share/gdb/python/gdb/frames.py228
-rw-r--r--share/gdb/python/gdb/function/__init__.py2
-rw-r--r--share/gdb/python/gdb/function/strfns.py2
-rw-r--r--share/gdb/python/gdb/printing.py2
-rw-r--r--share/gdb/python/gdb/prompt.py2
-rw-r--r--share/gdb/python/gdb/types.py2
-rw-r--r--share/gdb/syscalls/amd64-linux.xml2
-rw-r--r--share/gdb/syscalls/arm-linux.xml398
-rw-r--r--share/gdb/syscalls/gdb-syscalls.dtd2
-rw-r--r--share/gdb/syscalls/i386-linux.xml2
-rw-r--r--share/gdb/syscalls/mips-n32-linux.xml2
-rw-r--r--share/gdb/syscalls/mips-n64-linux.xml2
-rw-r--r--share/gdb/syscalls/mips-o32-linux.xml2
-rw-r--r--share/gdb/syscalls/ppc-linux.xml2
-rw-r--r--share/gdb/syscalls/ppc64-linux.xml2
-rw-r--r--share/gdb/syscalls/sparc-linux.xml2
-rw-r--r--share/gdb/syscalls/sparc64-linux.xml2
-rw-r--r--share/gdb/system-gdbinit/elinos.py91
-rw-r--r--share/gdb/system-gdbinit/wrs-linux.py25
l---------x86_64-linux-android/bin/ld.mcld2
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.x4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xbn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xd4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xr4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xs4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xu4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf32_x86_64.xw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.x4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xbn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xd4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xdc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xdw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xr4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xs4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xsc4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xsw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xu4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_i386.xw4
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.x15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xbn15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xc16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xd15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xdc16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xdw16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xn15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xr12
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xs13
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xsc10
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xsw10
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xu12
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_k1om.xw16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.x15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xbn15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xc16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xd15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xdc16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xdw16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xn15
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xr12
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xs13
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xsc10
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xsw10
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xu12
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_l1om.xw16
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.x5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xbn5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xc5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xd5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xdc5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xdw5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xn5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xr5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xs5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xsc5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xsw5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xu5
-rw-r--r--x86_64-linux-android/lib/ldscripts/elf_x86_64.xw5
-rw-r--r--x86_64-linux-android/lib/ldscripts/i386linux.x4
-rw-r--r--x86_64-linux-android/lib/ldscripts/i386linux.xbn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/i386linux.xn4
-rw-r--r--x86_64-linux-android/lib/ldscripts/i386linux.xr4
-rw-r--r--x86_64-linux-android/lib/ldscripts/i386linux.xu4
-rw-r--r--x86_64-linux-android/lib/libatomic.abin226874 -> 226874 bytes
-rw-r--r--x86_64-linux-android/lib/libgomp.abin449962 -> 489170 bytes
-rw-r--r--x86_64-linux-android/lib/libquadmath.abin931406 -> 931342 bytes
-rw-r--r--x86_64-linux-android/lib64/libatomic.abin368562 -> 368562 bytes
-rw-r--r--x86_64-linux-android/lib64/libgomp.abin689254 -> 747434 bytes
-rw-r--r--x86_64-linux-android/lib64/libquadmath.abin1233088 -> 1233088 bytes
-rw-r--r--x86_64-linux-android/libx32/libatomic.abin274158 -> 274158 bytes
-rw-r--r--x86_64-linux-android/libx32/libgomp.abin491952 -> 535852 bytes
-rw-r--r--x86_64-linux-android/libx32/libquadmath.abin941816 -> 941816 bytes
180 files changed, 2030 insertions, 190 deletions
diff --git a/SOURCES b/SOURCES
index e111615..8006183 100644
--- a/SOURCES
+++ b/SOURCES
@@ -6,16 +6,16 @@ toolchain/cloog.git 98972d5434ffcb4d11d2c81a46600e9a1cda9110
toolchain/isl.git b05d4572958c5d497da793f3317084bab90c3033 add isl-0.11.1.tar.bz2 needed by GCC 4.8 with graphite
toolchain/ppl.git 8ba1875b4c5341d902321761022a6d2a0b5b19a4 add ppl-1.0.tar.bz2
toolchain/expat.git 40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 expat package for building gdb-7.3
-toolchain/binutils.git c8e1636493f7d40bb0ba37501e9a6f67cd062a31 [2.24] Cortex-A53 erratum 835769 linker workaround This is ported from upstream binutils 2.24 branch commit: cde98f8566e14f52b896abc92c357cdd14717505
-toolchain/gcc.git ba21122c63b06a70b620c8990c517b87198ad05b [4.9] Restore recog state after finding pre-madd instruction. This patch backports svn r216853 from upsteam gcc-4.9 branch that fixed a bug introduced in fixing cortex a53 erratum 835769.
-toolchain/gdb.git 24237bc8bc3001a82d6cd9685719c4679f721792 fix some build errors
+toolchain/binutils.git aff326d7fffe9111be0900d433c6de6661c48af3 [2.24][2.25] Fix race condition causing assert
+toolchain/gcc.git f8623c7fd5ebd974202059297c57c705b34eab7a Merge "Revert "[4.9] Disable array bound warning in ARM We are seeing some false positive array bound warnings due to an issue in complete unroll. This patch disables this warning so we can switch the ARM build to 4.9. Will re-enable the warning once the issue is fixed.""
+toolchain/gdb.git 80dbdaa42b20e8aad18bcc4ee10abbd3ae922051 Add support for DT_MIPS_RLD_MAP2 tag.
toolchain/python.git 0d4194853e08d3244931523470331c00dfb94863 Fix python build inc_dirs[] and lib_dirs[] for linux/darwin
toolchain/perl.git 1121daca35c6c692602621eab28d4de19f0b347d Add -Dcc_as_ld to configure
-toolchain/mclinker.git 66bf13b826497336180182aef105716603921494 Merge branch 'master' of https://android.googlesource.com/toolchain/mclinker into aosp
+toolchain/mclinker.git d20e247caf801ae6418e4226a19dd98719a7af75 Fix comparison between signed and unsigned integer expressions [-Werror=sign-compare].
toolchain/yasm.git 87c09baff80ca5bbe938392d8f320e621707f317 test commit
-toolchain/clang.git (release_35) e8513044903a3766443ef6d5eab92e376f2eba32 Fix assertion failure on DeferredDeclsToEmit.
-toolchain/llvm.git (release_35) 6797a08398a6b54589c37e8d8f9e9a26b4fb5621 [ndk] Fix inappropriate debug info assertion.
-toolchain/compiler-rt.git (release_35) 58bfd9dc4d03012ed9e59dc21e6b2e098f9476f8 Implement __aeabi_idiv0 and __aeabi_uidiv0.
+toolchain/clang.git (release_35) f7bf93b58a05c72f7294cad69cfeb8d5d5851d60 [ndk] Frontend: Fix SourceColumnMap assertion failure on non-ascii characters.
+toolchain/llvm.git (release_35) a3ebbc54575b8a9ca280cb3587bb90bddd34352c Merge "[3.5] writable .gcc_except_table for mips[64]" into release_35
+toolchain/compiler-rt.git (release_35) 69e1e46d2b03c4a8d573120d8f202f4367930eb1 Do not define CRT_HAS_128BIT for MIPS64
toolchain/clang.git (release_34) a284801985744bd9667b9d14f079b3a2e8b19130 [ndk] Define __USER_LABEL_PREFIX__ to empty string.
toolchain/llvm.git (release_34) b2631bf0dc9579ddfb4bc1afdf7998c12fa268af Merge "python: AC_PATH_PROG -> AC_PATH_PROGS and fix search order" into release_34
toolchain/compiler-rt.git (release_34) 4f9b4718e8d836317c224955a1e87b7bb5252ae1 Update clear_cache to trunk@208591
diff --git a/bin/x86_64-linux-android-addr2line b/bin/x86_64-linux-android-addr2line
index fba1fa3..5f6bffe 100755
--- a/bin/x86_64-linux-android-addr2line
+++ b/bin/x86_64-linux-android-addr2line
Binary files differ
diff --git a/bin/x86_64-linux-android-ar b/bin/x86_64-linux-android-ar
index e7fdbbe..73b1d77 100755
--- a/bin/x86_64-linux-android-ar
+++ b/bin/x86_64-linux-android-ar
Binary files differ
diff --git a/bin/x86_64-linux-android-as b/bin/x86_64-linux-android-as
index 1390e4f..12ca068 100755
--- a/bin/x86_64-linux-android-as
+++ b/bin/x86_64-linux-android-as
Binary files differ
diff --git a/bin/x86_64-linux-android-c++filt b/bin/x86_64-linux-android-c++filt
index 0b11ac5..2186958 100755
--- a/bin/x86_64-linux-android-c++filt
+++ b/bin/x86_64-linux-android-c++filt
Binary files differ
diff --git a/bin/x86_64-linux-android-cpp b/bin/x86_64-linux-android-cpp
index b9884f0..35a6a1f 100755
--- a/bin/x86_64-linux-android-cpp
+++ b/bin/x86_64-linux-android-cpp
Binary files differ
diff --git a/bin/x86_64-linux-android-dwp b/bin/x86_64-linux-android-dwp
index 513847a..b8afc87 100755
--- a/bin/x86_64-linux-android-dwp
+++ b/bin/x86_64-linux-android-dwp
Binary files differ
diff --git a/bin/x86_64-linux-android-elfedit b/bin/x86_64-linux-android-elfedit
index 11914e9..9bc3f22 100755
--- a/bin/x86_64-linux-android-elfedit
+++ b/bin/x86_64-linux-android-elfedit
Binary files differ
diff --git a/bin/x86_64-linux-android-g++ b/bin/x86_64-linux-android-g++
index 551f7fb..c459073 100755
--- a/bin/x86_64-linux-android-g++
+++ b/bin/x86_64-linux-android-g++
Binary files differ
diff --git a/bin/x86_64-linux-android-gcc b/bin/x86_64-linux-android-gcc
index eaae53c..baf6354 100755
--- a/bin/x86_64-linux-android-gcc
+++ b/bin/x86_64-linux-android-gcc
Binary files differ
diff --git a/bin/x86_64-linux-android-gcc-ar b/bin/x86_64-linux-android-gcc-ar
index ab8a828..9b174fb 100755
--- a/bin/x86_64-linux-android-gcc-ar
+++ b/bin/x86_64-linux-android-gcc-ar
Binary files differ
diff --git a/bin/x86_64-linux-android-gcc-nm b/bin/x86_64-linux-android-gcc-nm
index 21e0cad..55919e6 100755
--- a/bin/x86_64-linux-android-gcc-nm
+++ b/bin/x86_64-linux-android-gcc-nm
Binary files differ
diff --git a/bin/x86_64-linux-android-gcc-ranlib b/bin/x86_64-linux-android-gcc-ranlib
index f05bfe1..6c55d27 100755
--- a/bin/x86_64-linux-android-gcc-ranlib
+++ b/bin/x86_64-linux-android-gcc-ranlib
Binary files differ
diff --git a/bin/x86_64-linux-android-gcov b/bin/x86_64-linux-android-gcov
index 087fb18..0c7cbc2 100755
--- a/bin/x86_64-linux-android-gcov
+++ b/bin/x86_64-linux-android-gcov
Binary files differ
diff --git a/bin/x86_64-linux-android-gcov-tool b/bin/x86_64-linux-android-gcov-tool
index b82d1bb..4065601 100755
--- a/bin/x86_64-linux-android-gcov-tool
+++ b/bin/x86_64-linux-android-gcov-tool
Binary files differ
diff --git a/bin/x86_64-linux-android-gdb b/bin/x86_64-linux-android-gdb
index d584531..9f64c45 100755
--- a/bin/x86_64-linux-android-gdb
+++ b/bin/x86_64-linux-android-gdb
Binary files differ
diff --git a/bin/x86_64-linux-android-gprof b/bin/x86_64-linux-android-gprof
index 3b19d83..4968fd5 100755
--- a/bin/x86_64-linux-android-gprof
+++ b/bin/x86_64-linux-android-gprof
Binary files differ
diff --git a/bin/x86_64-linux-android-ld.bfd b/bin/x86_64-linux-android-ld.bfd
index a07a1ad..4d2caec 100755
--- a/bin/x86_64-linux-android-ld.bfd
+++ b/bin/x86_64-linux-android-ld.bfd
Binary files differ
diff --git a/bin/x86_64-linux-android-ld.gold b/bin/x86_64-linux-android-ld.gold
index a7443f2..add9f3a 100755
--- a/bin/x86_64-linux-android-ld.gold
+++ b/bin/x86_64-linux-android-ld.gold
Binary files differ
diff --git a/bin/x86_64-linux-android-ld.mcld b/bin/x86_64-linux-android-ld.mcld
index 23cf2c8..a50dd25 100755
--- a/bin/x86_64-linux-android-ld.mcld
+++ b/bin/x86_64-linux-android-ld.mcld
Binary files differ
diff --git a/bin/x86_64-linux-android-nm b/bin/x86_64-linux-android-nm
index 08a562f..a367bbb 100755
--- a/bin/x86_64-linux-android-nm
+++ b/bin/x86_64-linux-android-nm
Binary files differ
diff --git a/bin/x86_64-linux-android-objcopy b/bin/x86_64-linux-android-objcopy
index 76005e3..8e53a53 100755
--- a/bin/x86_64-linux-android-objcopy
+++ b/bin/x86_64-linux-android-objcopy
Binary files differ
diff --git a/bin/x86_64-linux-android-objdump b/bin/x86_64-linux-android-objdump
index 1ea263e..c266563 100755
--- a/bin/x86_64-linux-android-objdump
+++ b/bin/x86_64-linux-android-objdump
Binary files differ
diff --git a/bin/x86_64-linux-android-ranlib b/bin/x86_64-linux-android-ranlib
index 3e62354..6aa289d 100755
--- a/bin/x86_64-linux-android-ranlib
+++ b/bin/x86_64-linux-android-ranlib
Binary files differ
diff --git a/bin/x86_64-linux-android-readelf b/bin/x86_64-linux-android-readelf
index de839a4..87f909d 100755
--- a/bin/x86_64-linux-android-readelf
+++ b/bin/x86_64-linux-android-readelf
Binary files differ
diff --git a/bin/x86_64-linux-android-size b/bin/x86_64-linux-android-size
index 556e223..2f9e5f3 100755
--- a/bin/x86_64-linux-android-size
+++ b/bin/x86_64-linux-android-size
Binary files differ
diff --git a/bin/x86_64-linux-android-strings b/bin/x86_64-linux-android-strings
index ebd27f9..deb663f 100755
--- a/bin/x86_64-linux-android-strings
+++ b/bin/x86_64-linux-android-strings
Binary files differ
diff --git a/bin/x86_64-linux-android-strip b/bin/x86_64-linux-android-strip
index 5236574..a1d96b7 100755
--- a/bin/x86_64-linux-android-strip
+++ b/bin/x86_64-linux-android-strip
Binary files differ
diff --git a/include/gdb/jit-reader.h b/include/gdb/jit-reader.h
index 7cff81a..e9599a2 100644
--- a/include/gdb/jit-reader.h
+++ b/include/gdb/jit-reader.h
@@ -1,6 +1,6 @@
/* JIT declarations for GDB, the GNU Debugger.
- Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ Copyright (C) 2011-2014 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtbegin.o b/lib/gcc/x86_64-linux-android/4.9/32/crtbegin.o
index 77fe4f4..9ff8787 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtbegin.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtbegin.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtbeginS.o b/lib/gcc/x86_64-linux-android/4.9/32/crtbeginS.o
index 74f5b7a..2a2a170 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtbeginS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtbeginT.o b/lib/gcc/x86_64-linux-android/4.9/32/crtbeginT.o
index 77fe4f4..9ff8787 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtbeginT.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtend.o b/lib/gcc/x86_64-linux-android/4.9/32/crtend.o
index 0d8db8d..940fc79 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtend.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtend.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtendS.o b/lib/gcc/x86_64-linux-android/4.9/32/crtendS.o
index 0d8db8d..940fc79 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtendS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtendS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtfastmath.o b/lib/gcc/x86_64-linux-android/4.9/32/crtfastmath.o
index a69daa1..4a8fd3e 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtfastmath.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtprec32.o b/lib/gcc/x86_64-linux-android/4.9/32/crtprec32.o
index b0d3cb0..c69802f 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtprec32.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtprec32.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtprec64.o b/lib/gcc/x86_64-linux-android/4.9/32/crtprec64.o
index 381c5e5..05b7f11 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtprec64.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtprec64.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/crtprec80.o b/lib/gcc/x86_64-linux-android/4.9/32/crtprec80.o
index b869221..238c9be 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/crtprec80.o
+++ b/lib/gcc/x86_64-linux-android/4.9/32/crtprec80.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/libgcc.a b/lib/gcc/x86_64-linux-android/4.9/32/libgcc.a
index 82a3cbd..3eca262 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/libgcc.a
+++ b/lib/gcc/x86_64-linux-android/4.9/32/libgcc.a
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/32/libgcov.a b/lib/gcc/x86_64-linux-android/4.9/32/libgcov.a
index f7d2415..0378e9e 100644
--- a/lib/gcc/x86_64-linux-android/4.9/32/libgcov.a
+++ b/lib/gcc/x86_64-linux-android/4.9/32/libgcov.a
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtbegin.o b/lib/gcc/x86_64-linux-android/4.9/crtbegin.o
index cc9da22..e096d73 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtbegin.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtbegin.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtbeginS.o b/lib/gcc/x86_64-linux-android/4.9/crtbeginS.o
index db87d0a..ec9b3fa 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtbeginS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtbeginT.o b/lib/gcc/x86_64-linux-android/4.9/crtbeginT.o
index cc9da22..e096d73 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtbeginT.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtend.o b/lib/gcc/x86_64-linux-android/4.9/crtend.o
index 451e2ec..0eaa369 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtend.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtend.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtendS.o b/lib/gcc/x86_64-linux-android/4.9/crtendS.o
index 451e2ec..0eaa369 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtendS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtendS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtfastmath.o b/lib/gcc/x86_64-linux-android/4.9/crtfastmath.o
index 7586a98..312363b 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtfastmath.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtprec32.o b/lib/gcc/x86_64-linux-android/4.9/crtprec32.o
index fd3de32..94bfcc8 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtprec32.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtprec32.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtprec64.o b/lib/gcc/x86_64-linux-android/4.9/crtprec64.o
index ef505ab..5d095c9 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtprec64.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtprec64.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/crtprec80.o b/lib/gcc/x86_64-linux-android/4.9/crtprec80.o
index 8dba5f5..30d54e0 100644
--- a/lib/gcc/x86_64-linux-android/4.9/crtprec80.o
+++ b/lib/gcc/x86_64-linux-android/4.9/crtprec80.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/libgcc.a b/lib/gcc/x86_64-linux-android/4.9/libgcc.a
index 9617035..2da6dde 100644
--- a/lib/gcc/x86_64-linux-android/4.9/libgcc.a
+++ b/lib/gcc/x86_64-linux-android/4.9/libgcc.a
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/libgcov.a b/lib/gcc/x86_64-linux-android/4.9/libgcov.a
index 9f0e3fb..4da0bbe 100644
--- a/lib/gcc/x86_64-linux-android/4.9/libgcov.a
+++ b/lib/gcc/x86_64-linux-android/4.9/libgcov.a
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtbegin.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtbegin.o
index 4029a2c..a130e33 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtbegin.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtbegin.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginS.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginS.o
index b5b8967..27a9b69 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginT.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginT.o
index 4029a2c..a130e33 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginT.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtend.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtend.o
index 96ca016..bdcf677 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtend.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtend.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtendS.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtendS.o
index 96ca016..bdcf677 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtendS.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtendS.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtfastmath.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtfastmath.o
index f62e448..e16e930 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtfastmath.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtfastmath.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec32.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec32.o
index c8cfa52..28acb83 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec32.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec32.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec64.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec64.o
index fd09196..110a10e 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec64.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec64.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec80.o b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec80.o
index 1b13e92..3d176c8 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/crtprec80.o
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/crtprec80.o
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/libgcc.a b/lib/gcc/x86_64-linux-android/4.9/x32/libgcc.a
index d4fe06f..f302c94 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/libgcc.a
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/libgcc.a
Binary files differ
diff --git a/lib/gcc/x86_64-linux-android/4.9/x32/libgcov.a b/lib/gcc/x86_64-linux-android/4.9/x32/libgcov.a
index bb5fd84..052d3d4 100644
--- a/lib/gcc/x86_64-linux-android/4.9/x32/libgcov.a
+++ b/lib/gcc/x86_64-linux-android/4.9/x32/libgcov.a
Binary files differ
diff --git a/lib/x86_64/libiberty.a b/lib/x86_64/libiberty.a
deleted file mode 100644
index a906696..0000000
--- a/lib/x86_64/libiberty.a
+++ /dev/null
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/cc1 b/libexec/gcc/x86_64-linux-android/4.9/cc1
index 2615386..af64cd9 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/cc1
+++ b/libexec/gcc/x86_64-linux-android/4.9/cc1
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/cc1plus b/libexec/gcc/x86_64-linux-android/4.9/cc1plus
index 3417605..c731c9d 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/cc1plus
+++ b/libexec/gcc/x86_64-linux-android/4.9/cc1plus
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/collect2 b/libexec/gcc/x86_64-linux-android/4.9/collect2
index fc0289d..7260312 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/collect2
+++ b/libexec/gcc/x86_64-linux-android/4.9/collect2
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/libfunction_reordering_plugin.0.so b/libexec/gcc/x86_64-linux-android/4.9/libfunction_reordering_plugin.0.so
index d79cb97..1cad0a4 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/libfunction_reordering_plugin.0.so
+++ b/libexec/gcc/x86_64-linux-android/4.9/libfunction_reordering_plugin.0.so
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/liblto_plugin.0.so b/libexec/gcc/x86_64-linux-android/4.9/liblto_plugin.0.so
index 425ffa8..181caf3 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/liblto_plugin.0.so
+++ b/libexec/gcc/x86_64-linux-android/4.9/liblto_plugin.0.so
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/lto-wrapper b/libexec/gcc/x86_64-linux-android/4.9/lto-wrapper
index 810aa0b..90d310f 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/lto-wrapper
+++ b/libexec/gcc/x86_64-linux-android/4.9/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/lto1 b/libexec/gcc/x86_64-linux-android/4.9/lto1
index dac2f68..d680b4f 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/lto1
+++ b/libexec/gcc/x86_64-linux-android/4.9/lto1
Binary files differ
diff --git a/libexec/gcc/x86_64-linux-android/4.9/plugin/gengtype b/libexec/gcc/x86_64-linux-android/4.9/plugin/gengtype
index 42a5db4..b10d8d7 100755
--- a/libexec/gcc/x86_64-linux-android/4.9/plugin/gengtype
+++ b/libexec/gcc/x86_64-linux-android/4.9/plugin/gengtype
Binary files differ
diff --git a/share/gdb/python/gdb/FrameDecorator.py b/share/gdb/python/gdb/FrameDecorator.py
new file mode 100644
index 0000000..1bbc5ab
--- /dev/null
+++ b/share/gdb/python/gdb/FrameDecorator.py
@@ -0,0 +1,302 @@
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+# This small code snippet deals with problem of strings in Python 2.x
+# and Python 3.x. Python 2.x has str and unicode classes which are
+# sub-classes of basestring. In Python 3.x all strings are encoded
+# and basestring has been removed.
+try:
+ basestring
+except NameError:
+ basestring = str
+
+class FrameDecorator(object):
+ """Basic implementation of a Frame Decorator"""
+
+ """ This base frame decorator decorates a frame or another frame
+ decorator, and provides convenience methods. If this object is
+ wrapping a frame decorator, defer to that wrapped object's method
+ if it has one. This allows for frame decorators that have
+ sub-classed FrameDecorator object, but also wrap other frame
+ decorators on the same frame to correctly execute.
+
+ E.g
+
+ If the result of frame filters running means we have one gdb.Frame
+ wrapped by multiple frame decorators, all sub-classed from
+ FrameDecorator, the resulting hierarchy will be:
+
+ Decorator1
+ -- (wraps) Decorator2
+ -- (wraps) FrameDecorator
+ -- (wraps) gdb.Frame
+
+ In this case we have two frame decorators, both of which are
+ sub-classed from FrameDecorator. If Decorator1 just overrides the
+ 'function' method, then all of the other methods are carried out
+ by the super-class FrameDecorator. But Decorator2 may have
+ overriden other methods, so FrameDecorator will look at the
+ 'base' parameter and defer to that class's methods. And so on,
+ down the chain."""
+
+ # 'base' can refer to a gdb.Frame or another frame decorator. In
+ # the latter case, the child class will have called the super
+ # method and _base will be an object conforming to the Frame Filter
+ # class.
+ def __init__(self, base):
+ self._base = base
+
+ @staticmethod
+ def _is_limited_frame(frame):
+ """Internal utility to determine if the frame is special or
+ limited."""
+ sal = frame.find_sal()
+
+ if (not sal.symtab or not sal.symtab.filename
+ or frame.type() == gdb.DUMMY_FRAME
+ or frame.type() == gdb.SIGTRAMP_FRAME):
+
+ return True
+
+ return False
+
+ def elided(self):
+ """Return any elided frames that this class might be
+ wrapping, or None."""
+ if hasattr(self._base, "elided"):
+ return self._base.elided()
+
+ return None
+
+ def function(self):
+ """ Return the name of the frame's function or an address of
+ the function of the frame. First determine if this is a
+ special frame. If not, try to determine filename from GDB's
+ frame internal function API. Finally, if a name cannot be
+ determined return the address. If this function returns an
+ address, GDB will attempt to determine the function name from
+ its internal minimal symbols store (for example, for inferiors
+ without debug-info)."""
+
+ # Both gdb.Frame, and FrameDecorator have a method called
+ # "function", so determine which object this is.
+ if not isinstance(self._base, gdb.Frame):
+ if hasattr(self._base, "function"):
+ # If it is not a gdb.Frame, and there is already a
+ # "function" method, use that.
+ return self._base.function()
+
+ frame = self.inferior_frame()
+
+ if frame.type() == gdb.DUMMY_FRAME:
+ return "<function called from gdb>"
+ elif frame.type() == gdb.SIGTRAMP_FRAME:
+ return "<signal handler called>"
+
+ func = frame.function()
+
+ # If we cannot determine the function name, return the
+ # address. If GDB detects an integer value from this function
+ # it will attempt to find the function name from minimal
+ # symbols via its own internal functions.
+ if func == None:
+ pc = frame.pc()
+ return pc
+
+ return str(func)
+
+ def address(self):
+ """ Return the address of the frame's pc"""
+
+ if hasattr(self._base, "address"):
+ return self._base.address()
+
+ frame = self.inferior_frame()
+ return frame.pc()
+
+ def filename(self):
+ """ Return the filename associated with this frame, detecting
+ and returning the appropriate library name is this is a shared
+ library."""
+
+ if hasattr(self._base, "filename"):
+ return self._base.filename()
+
+ frame = self.inferior_frame()
+ sal = frame.find_sal()
+ if not sal.symtab or not sal.symtab.filename:
+ pc = frame.pc()
+ return gdb.solib_name(pc)
+ else:
+ return sal.symtab.filename
+
+ def frame_args(self):
+ """ Return an iterable of frame arguments for this frame, if
+ any. The iterable object contains objects conforming with the
+ Symbol/Value interface. If there are no frame arguments, or
+ if this frame is deemed to be a special case, return None."""
+
+ if hasattr(self._base, "frame_args"):
+ return self._base.frame_args()
+
+ frame = self.inferior_frame()
+ if self._is_limited_frame(frame):
+ return None
+
+ args = FrameVars(frame)
+ return args.fetch_frame_args()
+
+ def frame_locals(self):
+ """ Return an iterable of local variables for this frame, if
+ any. The iterable object contains objects conforming with the
+ Symbol/Value interface. If there are no frame locals, or if
+ this frame is deemed to be a special case, return None."""
+
+ if hasattr(self._base, "frame_locals"):
+ return self._base.frame_locals()
+
+ frame = self.inferior_frame()
+ if self._is_limited_frame(frame):
+ return None
+
+ args = FrameVars(frame)
+ return args.fetch_frame_locals()
+
+ def line(self):
+ """ Return line number information associated with the frame's
+ pc. If symbol table/line information does not exist, or if
+ this frame is deemed to be a special case, return None"""
+
+ if hasattr(self._base, "line"):
+ return self._base.line()
+
+ frame = self.inferior_frame()
+ if self._is_limited_frame(frame):
+ return None
+
+ sal = frame.find_sal()
+ if (sal):
+ return sal.line
+ else:
+ return None
+
+ def inferior_frame(self):
+ """ Return the gdb.Frame underpinning this frame decorator."""
+
+ # If 'base' is a frame decorator, we want to call its inferior
+ # frame method. If '_base' is a gdb.Frame, just return that.
+ if hasattr(self._base, "inferior_frame"):
+ return self._base.inferior_frame()
+ return self._base
+
+class SymValueWrapper(object):
+ """A container class conforming to the Symbol/Value interface
+ which holds frame locals or frame arguments."""
+ def __init__(self, symbol, value):
+ self.sym = symbol
+ self.val = value
+
+ def value(self):
+ """ Return the value associated with this symbol, or None"""
+ return self.val
+
+ def symbol(self):
+ """ Return the symbol, or Python text, associated with this
+ symbol, or None"""
+ return self.sym
+
+class FrameVars(object):
+
+ """Utility class to fetch and store frame local variables, or
+ frame arguments."""
+
+ def __init__(self, frame):
+ self.frame = frame
+ self.symbol_class = {
+ gdb.SYMBOL_LOC_STATIC: True,
+ gdb.SYMBOL_LOC_REGISTER: True,
+ gdb.SYMBOL_LOC_ARG: True,
+ gdb.SYMBOL_LOC_REF_ARG: True,
+ gdb.SYMBOL_LOC_LOCAL: True,
+ gdb.SYMBOL_LOC_REGPARM_ADDR: True,
+ gdb.SYMBOL_LOC_COMPUTED: True
+ }
+
+ def fetch_b(self, sym):
+ """ Local utility method to determine if according to Symbol
+ type whether it should be included in the iterator. Not all
+ symbols are fetched, and only symbols that return
+ True from this method should be fetched."""
+
+ # SYM may be a string instead of a symbol in the case of
+ # synthetic local arguments or locals. If that is the case,
+ # always fetch.
+ if isinstance(sym, basestring):
+ return True
+
+ sym_type = sym.addr_class
+
+ return self.symbol_class.get(sym_type, False)
+
+ def fetch_frame_locals(self):
+ """Public utility method to fetch frame local variables for
+ the stored frame. Frame arguments are not fetched. If there
+ are no frame local variables, return an empty list."""
+ lvars = []
+
+ try:
+ block = self.frame.block()
+ except RuntimeError:
+ block = None
+
+ while block != None:
+ if block.is_global or block.is_static:
+ break
+ for sym in block:
+ if sym.is_argument:
+ continue;
+ if self.fetch_b(sym):
+ lvars.append(SymValueWrapper(sym, None))
+
+ block = block.superblock
+
+ return lvars
+
+ def fetch_frame_args(self):
+ """Public utility method to fetch frame arguments for the
+ stored frame. Frame arguments are the only type fetched. If
+ there are no frame argument variables, return an empty list."""
+
+ args = []
+
+ try:
+ block = self.frame.block()
+ except RuntimeError:
+ block = None
+
+ while block != None:
+ if block.function != None:
+ break
+ block = block.superblock
+
+ if block != None:
+ for sym in block:
+ if not sym.is_argument:
+ continue;
+ args.append(SymValueWrapper(sym, None))
+
+ return args
diff --git a/share/gdb/python/gdb/FrameIterator.py b/share/gdb/python/gdb/FrameIterator.py
new file mode 100644
index 0000000..c99a91e
--- /dev/null
+++ b/share/gdb/python/gdb/FrameIterator.py
@@ -0,0 +1,51 @@
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb
+import itertools
+
+class FrameIterator(object):
+ """A gdb.Frame iterator. Iterates over gdb.Frames or objects that
+ conform to that interface."""
+
+ def __init__(self, frame_obj):
+ """Initialize a FrameIterator.
+
+ Arguments:
+ frame_obj the starting frame."""
+
+ super(FrameIterator, self).__init__()
+ self.frame = frame_obj
+
+ def __iter__(self):
+ return self
+
+ def next(self):
+ """next implementation.
+
+ Returns:
+ The next oldest frame."""
+
+ result = self.frame
+ if result is None:
+ raise StopIteration
+ self.frame = result.older()
+ return result
+
+ # Python 3.x requires __next__(self) while Python 2.x requires
+ # next(self). Define next(self), and for Python 3.x create this
+ # wrapper.
+ def __next__(self):
+ return self.next()
diff --git a/share/gdb/python/gdb/__init__.py b/share/gdb/python/gdb/__init__.py
index 6311583..95a76c2 100644
--- a/share/gdb/python/gdb/__init__.py
+++ b/share/gdb/python/gdb/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -67,6 +67,8 @@ pretty_printers = []
# Initial type printers.
type_printers = []
+# Initial frame filters.
+frame_filters = {}
# Convenience variable to GDB's python directory
PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
diff --git a/share/gdb/python/gdb/command/__init__.py b/share/gdb/python/gdb/command/__init__.py
index 21eaef8..ca768c8 100644
--- a/share/gdb/python/gdb/command/__init__.py
+++ b/share/gdb/python/gdb/command/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/bound_registers.py b/share/gdb/python/gdb/command/bound_registers.py
new file mode 100644
index 0000000..24d4c45
--- /dev/null
+++ b/share/gdb/python/gdb/command/bound_registers.py
@@ -0,0 +1,45 @@
+# Pretty-printer utilities.
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb.printing
+
+class BoundPrinter:
+ """Adds size field to a _rawbound128 type."""
+
+ def __init__ (self, val):
+ self.val = val
+
+ def to_string (self):
+ upper = self.val["ubound"]
+ lower = self.val["lbound"]
+ size = (long) ((upper) - (lower))
+ if size > -1:
+ size = size + 1
+ result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
+ return result
+
+# There are two pattern matching used: first one is related to a library
+# second is related to the type. Since we are displaying a register all
+# libraries are accepted. Type to be processed is the same present
+# in the xml file.
+
+def build_pretty_printer ():
+ pp = gdb.printing.RegexpCollectionPrettyPrinter (".*")
+ pp.add_printer ('bound', '^__gdb_builtin_type_bound128', BoundPrinter)
+ return pp
+
+gdb.printing.register_pretty_printer (gdb.current_objfile (),
+ build_pretty_printer ())
diff --git a/share/gdb/python/gdb/command/explore.py b/share/gdb/python/gdb/command/explore.py
index dd77875..fd79de3 100644
--- a/share/gdb/python/gdb/command/explore.py
+++ b/share/gdb/python/gdb/command/explore.py
@@ -1,5 +1,5 @@
# GDB 'explore' command.
-# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+# Copyright (C) 2012-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/frame_filters.py b/share/gdb/python/gdb/command/frame_filters.py
new file mode 100644
index 0000000..450c5bf
--- /dev/null
+++ b/share/gdb/python/gdb/command/frame_filters.py
@@ -0,0 +1,467 @@
+# Frame-filter commands.
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""GDB commands for working with frame-filters."""
+
+import sys
+import gdb
+import copy
+from gdb.FrameIterator import FrameIterator
+from gdb.FrameDecorator import FrameDecorator
+import gdb.frames
+import itertools
+
+# GDB Commands.
+class SetFilterPrefixCmd(gdb.Command):
+ """Prefix command for 'set' frame-filter related operations."""
+
+ def __init__(self):
+ super(SetFilterPrefixCmd, self).__init__("set frame-filter",
+ gdb.COMMAND_OBSCURE,
+ gdb.COMPLETE_NONE, True)
+
+class ShowFilterPrefixCmd(gdb.Command):
+ """Prefix command for 'show' frame-filter related operations."""
+ def __init__(self):
+ super(ShowFilterPrefixCmd, self).__init__("show frame-filter",
+ gdb.COMMAND_OBSCURE,
+ gdb.COMPLETE_NONE, True)
+class InfoFrameFilter(gdb.Command):
+ """List all registered Python frame-filters.
+
+ Usage: info frame-filters
+ """
+
+ def __init__(self):
+ super(InfoFrameFilter, self).__init__("info frame-filter",
+ gdb.COMMAND_DATA)
+ @staticmethod
+ def enabled_string(state):
+ """Return "Yes" if filter is enabled, otherwise "No"."""
+ if state:
+ return "Yes"
+ else:
+ return "No"
+
+ def list_frame_filters(self, frame_filters):
+ """ Internal worker function to list and print frame filters
+ in a dictionary.
+
+ Arguments:
+ frame_filters: The name of the dictionary, as
+ specified by GDB user commands.
+ """
+
+ sorted_frame_filters = sorted(frame_filters.items(),
+ key=lambda i: gdb.frames.get_priority(i[1]),
+ reverse=True)
+
+ if len(sorted_frame_filters) == 0:
+ print(" No frame filters registered.")
+ else:
+ print(" Priority Enabled Name")
+ for frame_filter in sorted_frame_filters:
+ name = frame_filter[0]
+ try:
+ priority = '{:<8}'.format(
+ str(gdb.frames.get_priority(frame_filter[1])))
+ enabled = '{:<7}'.format(
+ self.enabled_string(gdb.frames.get_enabled(frame_filter[1])))
+ except Exception:
+ e = sys.exc_info()[1]
+ print(" Error printing filter '"+name+"': "+str(e))
+ else:
+ print(" %s %s %s" % (priority, enabled, name))
+
+ def print_list(self, title, filter_list, blank_line):
+ print(title)
+ self.list_frame_filters(filter_list)
+ if blank_line:
+ print("")
+
+ def invoke(self, arg, from_tty):
+ self.print_list("global frame-filters:", gdb.frame_filters, True)
+
+ cp = gdb.current_progspace()
+ self.print_list("progspace %s frame-filters:" % cp.filename,
+ cp.frame_filters, True)
+
+ for objfile in gdb.objfiles():
+ self.print_list("objfile %s frame-filters:" % objfile.filename,
+ objfile.frame_filters, False)
+
+# Internal enable/disable functions.
+
+def _enable_parse_arg(cmd_name, arg):
+ """ Internal worker function to take an argument from
+ enable/disable and return a tuple of arguments.
+
+ Arguments:
+ cmd_name: Name of the command invoking this function.
+ args: The argument as a string.
+
+ Returns:
+ A tuple containing the dictionary, and the argument, or just
+ the dictionary in the case of "all".
+ """
+
+ argv = gdb.string_to_argv(arg);
+ argc = len(argv)
+ if argv[0] == "all" and argc > 1:
+ raise gdb.GdbError(cmd_name + ": with 'all' " \
+ "you may not specify a filter.")
+ else:
+ if argv[0] != "all" and argc != 2:
+ raise gdb.GdbError(cmd_name + " takes exactly two arguments.")
+
+ return argv
+
+def _do_enable_frame_filter(command_tuple, flag):
+ """Worker for enabling/disabling frame_filters.
+
+ Arguments:
+ command_type: A tuple with the first element being the
+ frame filter dictionary, and the second being
+ the frame filter name.
+ flag: True for Enable, False for Disable.
+ """
+
+ list_op = command_tuple[0]
+ op_list = gdb.frames.return_list(list_op)
+
+ if list_op == "all":
+ for item in op_list:
+ gdb.frames.set_enabled(item, flag)
+ else:
+ frame_filter = command_tuple[1]
+ try:
+ ff = op_list[frame_filter]
+ except KeyError:
+ msg = "frame-filter '" + str(name) + "' not found."
+ raise gdb.GdbError(msg)
+
+ gdb.frames.set_enabled(ff, flag)
+
+def _complete_frame_filter_list(text, word, all_flag):
+ """Worker for frame filter dictionary name completion.
+
+ Arguments:
+ text: The full text of the command line.
+ word: The most recent word of the command line.
+ all_flag: Whether to include the word "all" in completion.
+
+ Returns:
+ A list of suggested frame filter dictionary name completions
+ from text/word analysis. This list can be empty when there
+ are no suggestions for completion.
+ """
+ if all_flag == True:
+ filter_locations = ["all", "global", "progspace"]
+ else:
+ filter_locations = ["global", "progspace"]
+ for objfile in gdb.objfiles():
+ filter_locations.append(objfile.filename)
+
+ # If the user just asked for completions with no completion
+ # hints, just return all the frame filter dictionaries we know
+ # about.
+ if (text == ""):
+ return filter_locations
+
+ # Otherwise filter on what we know.
+ flist = filter(lambda x,y=text:x.startswith(y), filter_locations)
+
+ # If we only have one completion, complete it and return it.
+ if len(flist) == 1:
+ flist[0] = flist[0][len(text)-len(word):]
+
+ # Otherwise, return an empty list, or a list of frame filter
+ # dictionaries that the previous filter operation returned.
+ return flist
+
+def _complete_frame_filter_name(word, printer_dict):
+ """Worker for frame filter name completion.
+
+ Arguments:
+
+ word: The most recent word of the command line.
+
+ printer_dict: The frame filter dictionary to search for frame
+ filter name completions.
+
+ Returns: A list of suggested frame filter name completions
+ from word analysis of the frame filter dictionary. This list
+ can be empty when there are no suggestions for completion.
+ """
+
+ printer_keys = printer_dict.keys()
+ if (word == ""):
+ return printer_keys
+
+ flist = filter(lambda x,y=word:x.startswith(y), printer_keys)
+ return flist
+
+class EnableFrameFilter(gdb.Command):
+ """GDB command to disable the specified frame-filter.
+
+ Usage: enable frame-filter enable DICTIONARY [NAME]
+
+ DICTIONARY is the name of the frame filter dictionary on which to
+ operate. If dictionary is set to "all", perform operations on all
+ dictionaries. Named dictionaries are: "global" for the global
+ frame filter dictionary, "progspace" for the program space's frame
+ filter dictionary. If either all, or the two named dictionaries
+ are not specified, the dictionary name is assumed to be the name
+ of the object-file name.
+
+ NAME matches the name of the frame-filter to operate on. If
+ DICTIONARY is "all", NAME is ignored.
+ """
+ def __init__(self):
+ super(EnableFrameFilter, self).__init__("enable frame-filter",
+ gdb.COMMAND_DATA)
+ def complete(self, text, word):
+ """Completion function for both frame filter dictionary, and
+ frame filter name."""
+ if text.count(" ") == 0:
+ return _complete_frame_filter_list(text, word, True)
+ else:
+ printer_list = gdb.frames.return_list(text.split()[0].rstrip())
+ return _complete_frame_filter_name(word, printer_list)
+
+ def invoke(self, arg, from_tty):
+ command_tuple = _enable_parse_arg("enable frame-filter", arg)
+ _do_enable_frame_filter(command_tuple, True)
+
+
+class DisableFrameFilter(gdb.Command):
+ """GDB command to disable the specified frame-filter.
+
+ Usage: disable frame-filter disable DICTIONARY [NAME]
+
+ DICTIONARY is the name of the frame filter dictionary on which to
+ operate. If dictionary is set to "all", perform operations on all
+ dictionaries. Named dictionaries are: "global" for the global
+ frame filter dictionary, "progspace" for the program space's frame
+ filter dictionary. If either all, or the two named dictionaries
+ are not specified, the dictionary name is assumed to be the name
+ of the object-file name.
+
+ NAME matches the name of the frame-filter to operate on. If
+ DICTIONARY is "all", NAME is ignored.
+ """
+ def __init__(self):
+ super(DisableFrameFilter, self).__init__("disable frame-filter",
+ gdb.COMMAND_DATA)
+
+ def complete(self, text, word):
+ """Completion function for both frame filter dictionary, and
+ frame filter name."""
+ if text.count(" ") == 0:
+ return _complete_frame_filter_list(text, word, True)
+ else:
+ printer_list = gdb.frames.return_list(text.split()[0].rstrip())
+ return _complete_frame_filter_name(word, printer_list)
+
+ def invoke(self, arg, from_tty):
+ command_tuple = _enable_parse_arg("disable frame-filter", arg)
+ _do_enable_frame_filter(command_tuple, False)
+
+class SetFrameFilterPriority(gdb.Command):
+ """GDB command to set the priority of the specified frame-filter.
+
+ Usage: set frame-filter priority DICTIONARY NAME PRIORITY
+
+ DICTIONARY is the name of the frame filter dictionary on which to
+ operate. Named dictionaries are: "global" for the global frame
+ filter dictionary, "progspace" for the program space's framefilter
+ dictionary. If either of these two are not specified, the
+ dictionary name is assumed to be the name of the object-file name.
+
+ NAME matches the name of the frame filter to operate on.
+
+ PRIORITY is the an integer to assign the new priority to the frame
+ filter.
+ """
+
+ def __init__(self):
+ super(SetFrameFilterPriority, self).__init__("set frame-filter " \
+ "priority",
+ gdb.COMMAND_DATA)
+
+ def _parse_pri_arg(self, arg):
+ """Internal worker to parse a priority from a tuple.
+
+ Arguments:
+ arg: Tuple which contains the arguments from the command.
+
+ Returns:
+ A tuple containing the dictionary, name and priority from
+ the arguments.
+
+ Raises:
+ gdb.GdbError: An error parsing the arguments.
+ """
+
+ argv = gdb.string_to_argv(arg);
+ argc = len(argv)
+ if argc != 3:
+ print("set frame-filter priority " \
+ "takes exactly three arguments.")
+ return None
+
+ return argv
+
+ def _set_filter_priority(self, command_tuple):
+ """Internal worker for setting priority of frame-filters, by
+ parsing a tuple and calling _set_priority with the parsed
+ tuple.
+
+ Arguments:
+ command_tuple: Tuple which contains the arguments from the
+ command.
+ """
+
+ list_op = command_tuple[0]
+ frame_filter = command_tuple[1]
+
+ # GDB returns arguments as a string, so convert priority to
+ # a number.
+ priority = int(command_tuple[2])
+
+ op_list = gdb.frames.return_list(list_op)
+
+ try:
+ ff = op_list[frame_filter]
+ except KeyError:
+ msg = "frame-filter '" + str(name) + "' not found."
+ raise gdb.GdbError(msg)
+
+ gdb.frames.set_priority(ff, priority)
+
+ def complete(self, text, word):
+ """Completion function for both frame filter dictionary, and
+ frame filter name."""
+ if text.count(" ") == 0:
+ return _complete_frame_filter_list(text, word, False)
+ else:
+ printer_list = gdb.frames.return_list(text.split()[0].rstrip())
+ return _complete_frame_filter_name(word, printer_list)
+
+ def invoke(self, arg, from_tty):
+ command_tuple = self._parse_pri_arg(arg)
+ if command_tuple != None:
+ self._set_filter_priority(command_tuple)
+
+class ShowFrameFilterPriority(gdb.Command):
+ """GDB command to show the priority of the specified frame-filter.
+
+ Usage: show frame-filter priority DICTIONARY NAME
+
+ DICTIONARY is the name of the frame filter dictionary on which to
+ operate. Named dictionaries are: "global" for the global frame
+ filter dictionary, "progspace" for the program space's framefilter
+ dictionary. If either of these two are not specified, the
+ dictionary name is assumed to be the name of the object-file name.
+
+ NAME matches the name of the frame-filter to operate on.
+ """
+
+ def __init__(self):
+ super(ShowFrameFilterPriority, self).__init__("show frame-filter " \
+ "priority",
+ gdb.COMMAND_DATA)
+
+ def _parse_pri_arg(self, arg):
+ """Internal worker to parse a dictionary and name from a
+ tuple.
+
+ Arguments:
+ arg: Tuple which contains the arguments from the command.
+
+ Returns:
+ A tuple containing the dictionary, and frame filter name.
+
+ Raises:
+ gdb.GdbError: An error parsing the arguments.
+ """
+
+ argv = gdb.string_to_argv(arg);
+ argc = len(argv)
+ if argc != 2:
+ print("show frame-filter priority " \
+ "takes exactly two arguments.")
+ return None
+
+ return argv
+
+ def get_filter_priority(self, frame_filters, name):
+ """Worker for retrieving the priority of frame_filters.
+
+ Arguments:
+ frame_filters: Name of frame filter dictionary.
+ name: object to select printers.
+
+ Returns:
+ The priority of the frame filter.
+
+ Raises:
+ gdb.GdbError: A frame filter cannot be found.
+ """
+
+ op_list = gdb.frames.return_list(frame_filters)
+
+ try:
+ ff = op_list[name]
+ except KeyError:
+ msg = "frame-filter '" + str(name) + "' not found."
+ raise gdb.GdbError(msg)
+
+ return gdb.frames.get_priority(ff)
+
+ def complete(self, text, word):
+ """Completion function for both frame filter dictionary, and
+ frame filter name."""
+
+ if text.count(" ") == 0:
+ return _complete_frame_filter_list(text, word, False)
+ else:
+ printer_list = frame._return_list(text.split()[0].rstrip())
+ return _complete_frame_filter_name(word, printer_list)
+
+ def invoke(self, arg, from_tty):
+ command_tuple = self._parse_pri_arg(arg)
+ if command_tuple == None:
+ return
+ filter_name = command_tuple[1]
+ list_name = command_tuple[0]
+ try:
+ priority = self.get_filter_priority(list_name, filter_name);
+ except Exception:
+ e = sys.exc_info()[1]
+ print("Error printing filter priority for '"+name+"':"+str(e))
+ else:
+ print("Priority of filter '" + filter_name + "' in list '" \
+ + list_name + "' is: " + str(priority))
+
+# Register commands
+SetFilterPrefixCmd()
+ShowFilterPrefixCmd()
+InfoFrameFilter()
+EnableFrameFilter()
+DisableFrameFilter()
+SetFrameFilterPriority()
+ShowFrameFilterPriority()
diff --git a/share/gdb/python/gdb/command/pretty_printers.py b/share/gdb/python/gdb/command/pretty_printers.py
index 7b03e3a..a9027b3 100644
--- a/share/gdb/python/gdb/command/pretty_printers.py
+++ b/share/gdb/python/gdb/command/pretty_printers.py
@@ -1,5 +1,5 @@
# Pretty-printer commands.
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/prompt.py b/share/gdb/python/gdb/command/prompt.py
index 394e40c..e7dc3da 100644
--- a/share/gdb/python/gdb/command/prompt.py
+++ b/share/gdb/python/gdb/command/prompt.py
@@ -1,5 +1,5 @@
# Extended prompt.
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/command/type_printers.py b/share/gdb/python/gdb/command/type_printers.py
index 81f2ea1..9376be8 100644
--- a/share/gdb/python/gdb/command/type_printers.py
+++ b/share/gdb/python/gdb/command/type_printers.py
@@ -1,5 +1,5 @@
# Type printer commands.
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/frames.py b/share/gdb/python/gdb/frames.py
new file mode 100644
index 0000000..19172e7
--- /dev/null
+++ b/share/gdb/python/gdb/frames.py
@@ -0,0 +1,228 @@
+# Frame-filter commands.
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""Internal functions for working with frame-filters."""
+
+import gdb
+from gdb.FrameIterator import FrameIterator
+from gdb.FrameDecorator import FrameDecorator
+import itertools
+import collections
+
+def get_priority(filter_item):
+ """ Internal worker function to return the frame-filter's priority
+ from a frame filter object. This is a fail free function as it is
+ used in sorting and filtering. If a badly implemented frame
+ filter does not implement the priority attribute, return zero
+ (otherwise sorting/filtering will fail and prevent other frame
+ filters from executing).
+
+ Arguments:
+ filter_item: An object conforming to the frame filter
+ interface.
+
+ Returns:
+ The priority of the frame filter from the "priority"
+ attribute, or zero.
+ """
+ # Do not fail here, as the sort will fail. If a filter has not
+ # (incorrectly) set a priority, set it to zero.
+ return getattr(filter_item, "priority", 0)
+
+def set_priority(filter_item, priority):
+ """ Internal worker function to set the frame-filter's priority.
+
+ Arguments:
+ filter_item: An object conforming to the frame filter
+ interface.
+ priority: The priority to assign as an integer.
+ """
+
+ filter_item.priority = priority
+
+def get_enabled(filter_item):
+ """ Internal worker function to return a filter's enabled state
+ from a frame filter object. This is a fail free function as it is
+ used in sorting and filtering. If a badly implemented frame
+ filter does not implement the enabled attribute, return False
+ (otherwise sorting/filtering will fail and prevent other frame
+ filters from executing).
+
+ Arguments:
+ filter_item: An object conforming to the frame filter
+ interface.
+
+ Returns:
+ The enabled state of the frame filter from the "enabled"
+ attribute, or False.
+ """
+
+ # If the filter class is badly implemented when called from the
+ # Python filter command, do not cease filter operations, just set
+ # enabled to False.
+ return getattr(filter_item, "enabled", False)
+
+def set_enabled(filter_item, state):
+ """ Internal Worker function to set the frame-filter's enabled
+ state.
+
+ Arguments:
+ filter_item: An object conforming to the frame filter
+ interface.
+ state: True or False, depending on desired state.
+ """
+
+ filter_item.enabled = state
+
+def return_list(name):
+ """ Internal Worker function to return the frame filter
+ dictionary, depending on the name supplied as an argument. If the
+ name is not "all", "global" or "progspace", it is assumed to name
+ an object-file.
+
+ Arguments:
+ name: The name of the list, as specified by GDB user commands.
+
+ Returns:
+ A dictionary object for a single specified dictionary, or a
+ list containing all the items for "all"
+
+ Raises:
+ gdb.GdbError: A dictionary of that name cannot be found.
+ """
+
+ # If all dictionaries are wanted in the case of "all" we
+ # cannot return a combined dictionary as keys() may clash in
+ # between different dictionaries. As we just want all the frame
+ # filters to enable/disable them all, just return the combined
+ # items() as a chained iterator of dictionary values.
+ if name == "all":
+ glob = gdb.frame_filters.values()
+ prog = gdb.current_progspace().frame_filters.values()
+ return_iter = itertools.chain(glob, prog)
+ for objfile in gdb.objfiles():
+ return_iter = itertools.chain(return_iter, objfile.frame_filters.values())
+
+ return return_iter
+
+ if name == "global":
+ return gdb.frame_filters
+ else:
+ if name == "progspace":
+ cp = gdb.current_progspace()
+ return cp.frame_filters
+ else:
+ for objfile in gdb.objfiles():
+ if name == objfile.filename:
+ return objfile.frame_filters
+
+ msg = "Cannot find frame-filter dictionary for '" + name + "'"
+ raise gdb.GdbError(msg)
+
+def _sort_list():
+ """ Internal Worker function to merge all known frame-filter
+ lists, prune any filters with the state set to "disabled", and
+ sort the list on the frame-filter's "priority" attribute.
+
+ Returns:
+ sorted_list: A sorted, pruned list of frame filters to
+ execute.
+ """
+
+ all_filters = return_list("all")
+ sorted_frame_filters = sorted(all_filters, key = get_priority,
+ reverse = True)
+
+ sorted_frame_filters = filter(get_enabled,
+ sorted_frame_filters)
+
+ return sorted_frame_filters
+
+def execute_frame_filters(frame, frame_low, frame_high):
+ """ Internal function called from GDB that will execute the chain
+ of frame filters. Each filter is executed in priority order.
+ After the execution completes, slice the iterator to frame_low -
+ frame_high range.
+
+ Arguments:
+ frame: The initial frame.
+
+ frame_low: The low range of the slice. If this is a negative
+ integer then it indicates a backward slice (ie bt -4) which
+ counts backward from the last frame in the backtrace.
+
+ frame_high: The high range of the slice. If this is -1 then
+ it indicates all frames until the end of the stack from
+ frame_low.
+
+ Returns:
+ frame_iterator: The sliced iterator after all frame
+ filters have had a change to execute, or None if no frame
+ filters are registered.
+ """
+
+ # Get a sorted list of frame filters.
+ sorted_list = list(_sort_list())
+
+ # Check to see if there are any frame-filters. If not, just
+ # return None and let default backtrace printing occur.
+ if len(sorted_list) == 0:
+ return None
+
+ frame_iterator = FrameIterator(frame)
+
+ # Apply a basic frame decorator to all gdb.Frames. This unifies
+ # the interface. Python 3.x moved the itertools.imap
+ # functionality to map(), so check if it is available.
+ if hasattr(itertools,"imap"):
+ frame_iterator = itertools.imap(FrameDecorator, frame_iterator)
+ else:
+ frame_iterator = map(FrameDecorator, frame_iterator)
+
+ for ff in sorted_list:
+ frame_iterator = ff.filter(frame_iterator)
+
+ # Slicing
+
+ # Is this a slice from the end of the backtrace, ie bt -2?
+ if frame_low < 0:
+ count = 0
+ slice_length = abs(frame_low)
+ # We cannot use MAXLEN argument for deque as it is 2.6 onwards
+ # and some GDB versions might be < 2.6.
+ sliced = collections.deque()
+
+ for frame_item in frame_iterator:
+ if count >= slice_length:
+ sliced.popleft();
+ count = count + 1
+ sliced.append(frame_item)
+
+ return iter(sliced)
+
+ # -1 for frame_high means until the end of the backtrace. Set to
+ # None if that is the case, to indicate to itertools.islice to
+ # slice to the end of the iterator.
+ if frame_high == -1:
+ frame_high = None
+ else:
+ # As frames start from 0, add one to frame_high so islice
+ # correctly finds the end
+ frame_high = frame_high + 1;
+
+ sliced = itertools.islice(frame_iterator, frame_low, frame_high)
+
+ return sliced
diff --git a/share/gdb/python/gdb/function/__init__.py b/share/gdb/python/gdb/function/__init__.py
index 755bff9..bcfadc3 100644
--- a/share/gdb/python/gdb/function/__init__.py
+++ b/share/gdb/python/gdb/function/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+# Copyright (C) 2012-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/function/strfns.py b/share/gdb/python/gdb/function/strfns.py
index efdf950..9e2ed79 100644
--- a/share/gdb/python/gdb/function/strfns.py
+++ b/share/gdb/python/gdb/function/strfns.py
@@ -1,5 +1,5 @@
# Useful gdb string convenience functions.
-# Copyright (C) 2012-2013 Free Software Foundation, Inc.
+# Copyright (C) 2012-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/printing.py b/share/gdb/python/gdb/printing.py
index 785a407..80227c8 100644
--- a/share/gdb/python/gdb/printing.py
+++ b/share/gdb/python/gdb/printing.py
@@ -1,5 +1,5 @@
# Pretty-printer utilities.
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/prompt.py b/share/gdb/python/gdb/prompt.py
index bb1975b..d99f2ea 100644
--- a/share/gdb/python/gdb/prompt.py
+++ b/share/gdb/python/gdb/prompt.py
@@ -1,5 +1,5 @@
# Extended prompt utilities.
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/python/gdb/types.py b/share/gdb/python/gdb/types.py
index ffc817c..5fa4eab 100644
--- a/share/gdb/python/gdb/types.py
+++ b/share/gdb/python/gdb/types.py
@@ -1,5 +1,5 @@
# Type utilities.
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2014 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/share/gdb/syscalls/amd64-linux.xml b/share/gdb/syscalls/amd64-linux.xml
index bf3da5d..6a04218 100644
--- a/share/gdb/syscalls/amd64-linux.xml
+++ b/share/gdb/syscalls/amd64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/arm-linux.xml b/share/gdb/syscalls/arm-linux.xml
new file mode 100644
index 0000000..9d989bd
--- /dev/null
+++ b/share/gdb/syscalls/arm-linux.xml
@@ -0,0 +1,398 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. This file is offered as-is,
+ without any warranty. -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+ linux/arch/arm/include/uapi/asm/unistd.h
+
+ The file mentioned above belongs to the Linux Kernel.
+ Some small hand-edits were made. -->
+
+<syscalls_info>
+ <syscall name="restart_syscall" number="0"/>
+ <syscall name="exit" number="1"/>
+ <syscall name="fork" number="2"/>
+ <syscall name="read" number="3"/>
+ <syscall name="write" number="4"/>
+ <syscall name="open" number="5"/>
+ <syscall name="close" number="6"/>
+ <syscall name="waitpid" number="7"/> <!-- removed -->
+ <syscall name="creat" number="8"/>
+ <syscall name="link" number="9"/>
+ <syscall name="unlink" number="10"/>
+ <syscall name="execve" number="11"/>
+ <syscall name="chdir" number="12"/>
+ <syscall name="time" number="13"/>
+ <syscall name="mknod" number="14"/>
+ <syscall name="chmod" number="15"/>
+ <syscall name="lchown" number="16"/>
+ <syscall name="break" number="17"/> <!-- removed -->
+ <syscall name="oldstat" number="18"/> <!-- removed -->
+ <syscall name="lseek" number="19"/>
+ <syscall name="getpid" number="20"/>
+ <syscall name="mount" number="21"/>
+ <syscall name="umount" number="22"/>
+ <syscall name="setuid" number="23"/>
+ <syscall name="getuid" number="24"/>
+ <syscall name="stime" number="25"/>
+ <syscall name="ptrace" number="26"/>
+ <syscall name="alarm" number="27"/>
+ <syscall name="oldfstat" number="28"/> <!-- removed -->
+ <syscall name="pause" number="29"/>
+ <syscall name="utime" number="30"/>
+ <syscall name="stty" number="31"/> <!-- removed -->
+ <syscall name="gtty" number="32"/> <!-- removed -->
+ <syscall name="access" number="33"/>
+ <syscall name="nice" number="34"/>
+ <syscall name="ftime" number="35"/> <!-- removed -->
+ <syscall name="sync" number="36"/>
+ <syscall name="kill" number="37"/>
+ <syscall name="rename" number="38"/>
+ <syscall name="mkdir" number="39"/>
+ <syscall name="rmdir" number="40"/>
+ <syscall name="dup" number="41"/>
+ <syscall name="pipe" number="42"/>
+ <syscall name="times" number="43"/>
+ <syscall name="prof" number="44"/> <!-- removed -->
+ <syscall name="brk" number="45"/>
+ <syscall name="setgid" number="46"/>
+ <syscall name="getgid" number="47"/>
+ <syscall name="signal" number="48"/> <!-- removed -->
+ <syscall name="geteuid" number="49"/>
+ <syscall name="getegid" number="50"/>
+ <syscall name="acct" number="51"/>
+ <syscall name="umount2" number="52"/>
+ <syscall name="lock" number="53"/> <!-- removed -->
+ <syscall name="ioctl" number="54"/>
+ <syscall name="fcntl" number="55"/>
+ <syscall name="mpx" number="56"/> <!-- removed -->
+ <syscall name="setpgid" number="57"/>
+ <syscall name="ulimit" number="58"/> <!-- removed -->
+ <syscall name="oldolduname" number="59"/> <!-- removed -->
+ <syscall name="umask" number="60"/>
+ <syscall name="chroot" number="61"/>
+ <syscall name="ustat" number="62"/>
+ <syscall name="dup2" number="63"/>
+ <syscall name="getppid" number="64"/>
+ <syscall name="getpgrp" number="65"/>
+ <syscall name="setsid" number="66"/>
+ <syscall name="sigaction" number="67"/>
+ <syscall name="sgetmask" number="68"/> <!-- removed -->
+ <syscall name="ssetmask" number="69"/> <!-- removed -->
+ <syscall name="setreuid" number="70"/>
+ <syscall name="setregid" number="71"/>
+ <syscall name="sigsuspend" number="72"/>
+ <syscall name="sigpending" number="73"/>
+ <syscall name="sethostname" number="74"/>
+ <syscall name="setrlimit" number="75"/>
+ <syscall name="getrlimit" number="76"/>
+ <syscall name="getrusage" number="77"/>
+ <syscall name="gettimeofday" number="78"/>
+ <syscall name="settimeofday" number="79"/>
+ <syscall name="getgroups" number="80"/>
+ <syscall name="setgroups" number="81"/>
+ <syscall name="select" number="82"/>
+ <syscall name="symlink" number="83"/>
+ <syscall name="oldlstat" number="84"/> <!-- removed -->
+ <syscall name="readlink" number="85"/>
+ <syscall name="uselib" number="86"/>
+ <syscall name="swapon" number="87"/>
+ <syscall name="reboot" number="88"/>
+ <syscall name="readdir" number="89"/>
+ <syscall name="mmap" number="90"/>
+ <syscall name="munmap" number="91"/>
+ <syscall name="truncate" number="92"/>
+ <syscall name="ftruncate" number="93"/>
+ <syscall name="fchmod" number="94"/>
+ <syscall name="fchown" number="95"/>
+ <syscall name="getpriority" number="96"/>
+ <syscall name="setpriority" number="97"/>
+ <syscall name="profil" number="98"/> <!-- removed -->
+ <syscall name="statfs" number="99"/>
+ <syscall name="fstatfs" number="100"/>
+ <syscall name="ioperm" number="101"/> <!-- removed -->
+ <syscall name="socketcall" number="102"/>
+ <syscall name="syslog" number="103"/>
+ <syscall name="setitimer" number="104"/>
+ <syscall name="getitimer" number="105"/>
+ <syscall name="stat" number="106"/>
+ <syscall name="lstat" number="107"/>
+ <syscall name="fstat" number="108"/>
+ <syscall name="olduname" number="109"/> <!-- removed -->
+ <syscall name="iopl" number="110"/> <!-- removed -->
+ <syscall name="vhangup" number="111"/>
+ <syscall name="idle" number="112"/> <!-- removed -->
+ <syscall name="syscall" number="113"/>
+ <syscall name="wait4" number="114"/>
+ <syscall name="swapoff" number="115"/>
+ <syscall name="sysinfo" number="116"/>
+ <syscall name="ipc" number="117"/>
+ <syscall name="fsync" number="118"/>
+ <syscall name="sigreturn" number="119"/>
+ <syscall name="clone" number="120"/>
+ <syscall name="setdomainname" number="121"/>
+ <syscall name="uname" number="122"/>
+ <syscall name="modify_ldt" number="123"/> <!-- removed -->
+ <syscall name="adjtimex" number="124"/>
+ <syscall name="mprotect" number="125"/>
+ <syscall name="sigprocmask" number="126"/>
+ <syscall name="create_module" number="127"/> <!-- removed -->
+ <syscall name="init_module" number="128"/>
+ <syscall name="delete_module" number="129"/>
+ <syscall name="get_kernel_syms" number="130"/> <!-- removed -->
+ <syscall name="quotactl" number="131"/>
+ <syscall name="getpgid" number="132"/>
+ <syscall name="fchdir" number="133"/>
+ <syscall name="bdflush" number="134"/>
+ <syscall name="sysfs" number="135"/>
+ <syscall name="personality" number="136"/>
+ <syscall name="afs_syscall" number="137"/> <!-- removed -->
+ <syscall name="setfsuid" number="138"/>
+ <syscall name="setfsgid" number="139"/>
+ <syscall name="_llseek" number="140"/>
+ <syscall name="getdents" number="141"/>
+ <syscall name="_newselect" number="142"/>
+ <syscall name="flock" number="143"/>
+ <syscall name="msync" number="144"/>
+ <syscall name="readv" number="145"/>
+ <syscall name="writev" number="146"/>
+ <syscall name="getsid" number="147"/>
+ <syscall name="fdatasync" number="148"/>
+ <syscall name="_sysctl" number="149"/>
+ <syscall name="mlock" number="150"/>
+ <syscall name="munlock" number="151"/>
+ <syscall name="mlockall" number="152"/>
+ <syscall name="munlockall" number="153"/>
+ <syscall name="sched_setparam" number="154"/>
+ <syscall name="sched_getparam" number="155"/>
+ <syscall name="sched_setscheduler" number="156"/>
+ <syscall name="sched_getscheduler" number="157"/>
+ <syscall name="sched_yield" number="158"/>
+ <syscall name="sched_get_priority_max" number="159"/>
+ <syscall name="sched_get_priority_min" number="160"/>
+ <syscall name="sched_rr_get_interval" number="161"/>
+ <syscall name="nanosleep" number="162"/>
+ <syscall name="mremap" number="163"/>
+ <syscall name="setresuid" number="164"/>
+ <syscall name="getresuid" number="165"/>
+ <syscall name="vm86" number="166"/> <!-- removed -->
+ <syscall name="query_module" number="167"/> <!-- removed -->
+ <syscall name="poll" number="168"/>
+ <syscall name="nfsservctl" number="169"/>
+ <syscall name="setresgid" number="170"/>
+ <syscall name="getresgid" number="171"/>
+ <syscall name="prctl" number="172"/>
+ <syscall name="rt_sigreturn" number="173"/>
+ <syscall name="rt_sigaction" number="174"/>
+ <syscall name="rt_sigprocmask" number="175"/>
+ <syscall name="rt_sigpending" number="176"/>
+ <syscall name="rt_sigtimedwait" number="177"/>
+ <syscall name="rt_sigqueueinfo" number="178"/>
+ <syscall name="rt_sigsuspend" number="179"/>
+ <syscall name="pread64" number="180"/>
+ <syscall name="pwrite64" number="181"/>
+ <syscall name="chown" number="182"/>
+ <syscall name="getcwd" number="183"/>
+ <syscall name="capget" number="184"/>
+ <syscall name="capset" number="185"/>
+ <syscall name="sigaltstack" number="186"/>
+ <syscall name="sendfile" number="187"/>
+ <syscall name="vfork" number="190"/>
+ <syscall name="ugetrlimit" number="191"/>
+ <syscall name="mmap2" number="192"/>
+ <syscall name="truncate64" number="193"/>
+ <syscall name="ftruncate64" number="194"/>
+ <syscall name="stat64" number="195"/>
+ <syscall name="lstat64" number="196"/>
+ <syscall name="fstat64" number="197"/>
+ <syscall name="lchown32" number="198"/>
+ <syscall name="getuid32" number="199"/>
+ <syscall name="getgid32" number="200"/>
+ <syscall name="geteuid32" number="201"/>
+ <syscall name="getegid32" number="202"/>
+ <syscall name="setreuid32" number="203"/>
+ <syscall name="setregid32" number="204"/>
+ <syscall name="getgroups32" number="205"/>
+ <syscall name="setgroups32" number="206"/>
+ <syscall name="fchown32" number="207"/>
+ <syscall name="setresuid32" number="208"/>
+ <syscall name="getresuid32" number="209"/>
+ <syscall name="setresgid32" number="210"/>
+ <syscall name="getresgid32" number="211"/>
+ <syscall name="chown32" number="212"/>
+ <syscall name="setuid32" number="213"/>
+ <syscall name="setgid32" number="214"/>
+ <syscall name="setfsuid32" number="215"/>
+ <syscall name="setfsgid32" number="216"/>
+ <syscall name="getdents64" number="217"/>
+ <syscall name="pivot_root" number="218"/>
+ <syscall name="mincore" number="219"/>
+ <syscall name="madvise" number="220"/>
+ <syscall name="fcntl64" number="221"/>
+ <syscall name="gettid" number="224"/>
+ <syscall name="readahead" number="225"/>
+ <syscall name="setxattr" number="226"/>
+ <syscall name="lsetxattr" number="227"/>
+ <syscall name="fsetxattr" number="228"/>
+ <syscall name="getxattr" number="229"/>
+ <syscall name="lgetxattr" number="230"/>
+ <syscall name="fgetxattr" number="231"/>
+ <syscall name="listxattr" number="232"/>
+ <syscall name="llistxattr" number="233"/>
+ <syscall name="flistxattr" number="234"/>
+ <syscall name="removexattr" number="235"/>
+ <syscall name="lremovexattr" number="236"/>
+ <syscall name="fremovexattr" number="237"/>
+ <syscall name="tkill" number="238"/>
+ <syscall name="sendfile64" number="239"/>
+ <syscall name="futex" number="240"/>
+ <syscall name="sched_setaffinity" number="241"/>
+ <syscall name="sched_getaffinity" number="242"/>
+ <syscall name="io_setup" number="243"/>
+ <syscall name="io_destroy" number="244"/>
+ <syscall name="io_getevents" number="245"/>
+ <syscall name="io_submit" number="246"/>
+ <syscall name="io_cancel" number="247"/>
+ <syscall name="exit_group" number="248"/>
+ <syscall name="lookup_dcookie" number="249"/>
+ <syscall name="epoll_create" number="250"/>
+ <syscall name="epoll_ctl" number="251"/>
+ <syscall name="epoll_wait" number="252"/>
+ <syscall name="remap_file_pages" number="253"/>
+ <syscall name="set_tid_address" number="256"/>
+ <syscall name="timer_create" number="257"/>
+ <syscall name="timer_settime" number="258"/>
+ <syscall name="timer_gettime" number="259"/>
+ <syscall name="timer_getoverrun" number="260"/>
+ <syscall name="timer_delete" number="261"/>
+ <syscall name="clock_settime" number="262"/>
+ <syscall name="clock_gettime" number="263"/>
+ <syscall name="clock_getres" number="264"/>
+ <syscall name="clock_nanosleep" number="265"/>
+ <syscall name="statfs64" number="266"/>
+ <syscall name="fstatfs64" number="267"/>
+ <syscall name="tgkill" number="268"/>
+ <syscall name="utimes" number="269"/>
+ <syscall name="arm_fadvise64_64" number="270"/>
+ <syscall name="pciconfig_iobase" number="271"/>
+ <syscall name="pciconfig_read" number="272"/>
+ <syscall name="pciconfig_write" number="273"/>
+ <syscall name="mq_open" number="274"/>
+ <syscall name="mq_unlink" number="275"/>
+ <syscall name="mq_timedsend" number="276"/>
+ <syscall name="mq_timedreceive" number="277"/>
+ <syscall name="mq_notify" number="278"/>
+ <syscall name="mq_getsetattr" number="279"/>
+ <syscall name="waitid" number="280"/>
+ <syscall name="socket" number="281"/>
+ <syscall name="bind" number="282"/>
+ <syscall name="connect" number="283"/>
+ <syscall name="listen" number="284"/>
+ <syscall name="accept" number="285"/>
+ <syscall name="getsockname" number="286"/>
+ <syscall name="getpeername" number="287"/>
+ <syscall name="socketpair" number="288"/>
+ <syscall name="send" number="289"/>
+ <syscall name="sendto" number="290"/>
+ <syscall name="recv" number="291"/>
+ <syscall name="recvfrom" number="292"/>
+ <syscall name="shutdown" number="293"/>
+ <syscall name="setsockopt" number="294"/>
+ <syscall name="getsockopt" number="295"/>
+ <syscall name="sendmsg" number="296"/>
+ <syscall name="recvmsg" number="297"/>
+ <syscall name="semop" number="298"/>
+ <syscall name="semget" number="299"/>
+ <syscall name="semctl" number="300"/>
+ <syscall name="msgsnd" number="301"/>
+ <syscall name="msgrcv" number="302"/>
+ <syscall name="msgget" number="303"/>
+ <syscall name="msgctl" number="304"/>
+ <syscall name="shmat" number="305"/>
+ <syscall name="shmdt" number="306"/>
+ <syscall name="shmget" number="307"/>
+ <syscall name="shmctl" number="308"/>
+ <syscall name="add_key" number="309"/>
+ <syscall name="request_key" number="310"/>
+ <syscall name="keyctl" number="311"/>
+ <syscall name="semtimedop" number="312"/>
+ <syscall name="vserver" number="313"/>
+ <syscall name="ioprio_set" number="314"/>
+ <syscall name="ioprio_get" number="315"/>
+ <syscall name="inotify_init" number="316"/>
+ <syscall name="inotify_add_watch" number="317"/>
+ <syscall name="inotify_rm_watch" number="318"/>
+ <syscall name="mbind" number="319"/>
+ <syscall name="get_mempolicy" number="320"/>
+ <syscall name="set_mempolicy" number="321"/>
+ <syscall name="openat" number="322"/>
+ <syscall name="mkdirat" number="323"/>
+ <syscall name="mknodat" number="324"/>
+ <syscall name="fchownat" number="325"/>
+ <syscall name="futimesat" number="326"/>
+ <syscall name="fstatat64" number="327"/>
+ <syscall name="unlinkat" number="328"/>
+ <syscall name="renameat" number="329"/>
+ <syscall name="linkat" number="330"/>
+ <syscall name="symlinkat" number="331"/>
+ <syscall name="readlinkat" number="332"/>
+ <syscall name="fchmodat" number="333"/>
+ <syscall name="faccessat" number="334"/>
+ <syscall name="pselect6" number="335"/>
+ <syscall name="ppoll" number="336"/>
+ <syscall name="unshare" number="337"/>
+ <syscall name="set_robust_list" number="338"/>
+ <syscall name="get_robust_list" number="339"/>
+ <syscall name="splice" number="340"/>
+ <syscall name="arm_sync_file_range" number="341"/>
+ <syscall name="tee" number="342"/>
+ <syscall name="vmsplice" number="343"/>
+ <syscall name="move_pages" number="344"/>
+ <syscall name="getcpu" number="345"/>
+ <syscall name="epoll_pwait" number="346"/>
+ <syscall name="kexec_load" number="347"/>
+ <syscall name="utimensat" number="348"/>
+ <syscall name="signalfd" number="349"/>
+ <syscall name="timerfd_create" number="350"/>
+ <syscall name="eventfd" number="351"/>
+ <syscall name="fallocate" number="352"/>
+ <syscall name="timerfd_settime" number="353"/>
+ <syscall name="timerfd_gettime" number="354"/>
+ <syscall name="signalfd4" number="355"/>
+ <syscall name="eventfd2" number="356"/>
+ <syscall name="epoll_create1" number="357"/>
+ <syscall name="dup3" number="358"/>
+ <syscall name="pipe2" number="359"/>
+ <syscall name="inotify_init1" number="360"/>
+ <syscall name="preadv" number="361"/>
+ <syscall name="pwritev" number="362"/>
+ <syscall name="rt_tgsigqueueinfo" number="363"/>
+ <syscall name="perf_event_open" number="364"/>
+ <syscall name="recvmmsg" number="365"/>
+ <syscall name="accept4" number="366"/>
+ <syscall name="fanotify_init" number="367"/>
+ <syscall name="fanotify_mark" number="368"/>
+ <syscall name="prlimit64" number="369"/>
+ <syscall name="name_to_handle_at" number="370"/>
+ <syscall name="open_by_handle_at" number="371"/>
+ <syscall name="clock_adjtime" number="372"/>
+ <syscall name="syncfs" number="373"/>
+ <syscall name="sendmmsg" number="374"/>
+ <syscall name="setns" number="375"/>
+ <syscall name="process_vm_readv" number="376"/>
+ <syscall name="process_vm_writev" number="377"/>
+ <syscall name="kcmp" number="378"/>
+ <syscall name="finit_module" number="379"/>
+ <syscall name="ARM_breakpoint" number="983041"/>
+ <syscall name="ARM_cacheflush" number="983042"/>
+ <syscall name="ARM_usr26" number="983043"/>
+ <syscall name="ARM_usr32" number="983044"/>
+ <syscall name="ARM_set_tls" number="983045"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/gdb-syscalls.dtd b/share/gdb/syscalls/gdb-syscalls.dtd
index 05c1ccf..3ad3625 100644
--- a/share/gdb/syscalls/gdb-syscalls.dtd
+++ b/share/gdb/syscalls/gdb-syscalls.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/i386-linux.xml b/share/gdb/syscalls/i386-linux.xml
index 80512d8..3d890bd 100644
--- a/share/gdb/syscalls/i386-linux.xml
+++ b/share/gdb/syscalls/i386-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-n32-linux.xml b/share/gdb/syscalls/mips-n32-linux.xml
index b4e2181..5c7a95d 100644
--- a/share/gdb/syscalls/mips-n32-linux.xml
+++ b/share/gdb/syscalls/mips-n32-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2011-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-n64-linux.xml b/share/gdb/syscalls/mips-n64-linux.xml
index 896e0c0..0a81573 100644
--- a/share/gdb/syscalls/mips-n64-linux.xml
+++ b/share/gdb/syscalls/mips-n64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2011-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/mips-o32-linux.xml b/share/gdb/syscalls/mips-o32-linux.xml
index 2b11247..97641b6 100644
--- a/share/gdb/syscalls/mips-o32-linux.xml
+++ b/share/gdb/syscalls/mips-o32-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2011-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/ppc-linux.xml b/share/gdb/syscalls/ppc-linux.xml
index dd4eba6..b25d08c 100644
--- a/share/gdb/syscalls/ppc-linux.xml
+++ b/share/gdb/syscalls/ppc-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/ppc64-linux.xml b/share/gdb/syscalls/ppc64-linux.xml
index ad56db1..c31415a 100644
--- a/share/gdb/syscalls/ppc64-linux.xml
+++ b/share/gdb/syscalls/ppc64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/sparc-linux.xml b/share/gdb/syscalls/sparc-linux.xml
index 7673621..24d8612 100644
--- a/share/gdb/syscalls/sparc-linux.xml
+++ b/share/gdb/syscalls/sparc-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/syscalls/sparc64-linux.xml b/share/gdb/syscalls/sparc64-linux.xml
index 4403ca3..13c0cb7 100644
--- a/share/gdb/syscalls/sparc64-linux.xml
+++ b/share/gdb/syscalls/sparc64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2013 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/share/gdb/system-gdbinit/elinos.py b/share/gdb/system-gdbinit/elinos.py
new file mode 100644
index 0000000..cd35aed
--- /dev/null
+++ b/share/gdb/system-gdbinit/elinos.py
@@ -0,0 +1,91 @@
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""Configure GDB using the ELinOS environment."""
+
+import os
+import glob
+import gdb
+
+
+def warn(msg):
+ print "warning: %s" % msg
+
+
+def get_elinos_environment():
+ """Return the ELinOS environment.
+
+ If the ELinOS environment is properly set up, return a dictionary
+ which contains:
+ * The path to the ELinOS project at key 'project';
+ * The path to the ELinOS CDK at key 'cdk';
+ * The ELinOS target name at key 'target' (Eg. 'i486-linux');
+ * A list of Xenomai install prefixes (which could be empty, if
+ the ELinOS project does not include Xenomai) at key 'xenomai'.
+
+ If one of these cannot be found, print a warning; the corresponding
+ value in the returned dictionary will be None.
+ """
+ result = {}
+ for key in ("project", "cdk", "target"):
+ var = "ELINOS_" + key.upper()
+ if var in os.environ:
+ result[key] = os.environ[var]
+ else:
+ warn("%s not set" % var)
+ result[key] = None
+
+ if result["project"] is not None:
+ result["xenomai"] = glob.glob(result["project"] + "/xenomai-[0-9.]*")
+ else:
+ result["xenomai"] = []
+
+ return result
+
+
+def elinos_init():
+ """Initialize debugger environment for ELinOS.
+
+ Let the debugger know where to find the ELinOS libraries on host. This
+ assumes that an ELinOS environment is properly set up. If some environment
+ variables are missing, warn about which library may be missing.
+ """
+ elinos_env = get_elinos_environment()
+
+ solib_dirs = []
+
+ # System libraries
+ if None in (elinos_env[key] for key in ("cdk", "target")):
+ warn("ELinOS system libraries will not be loaded")
+ else:
+ solib_prefix = "%s/%s" % (elinos_env["cdk"], elinos_env["target"])
+ solib_dirs += ["%s/%s" % (solib_prefix, "lib")]
+ gdb.execute("set solib-absolute-prefix %s" % solib_prefix)
+
+ # Xenomai libraries. Those are optional, so have a lighter warning
+ # if they cannot be located.
+ if elinos_env["project"] is None:
+ warn("Xenomai libraries may not be loaded")
+ else:
+ for dir in elinos_env['xenomai']:
+ solib_dirs += ["%s/%s"
+ % (dir, "xenomai-build/usr/realtime/lib")]
+
+ if len(solib_dirs) != 0:
+ gdb.execute("set solib-search-path %s" % ":".join(solib_dirs))
+
+
+if __name__ == "__main__":
+ elinos_init()
diff --git a/share/gdb/system-gdbinit/wrs-linux.py b/share/gdb/system-gdbinit/wrs-linux.py
new file mode 100644
index 0000000..54ec9ec
--- /dev/null
+++ b/share/gdb/system-gdbinit/wrs-linux.py
@@ -0,0 +1,25 @@
+# Copyright (C) 2011-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+"""Configure GDB using the WRS/Linux environment."""
+
+import os
+
+if 'ENV_PREFIX' in os.environ:
+ gdb.execute('set sysroot %s' % os.environ['ENV_PREFIX'])
+
+else:
+ print "warning: ENV_PREFIX environment variable missing."
+ print "The debugger will probably be unable to find the correct system libraries"
diff --git a/x86_64-linux-android/bin/ld.mcld b/x86_64-linux-android/bin/ld.mcld
index e44008b..373a954 120000
--- a/x86_64-linux-android/bin/ld.mcld
+++ b/x86_64-linux-android/bin/ld.mcld
@@ -1 +1 @@
-../../bin/x86_64-linux-android-ld.mcld \ No newline at end of file
+../../../../../../toolchains/llvm-3.5/prebuilt/darwin-x86_64/bin/ld.mcld \ No newline at end of file
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.x b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.x
index 0ad5063..a729c34 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.x
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xbn b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xbn
index fd61792..ca246b2 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xbn
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xc b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xc
index 96f8ad3..8a8b188 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xc
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xc
@@ -1,4 +1,8 @@
/* Script for -z combreloc: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xd b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xd
index eeecf60..29258c8 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xd
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xd
@@ -1,4 +1,8 @@
/* Script for ld -pie: link position independent executable */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdc b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdc
index a19b462..8713c71 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdc
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdc
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdw b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdw
index ee71093..e1f8def 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdw
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xdw
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xn b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xn
index 7580acb..b9a2aa9 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xn
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xr b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xr
index ca82fef..37be833 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xr
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xs b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xs
index 54cb13b..5a23353 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xs
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xs
@@ -1,4 +1,8 @@
/* Script for ld --shared: link shared library */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsc b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsc
index 521515d..094517e 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsc
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsc
@@ -1,5 +1,9 @@
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsw b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsw
index aada16e..beca2d4 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsw
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xsw
@@ -1,4 +1,8 @@
/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xu b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xu
index 881dafd..1a505cf 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xu
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xw b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xw
index a3119b0..069a453 100644
--- a/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xw
+++ b/x86_64-linux-android/lib/ldscripts/elf32_x86_64.xw
@@ -1,4 +1,8 @@
/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-x86-64", "elf32-x86-64",
"elf32-x86-64")
OUTPUT_ARCH(i386:x64-32)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.x b/x86_64-linux-android/lib/ldscripts/elf_i386.x
index 75807ad..0d9b00b 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.x
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xbn b/x86_64-linux-android/lib/ldscripts/elf_i386.xbn
index 137fdd2..4c6d450 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xbn
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xc b/x86_64-linux-android/lib/ldscripts/elf_i386.xc
index 41f2a97..5521fe8 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xc
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xc
@@ -1,4 +1,8 @@
/* Script for -z combreloc: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xd b/x86_64-linux-android/lib/ldscripts/elf_i386.xd
index 62119c1..21488e2 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xd
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xd
@@ -1,4 +1,8 @@
/* Script for ld -pie: link position independent executable */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xdc b/x86_64-linux-android/lib/ldscripts/elf_i386.xdc
index e7d5332..960af32 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xdc
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xdc
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xdw b/x86_64-linux-android/lib/ldscripts/elf_i386.xdw
index caf905a..02f0341 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xdw
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xdw
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xn b/x86_64-linux-android/lib/ldscripts/elf_i386.xn
index df0b9c7..ecd53d7 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xn
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xr b/x86_64-linux-android/lib/ldscripts/elf_i386.xr
index 6a84459..5bbf56b 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xr
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xs b/x86_64-linux-android/lib/ldscripts/elf_i386.xs
index b534aa7..816bab3 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xs
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xs
@@ -1,4 +1,8 @@
/* Script for ld --shared: link shared library */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xsc b/x86_64-linux-android/lib/ldscripts/elf_i386.xsc
index ab707bf..beee2a8 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xsc
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xsc
@@ -1,5 +1,9 @@
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xsw b/x86_64-linux-android/lib/ldscripts/elf_i386.xsw
index eb92bf4..77ae6f9 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xsw
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xsw
@@ -1,4 +1,8 @@
/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xu b/x86_64-linux-android/lib/ldscripts/elf_i386.xu
index 42cca6d..d414538 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xu
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_i386.xw b/x86_64-linux-android/lib/ldscripts/elf_i386.xw
index f25dd62..8582484 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_i386.xw
+++ b/x86_64-linux-android/lib/ldscripts/elf_i386.xw
@@ -1,4 +1,8 @@
/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf32-i386", "elf32-i386",
"elf32-i386")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.x b/x86_64-linux-android/lib/ldscripts/elf_k1om.x
index 2990d71..d34705f 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.x
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,22 +36,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xbn b/x86_64-linux-android/lib/ldscripts/elf_k1om.xbn
index c0d2912..536b582 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xbn
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xc b/x86_64-linux-android/lib/ldscripts/elf_k1om.xc
index 19b532a..c0cdf4e 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xc
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xc
@@ -1,4 +1,8 @@
/* Script for -z combreloc: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xd b/x86_64-linux-android/lib/ldscripts/elf_k1om.xd
index b6b3a99..f0ac020 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xd
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xd
@@ -1,4 +1,8 @@
/* Script for ld -pie: link position independent executable */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xdc b/x86_64-linux-android/lib/ldscripts/elf_k1om.xdc
index 78d8292..464c0f2 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xdc
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xdc
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xdw b/x86_64-linux-android/lib/ldscripts/elf_k1om.xdw
index bd1d78f..72473eb 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xdw
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xdw
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xn b/x86_64-linux-android/lib/ldscripts/elf_k1om.xn
index 1f64c0a..df27b79 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xn
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xr b/x86_64-linux-android/lib/ldscripts/elf_k1om.xr
index fb38fee..a298880 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xr
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -33,10 +37,7 @@ SECTIONS
.rela.ldata 0 : { *(.rela.ldata) }
.rela.lbss 0 : { *(.rela.lbss) }
.rela.lrodata 0 : { *(.rela.lrodata) }
- .rela.iplt 0 :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc 0 : { *(.rela.ifunc) }
.rela.plt 0 :
{
*(.rela.plt)
@@ -45,8 +46,7 @@ SECTIONS
{
KEEP (*(SORT_NONE(.init)))
}
- .plt 0 : { *(.plt) }
- .iplt 0 : { *(.iplt) }
+ .plt 0 : { *(.plt) *(.iplt) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xs b/x86_64-linux-android/lib/ldscripts/elf_k1om.xs
index 7acdd5d..435c264 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xs
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xs
@@ -1,4 +1,8 @@
/* Script for ld --shared: link shared library */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -30,20 +34,17 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc : { *(.rela.ifunc) }
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xsc b/x86_64-linux-android/lib/ldscripts/elf_k1om.xsc
index 03787d8..edbac2f 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xsc
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xsc
@@ -1,5 +1,9 @@
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,18 +36,18 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- *(.rela.iplt)
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xsw b/x86_64-linux-android/lib/ldscripts/elf_k1om.xsw
index 82edf36..417221f 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xsw
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xsw
@@ -1,4 +1,8 @@
/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -31,18 +35,18 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- *(.rela.iplt)
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xu b/x86_64-linux-android/lib/ldscripts/elf_k1om.xu
index e78e1c7..e78cc99 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xu
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -33,10 +37,7 @@ SECTIONS
.rela.ldata 0 : { *(.rela.ldata) }
.rela.lbss 0 : { *(.rela.lbss) }
.rela.lrodata 0 : { *(.rela.lrodata) }
- .rela.iplt 0 :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc 0 : { *(.rela.ifunc) }
.rela.plt 0 :
{
*(.rela.plt)
@@ -45,8 +46,7 @@ SECTIONS
{
KEEP (*(SORT_NONE(.init)))
}
- .plt 0 : { *(.plt) }
- .iplt 0 : { *(.iplt) }
+ .plt 0 : { *(.plt) *(.iplt) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_k1om.xw b/x86_64-linux-android/lib/ldscripts/elf_k1om.xw
index 2b43914..34f9300 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_k1om.xw
+++ b/x86_64-linux-android/lib/ldscripts/elf_k1om.xw
@@ -1,4 +1,8 @@
/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-k1om", "elf64-k1om",
"elf64-k1om")
OUTPUT_ARCH(k1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.x b/x86_64-linux-android/lib/ldscripts/elf_l1om.x
index 7794a13..cdc6c24 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.x
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,22 +36,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xbn b/x86_64-linux-android/lib/ldscripts/elf_l1om.xbn
index b6befd6..23a5070 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xbn
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xc b/x86_64-linux-android/lib/ldscripts/elf_l1om.xc
index 1b05981..57a3149 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xc
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xc
@@ -1,4 +1,8 @@
/* Script for -z combreloc: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xd b/x86_64-linux-android/lib/ldscripts/elf_l1om.xd
index 89fb0e4..d83cec9 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xd
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xd
@@ -1,4 +1,8 @@
/* Script for ld -pie: link position independent executable */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xdc b/x86_64-linux-android/lib/ldscripts/elf_l1om.xdc
index b91a287..742f7b1 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xdc
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xdc
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xdw b/x86_64-linux-android/lib/ldscripts/elf_l1om.xdw
index 8a8704b..076f843 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xdw
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xdw
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xn b/x86_64-linux-android/lib/ldscripts/elf_l1om.xn
index 4d6db18..8ff0cc7 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xn
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -31,22 +35,19 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
+ .rela.ifunc : { *(.rela.ifunc) }
+ .rela.plt :
{
+ *(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
- .rela.plt :
- {
- *(.rela.plt)
- }
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xr b/x86_64-linux-android/lib/ldscripts/elf_l1om.xr
index ead9c53..3fc5de8 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xr
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -33,10 +37,7 @@ SECTIONS
.rela.ldata 0 : { *(.rela.ldata) }
.rela.lbss 0 : { *(.rela.lbss) }
.rela.lrodata 0 : { *(.rela.lrodata) }
- .rela.iplt 0 :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc 0 : { *(.rela.ifunc) }
.rela.plt 0 :
{
*(.rela.plt)
@@ -45,8 +46,7 @@ SECTIONS
{
KEEP (*(SORT_NONE(.init)))
}
- .plt 0 : { *(.plt) }
- .iplt 0 : { *(.iplt) }
+ .plt 0 : { *(.plt) *(.iplt) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xs b/x86_64-linux-android/lib/ldscripts/elf_l1om.xs
index d9cbe01..b34fc7c 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xs
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xs
@@ -1,4 +1,8 @@
/* Script for ld --shared: link shared library */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -30,20 +34,17 @@ SECTIONS
.rela.ldata : { *(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*) }
.rela.lbss : { *(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*) }
.rela.lrodata : { *(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*) }
- .rela.iplt :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc : { *(.rela.ifunc) }
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xsc b/x86_64-linux-android/lib/ldscripts/elf_l1om.xsc
index e252f9f..1f54ccf 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xsc
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xsc
@@ -1,5 +1,9 @@
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,18 +36,18 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- *(.rela.iplt)
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xsw b/x86_64-linux-android/lib/ldscripts/elf_l1om.xsw
index f583d68..10d303e 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xsw
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xsw
@@ -1,4 +1,8 @@
/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -31,18 +35,18 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- *(.rela.iplt)
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ *(.rela.iplt)
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xu b/x86_64-linux-android/lib/ldscripts/elf_l1om.xu
index c6247bb..a587584 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xu
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -33,10 +37,7 @@ SECTIONS
.rela.ldata 0 : { *(.rela.ldata) }
.rela.lbss 0 : { *(.rela.lbss) }
.rela.lrodata 0 : { *(.rela.lrodata) }
- .rela.iplt 0 :
- {
- *(.rela.iplt)
- }
+ .rela.ifunc 0 : { *(.rela.ifunc) }
.rela.plt 0 :
{
*(.rela.plt)
@@ -45,8 +46,7 @@ SECTIONS
{
KEEP (*(SORT_NONE(.init)))
}
- .plt 0 : { *(.plt) }
- .iplt 0 : { *(.iplt) }
+ .plt 0 : { *(.plt) *(.iplt) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_l1om.xw b/x86_64-linux-android/lib/ldscripts/elf_l1om.xw
index 44ebc93..aad18bf 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_l1om.xw
+++ b/x86_64-linux-android/lib/ldscripts/elf_l1om.xw
@@ -1,4 +1,8 @@
/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-l1om", "elf64-l1om",
"elf64-l1om")
OUTPUT_ARCH(l1om)
@@ -32,22 +36,20 @@ SECTIONS
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
- PROVIDE_HIDDEN (__rel_iplt_start = .);
- PROVIDE_HIDDEN (__rel_iplt_end = .);
- PROVIDE_HIDDEN (__rela_iplt_start = .);
- *(.rela.iplt)
- PROVIDE_HIDDEN (__rela_iplt_end = .);
+ *(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
+ PROVIDE_HIDDEN (__rela_iplt_start = .);
+ *(.rela.iplt)
+ PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.init :
{
KEEP (*(SORT_NONE(.init)))
}
- .plt : { *(.plt) }
- .iplt : { *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.x b/x86_64-linux-android/lib/ldscripts/elf_x86_64.x
index 575d2ab..d2a18d3 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.x
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -45,6 +49,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xbn b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xbn
index f0f36ad..da7065d 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xbn
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -44,6 +48,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xc b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xc
index 9ac8216..1fdda1e 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xc
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xc
@@ -1,4 +1,8 @@
/* Script for -z combreloc: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -46,6 +50,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xd b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xd
index 944b71a..5a676b4 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xd
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xd
@@ -1,4 +1,8 @@
/* Script for ld -pie: link position independent executable */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -44,6 +48,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdc b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdc
index 4b8571a..85e7da3 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdc
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdc
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -46,6 +50,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdw b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdw
index c5e0ce0..b201a9f 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdw
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xdw
@@ -1,4 +1,8 @@
/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -46,6 +50,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xn b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xn
index 6fde39b..57bcd2b 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xn
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -44,6 +48,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xr b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xr
index b7f1e1c..eba06ca 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xr
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -43,6 +47,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt 0 : { *(.plt) *(.iplt) }
+ .plt.bnd 0 : { *(.plt.bnd) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xs b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xs
index 2d2b8ff..3c12da5 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xs
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xs
@@ -1,4 +1,8 @@
/* Script for ld --shared: link shared library */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -41,6 +45,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsc b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsc
index 5c41a31..f9278a8 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsc
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsc
@@ -1,5 +1,9 @@
/* Script for --shared -z combreloc: shared library, combine & sort relocs */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -44,6 +48,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsw b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsw
index 3f77038..9c0e276 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsw
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xsw
@@ -1,4 +1,8 @@
/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -43,6 +47,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xu b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xu
index 07a5422..95243d3 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xu
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -43,6 +47,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt 0 : { *(.plt) *(.iplt) }
+ .plt.bnd 0 : { *(.plt.bnd) }
.text 0 :
{
*(.text .stub)
diff --git a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xw b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xw
index e131e33..64265c9 100644
--- a/x86_64-linux-android/lib/ldscripts/elf_x86_64.xw
+++ b/x86_64-linux-android/lib/ldscripts/elf_x86_64.xw
@@ -1,4 +1,8 @@
/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
@@ -46,6 +50,7 @@ SECTIONS
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
+ .plt.bnd : { *(.plt.bnd) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
diff --git a/x86_64-linux-android/lib/ldscripts/i386linux.x b/x86_64-linux-android/lib/ldscripts/i386linux.x
index 68bc5a0..1c3d9c9 100644
--- a/x86_64-linux-android/lib/ldscripts/i386linux.x
+++ b/x86_64-linux-android/lib/ldscripts/i386linux.x
@@ -1,5 +1,9 @@
/* Default linker script, for normal executables */
/* Modified for Android. */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("a.out-i386-linux", "a.out-i386-linux",
"a.out-i386-linux")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/i386linux.xbn b/x86_64-linux-android/lib/ldscripts/i386linux.xbn
index 91b1e91..7aba9ba 100644
--- a/x86_64-linux-android/lib/ldscripts/i386linux.xbn
+++ b/x86_64-linux-android/lib/ldscripts/i386linux.xbn
@@ -1,4 +1,8 @@
/* Script for -N: mix text and data on same page; don't align data */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("a.out-i386-linux", "a.out-i386-linux",
"a.out-i386-linux")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/i386linux.xn b/x86_64-linux-android/lib/ldscripts/i386linux.xn
index 6185656..e610596 100644
--- a/x86_64-linux-android/lib/ldscripts/i386linux.xn
+++ b/x86_64-linux-android/lib/ldscripts/i386linux.xn
@@ -1,4 +1,8 @@
/* Script for -n: mix text and data on same page */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("a.out-i386-linux", "a.out-i386-linux",
"a.out-i386-linux")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/i386linux.xr b/x86_64-linux-android/lib/ldscripts/i386linux.xr
index 8a33f28..6163e68 100644
--- a/x86_64-linux-android/lib/ldscripts/i386linux.xr
+++ b/x86_64-linux-android/lib/ldscripts/i386linux.xr
@@ -1,4 +1,8 @@
/* Script for ld -r: link without relocation */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("a.out-i386-linux", "a.out-i386-linux",
"a.out-i386-linux")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/ldscripts/i386linux.xu b/x86_64-linux-android/lib/ldscripts/i386linux.xu
index 6847100..241ab7b 100644
--- a/x86_64-linux-android/lib/ldscripts/i386linux.xu
+++ b/x86_64-linux-android/lib/ldscripts/i386linux.xu
@@ -1,4 +1,8 @@
/* Script for ld -Ur: link w/out relocation, do create constructors */
+/* Copyright (C) 2014 Free Software Foundation, Inc.
+ Copying and distribution of this script, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. */
OUTPUT_FORMAT("a.out-i386-linux", "a.out-i386-linux",
"a.out-i386-linux")
OUTPUT_ARCH(i386)
diff --git a/x86_64-linux-android/lib/libatomic.a b/x86_64-linux-android/lib/libatomic.a
index ecb0ffe..d9ecbd8 100644
--- a/x86_64-linux-android/lib/libatomic.a
+++ b/x86_64-linux-android/lib/libatomic.a
Binary files differ
diff --git a/x86_64-linux-android/lib/libgomp.a b/x86_64-linux-android/lib/libgomp.a
index a1f31ee..ce6e4db 100644
--- a/x86_64-linux-android/lib/libgomp.a
+++ b/x86_64-linux-android/lib/libgomp.a
Binary files differ
diff --git a/x86_64-linux-android/lib/libquadmath.a b/x86_64-linux-android/lib/libquadmath.a
index 51c8412..c651981 100644
--- a/x86_64-linux-android/lib/libquadmath.a
+++ b/x86_64-linux-android/lib/libquadmath.a
Binary files differ
diff --git a/x86_64-linux-android/lib64/libatomic.a b/x86_64-linux-android/lib64/libatomic.a
index a99b259..3c4b181 100644
--- a/x86_64-linux-android/lib64/libatomic.a
+++ b/x86_64-linux-android/lib64/libatomic.a
Binary files differ
diff --git a/x86_64-linux-android/lib64/libgomp.a b/x86_64-linux-android/lib64/libgomp.a
index e96d5a8..b30135e 100644
--- a/x86_64-linux-android/lib64/libgomp.a
+++ b/x86_64-linux-android/lib64/libgomp.a
Binary files differ
diff --git a/x86_64-linux-android/lib64/libquadmath.a b/x86_64-linux-android/lib64/libquadmath.a
index 5974014..4e40ed1 100644
--- a/x86_64-linux-android/lib64/libquadmath.a
+++ b/x86_64-linux-android/lib64/libquadmath.a
Binary files differ
diff --git a/x86_64-linux-android/libx32/libatomic.a b/x86_64-linux-android/libx32/libatomic.a
index 42d0220..1f5c5b5 100644
--- a/x86_64-linux-android/libx32/libatomic.a
+++ b/x86_64-linux-android/libx32/libatomic.a
Binary files differ
diff --git a/x86_64-linux-android/libx32/libgomp.a b/x86_64-linux-android/libx32/libgomp.a
index ac6f3c7..35c6828 100644
--- a/x86_64-linux-android/libx32/libgomp.a
+++ b/x86_64-linux-android/libx32/libgomp.a
Binary files differ
diff --git a/x86_64-linux-android/libx32/libquadmath.a b/x86_64-linux-android/libx32/libquadmath.a
index 62c0577..3435fb7 100644
--- a/x86_64-linux-android/libx32/libquadmath.a
+++ b/x86_64-linux-android/libx32/libquadmath.a
Binary files differ