diff options
author | Than McIntosh <thanm@google.com> | 2015-12-14 14:06:08 -0500 |
---|---|---|
committer | Than McIntosh <thanm@google.com> | 2015-12-14 14:06:08 -0500 |
commit | 0379f71245108040bffb4f522a8bb51fd4f87c91 (patch) | |
tree | 849b33c5bf5ad0a6665ad49150718fe72fc8c18d | |
parent | 55148ff3afe5f735bade93df8edc47c6b0c19ce6 (diff) | |
download | mips64el-linux-android-4.9-0379f71245108040bffb4f522a8bb51fd4f87c91.tar.gz |
Update prebuilt GCC to build 2485757.
Change-Id: I06d7c7d9f11bdeba8cba46c684ea0eeb28a31e43
196 files changed, 2800 insertions, 7285 deletions
@@ -1 +1,340 @@ -COPYING
\ No newline at end of file + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/SOURCES b/SOURCES deleted file mode 100644 index 4093864..0000000 --- a/SOURCES +++ /dev/null @@ -1,21 +0,0 @@ -toolchain/build.git f8db3f1d0824da5315df3415814ba76108157796 Static link ld.gold by mingw to avoid dependencies on libwinpthread-1.dll -toolchain/gmp.git e6b9669dafc6a5f83c80b4b4176359b78bccdc90 Add gmp-5.0.5.tar.bz2 -toolchain/mpfr.git bfcf1bfa38469208aaad8873cd4c68781061d90f add mpfr-3.1.1.tar.bz2 -toolchain/mpc.git 835d16e92eed875638a8b5d552034c3b1aae045b add mpc-1.0.1.tar.gz -toolchain/cloog.git 98972d5434ffcb4d11d2c81a46600e9a1cda9110 MinGW-w64 build fix (lacks ffs declaration) -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 c39479f4ab4d372b518957871e1f205a03e7c3d6 Fix darwin build -toolchain/gcc.git 00eea35e8107e50c4a5f569385646ae09f4e47fc Fix bug where force_const_mem may return NULL_RTX. -toolchain/gdb.git d54e4b7af5c45d4bcde6f65e5dc44c821739740f Misc gdb-7.7 fixes for Android -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 d20e247caf801ae6418e4226a19dd98719a7af75 Fix comparison between signed and unsigned integer expressions [-Werror=sign-compare]. -toolchain/yasm.git 87c09baff80ca5bbe938392d8f320e621707f317 test commit -toolchain/clang.git (release_36) e30a03d356dfe6676108b25101af26ed231c064e Add NEON support to x86_64 -toolchain/llvm.git (release_36) 9e3f281960602294536cbe521c60e350b026d99a [X86] Always return the sret parameter in eax/rax, even on 32-bit -toolchain/compiler-rt.git (release_36) e55135c14b0b8a5b5e77849f7ca8145009e7e635 Remove invalid const qualifier for r0, since it is written by svc. -toolchain/clang.git (release_35) a492fd6f6fb31fae2061071380220ad7ed4bb70d Add NEON support to x86_64 -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 diff --git a/bin/mips64el-linux-android-addr2line b/bin/mips64el-linux-android-addr2line Binary files differindex 76e0b4c..c84925f 100755 --- a/bin/mips64el-linux-android-addr2line +++ b/bin/mips64el-linux-android-addr2line diff --git a/bin/mips64el-linux-android-ar b/bin/mips64el-linux-android-ar Binary files differindex 33c07b8..f09f01e 100755 --- a/bin/mips64el-linux-android-ar +++ b/bin/mips64el-linux-android-ar diff --git a/bin/mips64el-linux-android-as b/bin/mips64el-linux-android-as Binary files differindex d1670bf..acad067 100755 --- a/bin/mips64el-linux-android-as +++ b/bin/mips64el-linux-android-as diff --git a/bin/mips64el-linux-android-c++filt b/bin/mips64el-linux-android-c++filt Binary files differindex 22ef6e1..04e3a97 100755 --- a/bin/mips64el-linux-android-c++filt +++ b/bin/mips64el-linux-android-c++filt diff --git a/bin/mips64el-linux-android-cpp b/bin/mips64el-linux-android-cpp Binary files differindex e796e3c..808f59a 100755 --- a/bin/mips64el-linux-android-cpp +++ b/bin/mips64el-linux-android-cpp diff --git a/bin/mips64el-linux-android-elfedit b/bin/mips64el-linux-android-elfedit Binary files differindex 9bc3f22..6457c4e 100755 --- a/bin/mips64el-linux-android-elfedit +++ b/bin/mips64el-linux-android-elfedit diff --git a/bin/mips64el-linux-android-g++ b/bin/mips64el-linux-android-g++ Binary files differindex ec784c4..de657c2 100755 --- a/bin/mips64el-linux-android-g++ +++ b/bin/mips64el-linux-android-g++ diff --git a/bin/mips64el-linux-android-gcc b/bin/mips64el-linux-android-gcc Binary files differindex 7356c64..b6ce32b 100755 --- a/bin/mips64el-linux-android-gcc +++ b/bin/mips64el-linux-android-gcc diff --git a/bin/mips64el-linux-android-gcc-ar b/bin/mips64el-linux-android-gcc-ar Binary files differindex 9173a7e..13361b1 100755 --- a/bin/mips64el-linux-android-gcc-ar +++ b/bin/mips64el-linux-android-gcc-ar diff --git a/bin/mips64el-linux-android-gcc-nm b/bin/mips64el-linux-android-gcc-nm Binary files differindex 71d6c2a..d392d21 100755 --- a/bin/mips64el-linux-android-gcc-nm +++ b/bin/mips64el-linux-android-gcc-nm diff --git a/bin/mips64el-linux-android-gcc-ranlib b/bin/mips64el-linux-android-gcc-ranlib Binary files differindex 382ed70..fb2084a 100755 --- a/bin/mips64el-linux-android-gcc-ranlib +++ b/bin/mips64el-linux-android-gcc-ranlib diff --git a/bin/mips64el-linux-android-gcov b/bin/mips64el-linux-android-gcov Binary files differindex 349e4ee..3bb8cc9 100755 --- a/bin/mips64el-linux-android-gcov +++ b/bin/mips64el-linux-android-gcov diff --git a/bin/mips64el-linux-android-gcov-tool b/bin/mips64el-linux-android-gcov-tool Binary files differindex 0d7b806..5d9671a 100755 --- a/bin/mips64el-linux-android-gcov-tool +++ b/bin/mips64el-linux-android-gcov-tool diff --git a/bin/mips64el-linux-android-gdb b/bin/mips64el-linux-android-gdb Binary files differdeleted file mode 100755 index 346fd65..0000000 --- a/bin/mips64el-linux-android-gdb +++ /dev/null diff --git a/bin/mips64el-linux-android-gprof b/bin/mips64el-linux-android-gprof Binary files differindex 906f4e5..12b96fa 100755 --- a/bin/mips64el-linux-android-gprof +++ b/bin/mips64el-linux-android-gprof diff --git a/bin/mips64el-linux-android-ld.bfd b/bin/mips64el-linux-android-ld.bfd Binary files differindex a61c498..b3c137b 100755 --- a/bin/mips64el-linux-android-ld.bfd +++ b/bin/mips64el-linux-android-ld.bfd diff --git a/bin/mips64el-linux-android-ld.mcld b/bin/mips64el-linux-android-ld.mcld Binary files differdeleted file mode 100755 index 4df6dde..0000000 --- a/bin/mips64el-linux-android-ld.mcld +++ /dev/null diff --git a/bin/mips64el-linux-android-nm b/bin/mips64el-linux-android-nm Binary files differindex f645d5f..c19436d 100755 --- a/bin/mips64el-linux-android-nm +++ b/bin/mips64el-linux-android-nm diff --git a/bin/mips64el-linux-android-objcopy b/bin/mips64el-linux-android-objcopy Binary files differindex 3a979b3..ef481aa 100755 --- a/bin/mips64el-linux-android-objcopy +++ b/bin/mips64el-linux-android-objcopy diff --git a/bin/mips64el-linux-android-objdump b/bin/mips64el-linux-android-objdump Binary files differindex 336e42b..2e9b547 100755 --- a/bin/mips64el-linux-android-objdump +++ b/bin/mips64el-linux-android-objdump diff --git a/bin/mips64el-linux-android-ranlib b/bin/mips64el-linux-android-ranlib Binary files differindex 66faaee..7729dd1 100755 --- a/bin/mips64el-linux-android-ranlib +++ b/bin/mips64el-linux-android-ranlib diff --git a/bin/mips64el-linux-android-readelf b/bin/mips64el-linux-android-readelf Binary files differindex 27d4b2f..0ee5a5e 100755 --- a/bin/mips64el-linux-android-readelf +++ b/bin/mips64el-linux-android-readelf diff --git a/bin/mips64el-linux-android-size b/bin/mips64el-linux-android-size Binary files differindex 18d75f9..cd42a1f 100755 --- a/bin/mips64el-linux-android-size +++ b/bin/mips64el-linux-android-size diff --git a/bin/mips64el-linux-android-strings b/bin/mips64el-linux-android-strings Binary files differindex c227329..68b59fe 100755 --- a/bin/mips64el-linux-android-strings +++ b/bin/mips64el-linux-android-strings diff --git a/bin/mips64el-linux-android-strip b/bin/mips64el-linux-android-strip Binary files differindex 2232691..6818ddb 100755 --- a/bin/mips64el-linux-android-strip +++ b/bin/mips64el-linux-android-strip diff --git a/include/gdb/jit-reader.h b/include/gdb/jit-reader.h deleted file mode 100644 index e9599a2..0000000 --- a/include/gdb/jit-reader.h +++ /dev/null @@ -1,346 +0,0 @@ -/* JIT declarations for GDB, the GNU Debugger. - - Copyright (C) 2011-2014 Free Software Foundation, Inc. - - This file is part of GDB. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ - -#ifndef GDB_JIT_READER_H -#define GDB_JIT_READER_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Versioning information. See gdb_reader_funcs. */ - -#define GDB_READER_INTERFACE_VERSION 1 - -/* Readers must be released under a GPL compatible license. To - declare that the reader is indeed released under a GPL compatible - license, invoke the macro GDB_DECLARE_GPL_COMPATIBLE in a source - file. */ - -#ifdef __cplusplus -#define GDB_DECLARE_GPL_COMPATIBLE_READER \ - extern "C" { \ - extern int plugin_is_GPL_compatible (void); \ - extern int plugin_is_GPL_compatible (void) \ - { \ - return 0; \ - } \ - } - -#else - -#define GDB_DECLARE_GPL_COMPATIBLE_READER \ - extern int plugin_is_GPL_compatible (void); \ - extern int plugin_is_GPL_compatible (void) \ - { \ - return 0; \ - } - -#endif - -/* Represents an address on the target system. */ - -typedef unsigned long GDB_CORE_ADDR; - -/* Return status codes. */ - -enum gdb_status { - GDB_FAIL = 0, - GDB_SUCCESS = 1 -}; - -struct gdb_object; -struct gdb_symtab; -struct gdb_block; -struct gdb_symbol_callbacks; - -/* An array of these are used to represent a map from code addresses to line - numbers in the source file. */ - -struct gdb_line_mapping -{ - int line; - GDB_CORE_ADDR pc; -}; - -/* Create a new GDB code object. Each code object can have one or - more symbol tables, each representing a compiled source file. */ - -typedef struct gdb_object *(gdb_object_open) (struct gdb_symbol_callbacks *cb); - -/* The callback used to create new symbol table. CB is the - gdb_symbol_callbacks which the structure is part of. FILE_NAME is - an (optionally NULL) file name to associate with this new symbol - table. - - Returns a new instance to gdb_symtab that can later be passed to - gdb_block_new, gdb_symtab_add_line_mapping and gdb_symtab_close. */ - -typedef struct gdb_symtab *(gdb_symtab_open) (struct gdb_symbol_callbacks *cb, - struct gdb_object *obj, - const char *file_name); - -/* Creates a new block in a given symbol table. A symbol table is a - forest of blocks, each block representing an code address range and - a corresponding (optionally NULL) NAME. In case the block - corresponds to a function, the NAME passed should be the name of - the function. - - If the new block to be created is a child of (i.e. is nested in) - another block, the parent block can be passed in PARENT. SYMTAB is - the symbol table the new block is to belong in. BEGIN, END is the - code address range the block corresponds to. - - Returns a new instance of gdb_block, which, as of now, has no use. - Note that the gdb_block returned must not be freed by the - caller. */ - -typedef struct gdb_block *(gdb_block_open) (struct gdb_symbol_callbacks *cb, - struct gdb_symtab *symtab, - struct gdb_block *parent, - GDB_CORE_ADDR begin, - GDB_CORE_ADDR end, - const char *name); - -/* Adds a PC to line number mapping for the symbol table SYMTAB. - NLINES is the number of elements in LINES, each element - corresponding to one (PC, line) pair. */ - -typedef void (gdb_symtab_add_line_mapping) (struct gdb_symbol_callbacks *cb, - struct gdb_symtab *symtab, - int nlines, - struct gdb_line_mapping *lines); - -/* Close the symtab SYMTAB. This signals to GDB that no more blocks - will be opened on this symtab. */ - -typedef void (gdb_symtab_close) (struct gdb_symbol_callbacks *cb, - struct gdb_symtab *symtab); - - -/* Closes the gdb_object OBJ and adds the emitted information into - GDB's internal structures. Once this is done, the debug - information will be picked up and used; this will usually be the - last operation in gdb_read_debug_info. */ - -typedef void (gdb_object_close) (struct gdb_symbol_callbacks *cb, - struct gdb_object *obj); - -/* Reads LEN bytes from TARGET_MEM in the target's virtual address - space into GDB_BUF. - - Returns GDB_FAIL on failure, and GDB_SUCCESS on success. */ - -typedef enum gdb_status (gdb_target_read) (GDB_CORE_ADDR target_mem, - void *gdb_buf, int len); - -/* The list of callbacks that are passed to read. These callbacks are - to be used to construct the symbol table. The functions have been - described above. */ - -struct gdb_symbol_callbacks -{ - gdb_object_open *object_open; - gdb_symtab_open *symtab_open; - gdb_block_open *block_open; - gdb_symtab_close *symtab_close; - gdb_object_close *object_close; - - gdb_symtab_add_line_mapping *line_mapping_add; - gdb_target_read *target_read; - - /* For internal use by GDB. */ - void *priv_data; -}; - -/* Forward declaration. */ - -struct gdb_reg_value; - -/* A function of this type is used to free a gdb_reg_value. See the - comment on `free' in struct gdb_reg_value. */ - -typedef void (gdb_reg_value_free) (struct gdb_reg_value *); - -/* Denotes the value of a register. */ - -struct gdb_reg_value -{ - /* The size of the register in bytes. The reader need not set this - field. This will be set for (defined) register values being read - from GDB using reg_get. */ - int size; - - /* Set to non-zero if the value for the register is known. The - registers for which the reader does not call reg_set are also - assumed to be undefined */ - int defined; - - /* Since gdb_reg_value is a variable sized structure, it will - usually be allocated on the heap. This function is expected to - contain the corresponding "free" function. - - When a pointer to gdb_reg_value is being sent from GDB to the - reader (via gdb_unwind_reg_get), the reader is expected to call - this function (with the same gdb_reg_value as argument) once it - is done with the value. - - When the function sends the a gdb_reg_value to GDB (via - gdb_unwind_reg_set), it is expected to set this field to point to - an appropriate cleanup routine (or to NULL if no cleanup is - required). */ - gdb_reg_value_free *free; - - /* The value of the register. */ - unsigned char value[1]; -}; - -/* get_frame_id in gdb_reader_funcs is to return a gdb_frame_id - corresponding to the current frame. The registers corresponding to - the current frame can be read using reg_get. Calling get_frame_id - on a particular frame should return the same gdb_frame_id - throughout its lifetime (i.e. till before it gets unwound). One - way to do this is by having the CODE_ADDRESS point to the - function's first instruction and STACK_ADDRESS point to the value - of the stack pointer when entering the function. */ - -struct gdb_frame_id -{ - GDB_CORE_ADDR code_address; - GDB_CORE_ADDR stack_address; -}; - -/* Forward declaration. */ - -struct gdb_unwind_callbacks; - -/* Returns the value of a particular register in the current frame. - The current frame is the frame that needs to be unwound into the - outer (earlier) frame. - - CB is the struct gdb_unwind_callbacks * the callback belongs to. - REGNUM is the DWARF register number of the register that needs to - be unwound. - - Returns the gdb_reg_value corresponding to the register requested. - In case the value of the register has been optimized away or - otherwise unavailable, the defined flag in the returned - gdb_reg_value will be zero. */ - -typedef struct gdb_reg_value *(gdb_unwind_reg_get) - (struct gdb_unwind_callbacks *cb, int regnum); - -/* Sets the previous value of a particular register. REGNUM is the - (DWARF) register number whose value is to be set. VAL is the value - the register is to be set to. - - VAL is *not* copied, so the memory allocated to it cannot be - reused. Once GDB no longer needs the value, it is deallocated - using the FREE function (see gdb_reg_value). - - A register can also be "set" to an undefined value by setting the - defined in VAL to zero. */ - -typedef void (gdb_unwind_reg_set) (struct gdb_unwind_callbacks *cb, int regnum, - struct gdb_reg_value *val); - -/* This struct is passed to unwind in gdb_reader_funcs, and is to be - used to unwind the current frame (current being the frame whose - registers can be read using reg_get) into the earlier frame. The - functions have been described above. */ - -struct gdb_unwind_callbacks -{ - gdb_unwind_reg_get *reg_get; - gdb_unwind_reg_set *reg_set; - gdb_target_read *target_read; - - /* For internal use by GDB. */ - void *priv_data; -}; - -/* Forward declaration. */ - -struct gdb_reader_funcs; - -/* Parse the debug info off a block of memory, pointed to by MEMORY - (already copied to GDB's address space) and MEMORY_SZ bytes long. - The implementation has to use the functions in CB to actually emit - the parsed data into GDB. SELF is the same structure returned by - gdb_init_reader. - - Return GDB_FAIL on failure and GDB_SUCCESS on success. */ - -typedef enum gdb_status (gdb_read_debug_info) (struct gdb_reader_funcs *self, - struct gdb_symbol_callbacks *cb, - void *memory, long memory_sz); - -/* Unwind the current frame, CB is the set of unwind callbacks that - are to be used to do this. - - Return GDB_FAIL on failure and GDB_SUCCESS on success. */ - -typedef enum gdb_status (gdb_unwind_frame) (struct gdb_reader_funcs *self, - struct gdb_unwind_callbacks *cb); - -/* Return the frame ID corresponding to the current frame, using C to - read the current register values. See the comment on struct - gdb_frame_id. */ - -typedef struct gdb_frame_id (gdb_get_frame_id) (struct gdb_reader_funcs *self, - struct gdb_unwind_callbacks *c); - -/* Called when a reader is being unloaded. This function should also - free SELF, if required. */ - -typedef void (gdb_destroy_reader) (struct gdb_reader_funcs *self); - -/* Called when the reader is loaded. Must either return a properly - populated gdb_reader_funcs or NULL. The memory allocated for the - gdb_reader_funcs is to be managed by the reader itself (i.e. if it - is allocated from the heap, it must also be freed in - gdb_destroy_reader). */ - -extern struct gdb_reader_funcs *gdb_init_reader (void); - -/* Pointer to the functions which implement the reader's - functionality. The individual functions have been documented - above. - - None of the fields are optional. */ - -struct gdb_reader_funcs -{ - /* Must be set to GDB_READER_INTERFACE_VERSION. */ - int reader_version; - - /* For use by the reader. */ - void *priv_data; - - gdb_read_debug_info *read; - gdb_unwind_frame *unwind; - gdb_get_frame_id *get_frame_id; - gdb_destroy_reader *destroy; -}; - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o Binary files differindex 7b2d7b7..2fd9f1a 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbegin.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o Binary files differindex 69ec19d..b010cec 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o Binary files differindex 7b2d7b7..2fd9f1a 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtbeginT.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtend.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtend.o Binary files differindex e3ed9e2..7e4f7ac 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtend.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtend.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtendS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtendS.o Binary files differindex e3ed9e2..7e4f7ac 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtendS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtendS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o Binary files differindex 1df92bc..386c0df 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/crtfastmath.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a Binary files differindex 235b248..e571aa8 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcc.a diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a Binary files differindex 0917af2..13195bb 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r1/libgcov.a diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o Binary files differindex f3999a5..dc264b6 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbegin.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o Binary files differindex ca42e09..39a35f3 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o Binary files differindex f3999a5..dc264b6 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtbeginT.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtend.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtend.o Binary files differindex dfc01ad..3d07726 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtend.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtend.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtendS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtendS.o Binary files differindex dfc01ad..3d07726 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtendS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtendS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o Binary files differindex 8db1d7e..5035a03 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/crtfastmath.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a Binary files differindex 7d6ad3e..6a28be7 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcc.a diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a Binary files differindex 91369de..8c4883a 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r2/libgcov.a diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o Binary files differindex f925c1d..a280bc3 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbegin.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o Binary files differindex 53dd56d..a91d627 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o Binary files differindex f925c1d..a280bc3 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtbeginT.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtend.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtend.o Binary files differindex 1db90de..ad55ebf 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtend.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtend.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtendS.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtendS.o Binary files differindex 1db90de..ad55ebf 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtendS.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtendS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o Binary files differindex 6d17fd9..53e5111 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/crtfastmath.o diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a Binary files differindex 3aca3de..557f3f6 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcc.a diff --git a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a Binary files differindex 46a91a0..723f670 100644 --- a/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a +++ b/lib/gcc/mips64el-linux-android/4.9/32/mips-r6/libgcov.a diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/crtbegin.o Binary files differindex d55aa6b..8a57b45 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtbegin.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtbegin.o diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o Binary files differindex bcc6e6a..2f6e173 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtbeginS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o Binary files differindex d55aa6b..8a57b45 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtbeginT.o diff --git a/lib/gcc/mips64el-linux-android/4.9/crtend.o b/lib/gcc/mips64el-linux-android/4.9/crtend.o Binary files differindex 867b851..8c8fdf5 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtend.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtend.o diff --git a/lib/gcc/mips64el-linux-android/4.9/crtendS.o b/lib/gcc/mips64el-linux-android/4.9/crtendS.o Binary files differindex 867b851..8c8fdf5 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtendS.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtendS.o diff --git a/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o Binary files differindex c717c67..660cbdd 100644 --- a/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o +++ b/lib/gcc/mips64el-linux-android/4.9/crtfastmath.o diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-counter.def b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-counter.def new file mode 100644 index 0000000..e847f05 --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-counter.def @@ -0,0 +1,60 @@ +/* Definitions for the gcov counters in the GNU compiler. + Copyright (C) 2001-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +<http://www.gnu.org/licenses/>. */ + +/* Before including this file, define a macro: + + DEF_GCOV_COUNTER(COUNTER, NAME, FN_TYPE) + + This macro will be expanded to all supported gcov counters, their + names, or the type of handler functions. FN_TYPE will be + expanded to a handler function, like in gcov_merge, it is + expanded to __gcov_merge ## FN_TYPE. */ + +/* Arc transitions. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_ARCS, "arcs", _add) + +/* Histogram of value inside an interval. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_V_INTERVAL, "interval", _add) + +/* Histogram of exact power2 logarithm of a value. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_V_POW2, "pow2", _add) + +/* The most common value of expression. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_V_SINGLE, "single", _single) + +/* The most common difference between consecutive values of expression. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_V_DELTA, "delta", _delta) + +/* The most common indirect address. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_V_INDIR, "indirect_call", _single) + +/* Compute average value passed to the counter. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_AVERAGE, "average", _add) + +/* IOR of the all values passed to counter. */ +DEF_GCOV_COUNTER(GCOV_COUNTER_IOR, "ior", _ior) + +/* Top N value tracking for indirect calls */ +DEF_GCOV_COUNTER(GCOV_COUNTER_ICALL_TOPNV, "indirect_call_topn", _icall_topn) + +/* Time profile collecting first run of a function */ +DEF_GCOV_COUNTER(GCOV_TIME_PROFILER, "time_profiler", _time_profile) + +/* Top N value tracking for indirect calls */ +DEF_GCOV_COUNTER(GCOV_COUNTER_DIRECT_CALL, "direct_call", _dc) diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.c b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.c index f226cbf..fc5e32e 100644 --- a/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.c +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.c @@ -41,7 +41,7 @@ static void gcov_allocate (unsigned); GCOV_LINKAGE struct gcov_var { - FILE *file; + _GCOV_FILE *file; gcov_position_t start; /* Position of first byte of block */ unsigned offset; /* Read/write position within the block. */ unsigned length; /* Read limit in the block. */ @@ -94,7 +94,7 @@ gcov_rewrite (void) gcov_var.mode = -1; gcov_var.start = 0; gcov_var.offset = 0; - fseek (gcov_var.file, 0L, SEEK_SET); + _GCOV_fseek (gcov_var.file, 0L, SEEK_SET); } #endif @@ -120,6 +120,7 @@ static inline gcov_unsigned_t from_file (gcov_unsigned_t value) Return zero on failure, >0 on opening an existing file and <0 on creating a new one. */ +#ifndef __KERNEL__ GCOV_LINKAGE int #if IN_LIBGCOV gcov_open (const char *name) @@ -190,7 +191,7 @@ gcov_open (const char *name, int mode) if (fstat (fd, &st) < 0) { - fclose (gcov_var.file); + _GCOV_fclose (gcov_var.file); gcov_var.file = 0; return 0; } @@ -203,13 +204,13 @@ gcov_open (const char *name, int mode) gcov_var.mode = mode * 2 + 1; #else if (mode >= 0) - gcov_var.file = fopen (name, (mode > 0) ? "rb" : "r+b"); + gcov_var.file = _GCOV_fopen (name, (mode > 0) ? "rb" : "r+b"); if (gcov_var.file) gcov_var.mode = 1; else if (mode <= 0) { - gcov_var.file = fopen (name, "w+b"); + gcov_var.file = _GCOV_fopen (name, "w+b"); if (gcov_var.file) gcov_var.mode = mode * 2 + 1; } @@ -221,6 +222,24 @@ gcov_open (const char *name, int mode) return 1; } +#else /* __KERNEL__ */ + +extern _GCOV_FILE *gcov_current_file; + +GCOV_LINKAGE int +gcov_open (const char *name) +{ + gcov_var.start = 0; + gcov_var.offset = gcov_var.length = 0; + gcov_var.overread = -1u; + gcov_var.error = 0; + gcov_var.file = gcov_current_file; + gcov_var.mode = 1; + + return 1; +} +#endif /* __KERNEL__ */ + /* Close the current gcov file. Flushes data to disk. Returns nonzero on failure or error flag set. */ @@ -234,7 +253,7 @@ gcov_close (void) if (gcov_var.offset && gcov_var.mode < 0) gcov_write_block (gcov_var.offset); #endif - fclose (gcov_var.file); + _GCOV_fclose (gcov_var.file); gcov_var.file = 0; gcov_var.length = 0; } @@ -290,7 +309,7 @@ gcov_allocate (unsigned length) static void gcov_write_block (unsigned size) { - if (fwrite (gcov_var.buffer, size << 2, 1, gcov_var.file) != 1) + if (_GCOV_fwrite (gcov_var.buffer, size << 2, 1, gcov_var.file) != 1) gcov_var.error = 1; gcov_var.start += size; gcov_var.offset -= size; @@ -336,6 +355,47 @@ gcov_write_unsigned (gcov_unsigned_t value) buffer[0] = value; } +/* Compute the total length in words required to write NUM_STRINGS + in STRING_ARRAY as unsigned. */ + +GCOV_LINKAGE gcov_unsigned_t +gcov_compute_string_array_len (char **string_array, + gcov_unsigned_t num_strings) +{ + gcov_unsigned_t len = 0, i; + for (i = 0; i < num_strings; i++) + { + gcov_unsigned_t string_len + = (strlen (string_array[i]) + sizeof (gcov_unsigned_t)) + / sizeof (gcov_unsigned_t); + len += string_len; + len += 1; /* Each string is lead by a length. */ + } + return len; +} + +/* Write NUM_STRINGS in STRING_ARRAY as unsigned. */ + +GCOV_LINKAGE void +gcov_write_string_array (char **string_array, gcov_unsigned_t num_strings) +{ + gcov_unsigned_t i, j; + for (j = 0; j < num_strings; j++) + { + gcov_unsigned_t *aligned_string; + gcov_unsigned_t string_len = + (strlen (string_array[j]) + sizeof (gcov_unsigned_t)) / + sizeof (gcov_unsigned_t); + aligned_string = (gcov_unsigned_t *) + alloca ((string_len + 1) * sizeof (gcov_unsigned_t)); + memset (aligned_string, 0, (string_len + 1) * sizeof (gcov_unsigned_t)); + aligned_string[0] = string_len; + strcpy ((char*) (aligned_string + 1), string_array[j]); + for (i = 0; i < (string_len + 1); i++) + gcov_write_unsigned (aligned_string[i]); + } +} + /* Write counter VALUE to coverage file. Sets error flag appropriately. */ @@ -517,7 +577,7 @@ gcov_read_words (unsigned words) gcov_allocate (gcov_var.length + words); excess = gcov_var.alloc - gcov_var.length; #endif - excess = fread (gcov_var.buffer + gcov_var.length, + excess = _GCOV_fread (gcov_var.buffer + gcov_var.length, 1, excess << 2, gcov_var.file) >> 2; gcov_var.length += excess; if (gcov_var.length < words) @@ -586,6 +646,20 @@ gcov_read_string (void) } #endif +#ifdef __KERNEL__ +static int +k_popcountll (long long x) +{ + int c = 0; + while (x) + { + c++; + x &= (x-1); + } + return c; +} +#endif + GCOV_LINKAGE void gcov_read_summary (struct gcov_summary *summary) { @@ -612,8 +686,12 @@ gcov_read_summary (struct gcov_summary *summary) hwint.h (where popcount_hwi is declared). However, libgcov.a is built by the bootstrapped compiler and therefore the builtins are always available. */ +#ifndef __KERNEL__ h_cnt += __builtin_popcount (histo_bitvector[bv_ix]); #else + h_cnt += k_popcountll (histo_bitvector[bv_ix]); +#endif +#else h_cnt += popcount_hwi (histo_bitvector[bv_ix]); #endif } @@ -650,6 +728,78 @@ gcov_read_summary (struct gcov_summary *summary) } } +/* Read LENGTH words (unsigned type) from a zero profile fixup record with the + number of function flags saved in NUM_FNS. Returns the int flag array, which + should be deallocated by caller, or NULL on error. */ + +GCOV_LINKAGE int * +gcov_read_comdat_zero_fixup (gcov_unsigned_t length, + gcov_unsigned_t *num_fns) +{ +#ifndef __KERNEL__ + unsigned ix, f_ix; + gcov_unsigned_t num = gcov_read_unsigned (); + /* The length consists of 1 word to hold the number of functions, + plus enough 32-bit words to hold 1 bit/function. */ + gcc_assert ((num + 31) / 32 + 1 == length); + int *zero_fixup_flags = (int *) xcalloc (num, sizeof (int)); + for (ix = 0; ix < length - 1; ix++) + { + gcov_unsigned_t bitvector = gcov_read_unsigned (); + f_ix = ix * 32; + while (bitvector) + { + if (bitvector & 0x1) + zero_fixup_flags[f_ix] = 1; + f_ix++; + bitvector >>= 1; + } + } + *num_fns = num; + return zero_fixup_flags; +#else + return NULL; +#endif +} + +/* Read NUM_STRINGS strings (as an unsigned array) in STRING_ARRAY, and return + the number of words read. */ + +GCOV_LINKAGE gcov_unsigned_t +gcov_read_string_array (char **string_array, gcov_unsigned_t num_strings) +{ + gcov_unsigned_t i, j, len = 0; + + for (j = 0; j < num_strings; j++) + { + gcov_unsigned_t string_len = gcov_read_unsigned (); + string_array[j] = + (char *) xmalloc (string_len * sizeof (gcov_unsigned_t)); + for (i = 0; i < string_len; i++) + ((gcov_unsigned_t *) string_array[j])[i] = gcov_read_unsigned (); + len += (string_len + 1); + } + return len; +} + +/* Read LENGTH words (unsigned type) from a build info record with the number + of strings read saved in NUM_STRINGS. Returns the string array, which + should be deallocated by caller, or NULL on error. */ + +GCOV_LINKAGE char ** +gcov_read_build_info (gcov_unsigned_t length, gcov_unsigned_t *num_strings) +{ + gcov_unsigned_t num = gcov_read_unsigned (); + char **build_info_strings = (char **) + xmalloc (sizeof (char *) * num); + gcov_unsigned_t len = gcov_read_string_array (build_info_strings, + num); + if (len != length - 1) + return NULL; + *num_strings = num; + return build_info_strings; +} + #if (!IN_LIBGCOV && IN_GCOV != 1) || defined (IN_GCOV_TOOL) /* Read LEN words (unsigned type) and construct MOD_INFO. */ @@ -657,7 +807,7 @@ GCOV_LINKAGE void gcov_read_module_info (struct gcov_module_info *mod_info, gcov_unsigned_t len) { - gcov_unsigned_t src_filename_len, filename_len, i, j, num_strings; + gcov_unsigned_t src_filename_len, filename_len, i, num_strings; mod_info->ident = gcov_read_unsigned (); mod_info->is_primary = gcov_read_unsigned (); mod_info->flags = gcov_read_unsigned (); @@ -689,16 +839,7 @@ gcov_read_module_info (struct gcov_module_info *mod_info, + mod_info->num_system_paths + mod_info->num_cpp_defines + mod_info->num_cpp_includes + mod_info->num_cl_args; - for (j = 0; j < num_strings; j++) - { - gcov_unsigned_t string_len = gcov_read_unsigned (); - mod_info->string_array[j] = - (char *) xmalloc (string_len * sizeof (gcov_unsigned_t)); - for (i = 0; i < string_len; i++) - ((gcov_unsigned_t *) mod_info->string_array[j])[i] = - gcov_read_unsigned (); - len -= (string_len + 1); - } + len -= gcov_read_string_array (mod_info->string_array, num_strings); gcc_assert (!len); } #endif @@ -719,8 +860,8 @@ gcov_sync (gcov_position_t base, gcov_unsigned_t length) else { gcov_var.offset = gcov_var.length = 0; - fseek (gcov_var.file, base << 2, SEEK_SET); - gcov_var.start = ftell (gcov_var.file) >> 2; + _GCOV_fseek (gcov_var.file, base << 2, SEEK_SET); + gcov_var.start = _GCOV_ftell (gcov_var.file) >> 2; } } #endif @@ -734,8 +875,8 @@ gcov_seek (gcov_position_t base) gcc_assert (gcov_var.mode < 0); if (gcov_var.offset) gcov_write_block (gcov_var.offset); - fseek (gcov_var.file, base << 2, SEEK_SET); - gcov_var.start = ftell (gcov_var.file) >> 2; + _GCOV_fseek (gcov_var.file, base << 2, SEEK_SET); + gcov_var.start = _GCOV_ftell (gcov_var.file) >> 2; } /* Truncate the gcov file at the current position. */ @@ -743,15 +884,19 @@ gcov_seek (gcov_position_t base) GCOV_LINKAGE void gcov_truncate (void) { +#ifdef __KERNEL__ + gcc_assert (0); +#else long offs; int filenum; gcc_assert (gcov_var.mode < 0); if (gcov_var.offset) gcov_write_block (gcov_var.offset); - offs = ftell (gcov_var.file); + offs = _GCOV_ftell (gcov_var.file); filenum = fileno (gcov_var.file); - if (offs == -1 || filenum == -1 || ftruncate (filenum, offs)) + if (offs == -1 || filenum == -1 || _GCOV_ftruncate (filenum, offs)) gcov_var.error = 1; +#endif /* __KERNEL__ */ } #endif diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.h b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.h index 50ffa55..895ff98 100644 --- a/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.h +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/gcov-io.h @@ -129,7 +129,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see blocks they are for. The data file contains the following records. - data: {unit summary:object summary:program* function-data*}* + data: {unit summary:program* build_info zero_fixup function-data*}* unit: header int32:checksum function-data: announce_function present counts announce_function: header int32:ident @@ -141,6 +141,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see int64:max int64:sum_max histogram histogram: {int32:bitvector}8 histogram-buckets* histogram-buckets: int32:num int64:min int64:sum + build_info: string:info* + zero_fixup: int32:num int32:bitvector* The ANNOUNCE_FUNCTION record is the same as that in the note file, but without the source location. The COUNTS gives the @@ -152,6 +154,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see zero. Note that the data file might contain information from several runs concatenated, or the data might be merged. + BUILD_INFO record contains a list of strings that is used + to include in the data file information about the profile generate + build. For example, it can be used to include source revision + information that is useful in diagnosing profile mis-matches. + + ZERO_FIXUP record contains a count of functions in the gcda file + and an array of bitvectors indexed by the function index's in the + function-data section. Each bit flags whether the function was a + COMDAT that had all-zero profiles that was fixed up by dyn-ipa + using profiles from functions with matching checksums in other modules. + This file is included by both the compiler, gcov tools and the runtime support library libgcov. IN_LIBGCOV and IN_GCOV are used to distinguish which case is which. If IN_LIBGCOV is nonzero, @@ -164,6 +177,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #ifndef GCC_GCOV_IO_H #define GCC_GCOV_IO_H +#ifndef __KERNEL__ +# define _GCOV_FILE FILE +# define _GCOV_fclose fclose +# define _GCOV_ftell ftell +# define _GCOV_fseek fseek +# define _GCOV_ftruncate ftruncate +# define _GCOV_fread fread +# define _GCOV_fwrite fwrite +# define _GCOV_fread fread +# define _GCOV_fileno fileno +# define _GCOV_fopen fopen +#endif + #ifndef IN_LIBGCOV /* About the host */ @@ -255,8 +281,12 @@ typedef unsigned HOST_WIDEST_INT gcov_type_unsigned; #define GCOV_TAG_COUNTER_NUM(LENGTH) ((LENGTH) / 2) #define GCOV_TAG_OBJECT_SUMMARY ((gcov_unsigned_t)0xa1000000) /* Obsolete */ #define GCOV_TAG_PROGRAM_SUMMARY ((gcov_unsigned_t)0xa3000000) +#define GCOV_TAG_COMDAT_ZERO_FIXUP ((gcov_unsigned_t)0xa9000000) +/* Ceiling divide by 32 bit word size, plus one word to hold NUM. */ +#define GCOV_TAG_COMDAT_ZERO_FIXUP_LENGTH(NUM) (1 + (NUM + 31) / 32) #define GCOV_TAG_SUMMARY_LENGTH(NUM) \ (1 + GCOV_COUNTERS_SUMMABLE * (10 + 3 * 2) + (NUM) * 5) +#define GCOV_TAG_BUILD_INFO ((gcov_unsigned_t)0xa7000000) #define GCOV_TAG_MODULE_INFO ((gcov_unsigned_t)0xab000000) #define GCOV_TAG_AFDO_FILE_NAMES ((gcov_unsigned_t)0xaa000000) #define GCOV_TAG_AFDO_FUNCTION ((gcov_unsigned_t)0xac000000) @@ -434,9 +464,16 @@ GCOV_LINKAGE int gcov_close (void) ATTRIBUTE_HIDDEN; GCOV_LINKAGE gcov_unsigned_t gcov_read_unsigned (void) ATTRIBUTE_HIDDEN; GCOV_LINKAGE gcov_type gcov_read_counter (void) ATTRIBUTE_HIDDEN; GCOV_LINKAGE void gcov_read_summary (struct gcov_summary *) ATTRIBUTE_HIDDEN; +GCOV_LINKAGE int *gcov_read_comdat_zero_fixup (gcov_unsigned_t, + gcov_unsigned_t *) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE char **gcov_read_build_info (gcov_unsigned_t, gcov_unsigned_t *) + ATTRIBUTE_HIDDEN; GCOV_LINKAGE const char *gcov_read_string (void); GCOV_LINKAGE void gcov_sync (gcov_position_t /*base*/, gcov_unsigned_t /*length */); +GCOV_LINKAGE gcov_unsigned_t gcov_read_string_array (char **, gcov_unsigned_t) + ATTRIBUTE_HIDDEN; #if !IN_LIBGCOV && IN_GCOV != 1 @@ -447,6 +484,11 @@ GCOV_LINKAGE void gcov_read_module_info (struct gcov_module_info *mod_info, #if !IN_GCOV /* Available outside gcov */ GCOV_LINKAGE void gcov_write_unsigned (gcov_unsigned_t) ATTRIBUTE_HIDDEN; +GCOV_LINKAGE gcov_unsigned_t gcov_compute_string_array_len (char **, + gcov_unsigned_t) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_write_string_array (char **, gcov_unsigned_t) + ATTRIBUTE_HIDDEN; #endif #if !IN_GCOV && !IN_LIBGCOV diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver-kernel.c b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver-kernel.c new file mode 100644 index 0000000..34298ed --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver-kernel.c @@ -0,0 +1,203 @@ +/* Routines required for instrumenting a program. */ +/* Compile this one with gcc. */ +/* Copyright (C) 1989-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + + +/* A utility function for outputing errors. */ + +static int __attribute__((format(printf, 1, 2))) +gcov_error (const char *fmt, ...) +{ + int ret; + va_list argp; + va_start (argp, fmt); + ret = vprintk (fmt, argp); + va_end (argp); + return ret; +} + +static void +allocate_filename_struct (struct gcov_filename_aux *gf) +{ + const char *gcov_prefix; + int gcov_prefix_strip = 0; + size_t prefix_length = 0; + char *gi_filename_up; + + /* Allocate and initialize the filename scratch space plus one. */ + gi_filename = (char *) xmalloc (prefix_length + gcov_max_filename + 2); + if (prefix_length) + memcpy (gi_filename, gcov_prefix, prefix_length); + gi_filename_up = gi_filename + prefix_length; + + gf->gi_filename_up = gi_filename_up; + gf->prefix_length = prefix_length; + gf->gcov_prefix_strip = gcov_prefix_strip; +} + +static int +gcov_open_by_filename (char *gi_filename) +{ + gcov_open (gi_filename); + return 0; +} + + +/* Strip GCOV_PREFIX_STRIP levels of leading '/' from FILENAME and + put the result into GI_FILENAME_UP. */ + +static void +gcov_strip_leading_dirs (int prefix_length, int gcov_prefix_strip, + const char *filename, char *gi_filename_up) +{ + strcpy (gi_filename_up, filename); +} + +/* Current virual gcda file. This is for kernel use only. */ +gcov_kernel_vfile *gcov_current_file; + +/* Set current virutal gcda file. It needs to be set before dumping + profile data. */ + +void +gcov_set_vfile (gcov_kernel_vfile *file) +{ + gcov_current_file = file; +} + +/* File fclose operation in kernel mode. */ + +int +kernel_file_fclose (gcov_kernel_vfile *fp) +{ + return 0; +} + +/* File ftell operation in kernel mode. It currently should not + be called. */ + +long +kernel_file_ftell (gcov_kernel_vfile *fp) +{ + return 0; +} + +/* File fseek operation in kernel mode. It should only be called + with OFFSET==0 and WHENCE==0 to a freshly opened file. */ + +int +kernel_file_fseek (gcov_kernel_vfile *fp, long offset, int whence) +{ + gcc_assert (offset == 0 && whence == 0 && fp->count == 0); + return 0; +} + +/* File ftruncate operation in kernel mode. It currently should not + be called. */ + +int +kernel_file_ftruncate (gcov_kernel_vfile *fp, off_t value) +{ + gcc_assert (0); /* should not reach here */ + return 0; +} + +/* File fread operation in kernel mode. It currently should not + be called. */ + +int +kernel_file_fread (void *ptr, size_t size, size_t nitems, + gcov_kernel_vfile *fp) +{ + gcc_assert (0); /* should not reach here */ + return 0; +} + +/* File fwrite operation in kernel mode. It outputs the data + to a buffer in the virual file. */ + +int +kernel_file_fwrite (const void *ptr, size_t size, + size_t nitems, gcov_kernel_vfile *fp) +{ + char *vbuf; + unsigned vsize, vpos; + unsigned len; + + if (!fp) return 0; + + vbuf = fp->buf; + vsize = fp->size; + vpos = fp->count; + + + if (vsize < vpos) + { + printk (KERN_ERR + "GCOV_KERNEL: something wrong in file %s: vbuf=%p vsize=%u" + " vpos=%u\n", + fp->info->filename, vbuf, vsize, vpos); + return 0; + } + + len = vsize - vpos; + len /= size; + + /* Increase the virtual file size if it is not suffcient. */ + while (len < nitems) + { + vsize *= 2; + len = vsize - vpos; + len /= size; + } + + if (vsize != fp->size) + { + vbuf = fp->buf = (char *) gcov_realloc_file_buf(vsize, vpos); + fp->size = vsize; + } + + if (len > nitems) + len = nitems; + + memcpy (vbuf+vpos, ptr, size*len); + fp->count += len*size; + + if (len != nitems) + printk (KERN_ERR + "GCOV_KERNEL: something wrong in file %s: size=%lu nitems=%lu" + " len=%d vsize=%u vpos=%u \n", + fp->info->filename, size, nitems, len, vsize, vpos); + return len; +} + +/* File fileno operation in kernel mode. It currently should not + be called. */ + +int +kernel_file_fileno (gcov_kernel_vfile *fp) +{ + gcc_assert (0); /* should not reach here */ + return 0; +} diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver.c b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver.c index dc8cf36..3c569f1 100644 --- a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver.c +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-driver.c @@ -34,28 +34,24 @@ void __gcov_init (struct gcov_info *p __attribute__ ((unused))) {} #else /* inhibit_libc */ +#if !defined(__KERNEL__) #include <string.h> #if GCOV_LOCKED #include <fcntl.h> #include <errno.h> #include <sys/stat.h> #endif +#endif /* __KERNEL__ */ #ifdef L_gcov #include "gcov-io.c" -#ifndef IN_GCOV_TOOL -extern gcov_unsigned_t __gcov_sampling_period; -extern gcov_unsigned_t __gcov_has_sampling; -static int gcov_sampling_period_initialized = 0; -#endif - /* Unique identifier assigned to each module (object file). */ static gcov_unsigned_t gcov_cur_module_id = 0; /* Dynamic call graph build and form module groups. */ -int __gcov_compute_module_groups (void) ATTRIBUTE_HIDDEN; +int __gcov_compute_module_groups (char **zero_counts) ATTRIBUTE_HIDDEN; void __gcov_finalize_dyn_callgraph (void) ATTRIBUTE_HIDDEN; /* The following functions can be called from outside of this file. */ @@ -67,7 +63,11 @@ extern int get_gcov_dump_complete (void) ATTRIBUTE_HIDDEN; extern void set_gcov_list (struct gcov_info *) ATTRIBUTE_HIDDEN; __attribute__((weak)) void __coverage_callback (gcov_type, int); -#ifndef IN_GCOV_TOOL +#if !defined(IN_GCOV_TOOL) && !defined(__KERNEL__) +extern gcov_unsigned_t __gcov_sampling_period; +extern gcov_unsigned_t __gcov_has_sampling; +static int gcov_sampling_period_initialized = 0; + /* Create a strong reference to these symbols so that they are unconditionally pulled into the instrumented binary, even when the only reference is a weak reference. This is necessary because @@ -129,6 +129,24 @@ set_gcov_list (struct gcov_info *head) __gcov_list = head; } +/* Flag if the current function being read was marked as having fixed-up + zero counters. */ +static int __gcov_curr_fn_fixed_up; + +/* Set function fixed up flag. */ +void +set_gcov_fn_fixed_up (int fixed_up) +{ + __gcov_curr_fn_fixed_up = fixed_up; +} + +/* Return function fixed up flag. */ +int +get_gcov_fn_fixed_up (void) +{ + return __gcov_curr_fn_fixed_up; +} + /* Size of the longest file name. */ /* We need to expose this static variable when compiling for gcov-tool. */ #ifndef IN_GCOV_TOOL @@ -181,8 +199,8 @@ free_fn_data (const struct gcov_info *gi_ptr, struct gcov_fn_buffer *buffer, for (ix = 0; ix != limit; ix++) if (gi_ptr->merge[ix]) - free (buffer->info.ctrs[n_ctr++].values); - free (buffer); + xfree (buffer->info.ctrs[n_ctr++].values); + xfree (buffer); return next; } @@ -386,7 +404,10 @@ static int run_accounted = 0; /* This funtions computes the program level summary and the histo-gram. It computes and returns CRC32 and stored summary in THIS_PRG. */ -static gcov_unsigned_t +#if !IN_GCOV_TOOL +static +#endif +gcov_unsigned_t gcov_exit_compute_summary (struct gcov_summary *this_prg) { struct gcov_info *gi_ptr; @@ -451,14 +472,58 @@ struct gcov_filename_aux{ }; /* Including system dependent components. */ +#if !defined (__KERNEL__) #include "libgcov-driver-system.c" +#else +#include "libgcov-driver-kernel.c" +#endif + +static int +scan_build_info (struct gcov_info *gi_ptr) +{ + gcov_unsigned_t i, length; + gcov_unsigned_t num_strings = 0; + char **build_info_strings; + length = gcov_read_unsigned (); + build_info_strings = gcov_read_build_info (length, &num_strings); + if (!build_info_strings) + { + gcov_error ("profiling:%s:Error reading build info\n", gi_filename); + return -1; + } + if (!gi_ptr->build_info) + { + gcov_error ("profiling:%s:Mismatched build info sections, expected " + "none, found %u strings)\n", gi_filename, num_strings); + return -1; + } + + for (i = 0; i < num_strings; i++) + { + if (strcmp (build_info_strings[i], gi_ptr->build_info[i])) + { + gcov_error ("profiling:%s:Mismatched build info string " + "(expected %s, read %s)\n", + gi_filename, gi_ptr->build_info[i], + build_info_strings[i]); + return -1; + } + xfree (build_info_strings[i]); + } + xfree (build_info_strings); + return 0; +} + +#if !defined(__KERNEL__) /* Scan through the current open gcda file corresponding to GI_PTR - to locate the end position of the last summary, returned in - SUMMARY_END_POS_P. Return 0 on success, -1 on error. */ + to locate the end position just before function data should be rewritten, + returned in SUMMARY_END_POS_P. E.g. scan past the last summary and other + sections that won't be rewritten, like the build info. Return 0 on success, + -1 on error. */ static int -gcov_scan_summary_end (struct gcov_info *gi_ptr, - gcov_position_t *summary_end_pos_p) +gcov_scan_to_function_data (struct gcov_info *gi_ptr, + gcov_position_t *summary_end_pos_p) { gcov_unsigned_t tag, version, stamp; tag = gcov_read_unsigned (); @@ -493,8 +558,21 @@ gcov_scan_summary_end (struct gcov_info *gi_ptr, return -1; } + /* If there is a build info section, scan past it as well. */ + if (tag == GCOV_TAG_BUILD_INFO) + { + if (scan_build_info (gi_ptr) < 0) + return -1; + + *summary_end_pos_p = gcov_position (); + tag = gcov_read_unsigned (); + } + /* The next section should be the function counters. */ + gcc_assert (tag == GCOV_TAG_FUNCTION); + return 0; } +#endif /* __KERNEL__ */ /* This function merges counters in GI_PTR to an existing gcda file. Return 0 on success. @@ -514,6 +592,7 @@ gcov_exit_merge_gcda (struct gcov_info *gi_ptr, int error = 0; struct gcov_fn_buffer **fn_tail = &fn_buffer; struct gcov_summary_buffer **sum_tail = &sum_buffer; + int *zero_fixup_flags = NULL; length = gcov_read_unsigned (); if (!gcov_version (gi_ptr, length, gi_filename)) @@ -565,6 +644,31 @@ gcov_exit_merge_gcda (struct gcov_info *gi_ptr, next_summary:; } + if (tag == GCOV_TAG_BUILD_INFO) + { + if (scan_build_info (gi_ptr) < 0) + return -1; + + /* Since the stamps matched if we got here, this should be from + the same compilation and the build info strings should match. */ + tag = gcov_read_unsigned (); + } + + if (tag == GCOV_TAG_COMDAT_ZERO_FIXUP) + { + gcov_unsigned_t num_fns = 0; + length = gcov_read_unsigned (); + zero_fixup_flags = gcov_read_comdat_zero_fixup (length, &num_fns); + if (!zero_fixup_flags) + { + gcov_error ("profiling:%s:Error reading zero fixup flags\n", + gi_filename); + return -1; + } + + tag = gcov_read_unsigned (); + } + /* Merge execution counts for each function. */ for (f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions; f_ix++, tag = gcov_read_unsigned ()) @@ -598,6 +702,9 @@ gcov_exit_merge_gcda (struct gcov_info *gi_ptr, continue; } + if (zero_fixup_flags) + set_gcov_fn_fixed_up (zero_fixup_flags[f_ix]); + length = gcov_read_unsigned (); if (length != gfi_ptr->ident) goto read_mismatch; @@ -629,6 +736,7 @@ gcov_exit_merge_gcda (struct gcov_info *gi_ptr, if ((error = gcov_is_error ())) goto read_error; } + xfree (zero_fixup_flags); if (tag && tag != GCOV_TAG_MODULE_INFO) { @@ -646,6 +754,57 @@ read_error: return -1; } +#if !defined(__KERNEL__) +/* Write NUM_FNS ZERO_COUNTS fixup flags to a gcda file starting from its + current location. */ + +static void +gcov_write_comdat_zero_fixup (char *zero_counts, unsigned num_fns) +{ + unsigned f_ix; + gcov_unsigned_t len = GCOV_TAG_COMDAT_ZERO_FIXUP_LENGTH (num_fns); + gcov_unsigned_t bitvector = 0, b_ix = 0; + gcov_write_tag_length (GCOV_TAG_COMDAT_ZERO_FIXUP, len); + + gcov_write_unsigned (num_fns); + for (f_ix = 0; f_ix != num_fns; f_ix++) + { + if (zero_counts[f_ix]) + bitvector |= 1 << b_ix; + if (++b_ix == 32) + { + gcov_write_unsigned (bitvector); + b_ix = 0; + bitvector = 0; + } + } + if (b_ix > 0) + gcov_write_unsigned (bitvector); +} +#endif /* __KERNEL__ */ + +/* Write build_info strings from GI_PTR to a gcda file starting from its current + location. */ + +static void +gcov_write_build_info (struct gcov_info *gi_ptr) +{ + gcov_unsigned_t num = 0; + gcov_unsigned_t len = 1; + + if (!gi_ptr->build_info) + return; + + /* Count the number of strings, which is terminated with an empty string. */ + while (gi_ptr->build_info[num][0]) + num++; + + len += gcov_compute_string_array_len (gi_ptr->build_info, num); + gcov_write_tag_length (GCOV_TAG_BUILD_INFO, len); + gcov_write_unsigned (num); + gcov_write_string_array (gi_ptr->build_info, num); +} + /* Write counters in GI_PTR to a gcda file starting from its current location. */ @@ -676,7 +835,7 @@ gcov_write_func_counters (struct gcov_info *gi_ptr) if (gfi_ptr && gfi_ptr->key == gi_ptr) length = GCOV_TAG_FUNCTION_LENGTH; else - length = 0; + length = 0; } gcov_write_tag_length (GCOV_TAG_FUNCTION, length); @@ -704,8 +863,10 @@ gcov_write_func_counters (struct gcov_info *gi_ptr) gcov_write_counter (*c_ptr++); ci_ptr++; } +#if !defined(__KERNEL__) if (buffered) fn_buffer = free_fn_data (gi_ptr, fn_buffer, GCOV_COUNTERS); +#endif /* __KERNEL__ */ } gi_ptr->eof_pos = gcov_position (); @@ -748,10 +909,12 @@ gcov_exit_write_gcda (struct gcov_info *gi_ptr, { gcov_write_summary (GCOV_TAG_PROGRAM_SUMMARY, &sum_buffer->summary); next_sum_buffer = sum_buffer->next; - free (sum_buffer); + xfree (sum_buffer); sum_buffer = next_sum_buffer; } + gcov_write_build_info (gi_ptr); + /* Write the counters. */ gcov_write_func_counters (gi_ptr); } @@ -835,6 +998,8 @@ gcov_exit_merge_summary (const struct gcov_info *gi_ptr, struct gcov_summary *pr return 0; } +__attribute__((weak)) gcov_unsigned_t __gcov_lipo_sampling_period; + /* Sort N entries in VALUE_ARRAY in descending order. Each entry in VALUE_ARRAY has two values. The sorting is based on the second value. */ @@ -906,6 +1071,62 @@ gcov_sort_topn_counter_arrays (const struct gcov_info *gi_ptr) } } +/* Scaling LIPO sampled profile counters. */ +static void +gcov_scaling_lipo_counters (const struct gcov_info *gi_ptr) +{ + unsigned int i,j,k; + int f_ix; + const struct gcov_fn_info *gfi_ptr; + const struct gcov_ctr_info *ci_ptr; + + if (__gcov_lipo_sampling_period <= 1) + return; + + for (f_ix = 0; (unsigned)f_ix != gi_ptr->n_functions; f_ix++) + { + gfi_ptr = gi_ptr->functions[f_ix]; + ci_ptr = gfi_ptr->ctrs; + for (i = 0; i < GCOV_COUNTERS; i++) + { + if (!gcov_counter_active (gi_ptr, i)) + continue; + if (i == GCOV_COUNTER_ICALL_TOPNV) + { + for (j = 0; j < ci_ptr->num; j += GCOV_ICALL_TOPN_NCOUNTS) + for (k = 2; k < GCOV_ICALL_TOPN_NCOUNTS; k += 2) + ci_ptr->values[j+k] *= __gcov_lipo_sampling_period; + } + if (i == GCOV_COUNTER_DIRECT_CALL) + { + for (j = 0; j < ci_ptr->num; j += 2) + ci_ptr->values[j+1] *= __gcov_lipo_sampling_period; + } + ci_ptr++; + } + } +} + +/* Open a gcda file specified by GI_FILENAME. + Return -1 on error. Return 0 on success. */ + +static int +gcov_exit_open_gcda_file (struct gcov_info *gi_ptr, struct gcov_filename_aux *gf) +{ + int gcov_prefix_strip; + size_t prefix_length; + char *gi_filename_up; + + gcov_prefix_strip = gf->gcov_prefix_strip; + gi_filename_up = gf->gi_filename_up; + prefix_length = gf->prefix_length; + + gcov_strip_leading_dirs (prefix_length, gcov_prefix_strip, gi_ptr->filename, + gi_filename_up); + + return gcov_open_by_filename (gi_filename); +} + /* Dump the coverage counts for one gcov_info object. We merge with existing counts when possible, to avoid growing the .da files ad infinitum. We use this program's checksum to make sure we only accumulate whole program @@ -918,9 +1139,14 @@ gcov_exit_dump_gcov (struct gcov_info *gi_ptr, struct gcov_filename_aux *gf, gcov_unsigned_t crc32, struct gcov_summary *all_prg, struct gcov_summary *this_prg) { +/* We have to make the decl static as kernel has limited stack size. + If we put prg to stack, we will running into nasty stack overflow. */ +#if defined(__KERNEL__) + static +#endif struct gcov_summary prg; /* summary for this object over all program. */ int error; - gcov_unsigned_t tag; + gcov_unsigned_t tag = 0; gcov_position_t summary_pos = 0; gcov_position_t eof_pos = 0; @@ -928,12 +1154,15 @@ gcov_exit_dump_gcov (struct gcov_info *gi_ptr, struct gcov_filename_aux *gf, sum_buffer = 0; gcov_sort_topn_counter_arrays (gi_ptr); + gcov_scaling_lipo_counters (gi_ptr); error = gcov_exit_open_gcda_file (gi_ptr, gf); if (error == -1) return; +#if !defined(__KERNEL__) tag = gcov_read_unsigned (); +#endif if (tag) { /* Merge data from file. */ @@ -964,8 +1193,21 @@ gcov_exit_dump_gcov (struct gcov_info *gi_ptr, struct gcov_filename_aux *gf, /* fall through */ read_fatal:; +#if !defined(__KERNEL__) while (fn_buffer) fn_buffer = free_fn_data (gi_ptr, fn_buffer, GCOV_COUNTERS); +#else + + /* In LIPO mode, dump the primary module info. */ + if (gi_ptr->mod_info && gi_ptr->mod_info->is_primary) + { + /* Overwrite the zero word at the of the file. */ + gcov_seek (gi_ptr->eof_pos); + gcov_write_module_info (gi_ptr, 1); + /* Write the end marker */ + gcov_write_unsigned (0); + } +#endif if ((error = gcov_close ())) gcov_error (error < 0 ? @@ -974,6 +1216,7 @@ read_fatal:; gi_filename); } +#if !defined (__KERNEL__) /* Write imported files (auxiliary modules) for primary module GI_PTR into file GI_FILENAME. */ @@ -1009,7 +1252,7 @@ gcov_write_import_file (char *gi_filename, struct gcov_info *gi_ptr) fprintf (imports_file, "%s%s\n", imp_mods[i]->imp_mod->mod_info->da_filename, GCOV_DATA_SUFFIX); } - free (imp_mods); + xfree (imp_mods); } fclose (imports_file); } @@ -1020,9 +1263,24 @@ gcov_dump_module_info (struct gcov_filename_aux *gf) { struct gcov_info *gi_ptr; + unsigned max_module_id = 0; + for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next) + { + unsigned mod_id = gi_ptr->mod_info->ident; + if (max_module_id < mod_id) + max_module_id = mod_id; + } + char **zero_counts = (char **) xcalloc (max_module_id, sizeof (char *)); + for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next) + { + unsigned mod_id = gi_ptr->mod_info->ident; + zero_counts[mod_id-1] = (char *) xcalloc (gi_ptr->n_functions, + sizeof (char)); + } + /* Compute the module groups and record whether there were any counter fixups applied that require rewriting the counters. */ - int changed = __gcov_compute_module_groups (); + int changed = __gcov_compute_module_groups (zero_counts); /* Now write out module group info. */ for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next) @@ -1034,10 +1292,10 @@ gcov_dump_module_info (struct gcov_filename_aux *gf) if (changed) { - /* Scan file to find the end of the summary section, which is + /* Scan file to find the start of the function section, which is where we will start re-writing the counters. */ gcov_position_t summary_end_pos; - if (gcov_scan_summary_end (gi_ptr, &summary_end_pos) == -1) + if (gcov_scan_to_function_data (gi_ptr, &summary_end_pos) == -1) gcov_error ("profiling:%s:Error scanning summaries\n", gi_filename); else @@ -1045,8 +1303,15 @@ gcov_dump_module_info (struct gcov_filename_aux *gf) gcov_position_t eof_pos = gi_ptr->eof_pos; gcov_rewrite (); gcov_seek (summary_end_pos); + + unsigned mod_id = gi_ptr->mod_info->ident; + gcov_write_comdat_zero_fixup (zero_counts[mod_id-1], + gi_ptr->n_functions); + gcov_position_t zero_fixup_eof_pos = gcov_position (); + gcov_write_func_counters (gi_ptr); - gcc_assert (eof_pos == gi_ptr->eof_pos); + gcc_assert (eof_pos + (zero_fixup_eof_pos - summary_end_pos) + == gi_ptr->eof_pos); } } else @@ -1065,7 +1330,11 @@ gcov_dump_module_info (struct gcov_filename_aux *gf) "profiling:%s:Error writing\n", gi_filename); gcov_write_import_file (gi_filename, gi_ptr); + free (zero_counts[gi_ptr->mod_info->ident-1]); } + + free (zero_counts); + __gcov_finalize_dyn_callgraph (); } @@ -1102,7 +1371,8 @@ gcov_exit (void) /* The IS_PRIMARY field is overloaded to indicate if this module is FDO/LIPO. */ - dump_module_info |= gi_ptr->mod_info->is_primary; + if (gi_ptr->mod_info) + dump_module_info |= gi_ptr->mod_info->is_primary; } run_accounted = 1; @@ -1110,38 +1380,7 @@ gcov_exit (void) gcov_dump_module_info (&gf); if (gi_filename) - free (gi_filename); -} - -/* Reset all counters to zero. */ - -void -gcov_clear (void) -{ - const struct gcov_info *gi_ptr; - - for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next) - { - unsigned f_ix; - - for (f_ix = 0; f_ix < gi_ptr->n_functions; f_ix++) - { - unsigned t_ix; - const struct gcov_fn_info *gfi_ptr = gi_ptr->functions[f_ix]; - - if (!gfi_ptr || gfi_ptr->key != gi_ptr) - continue; - const struct gcov_ctr_info *ci_ptr = gfi_ptr->ctrs; - for (t_ix = 0; t_ix != GCOV_COUNTERS; t_ix++) - { - if (!gi_ptr->merge[t_ix]) - continue; - - memset (ci_ptr->values, 0, sizeof (gcov_type) * ci_ptr->num); - ci_ptr++; - } - } - } + xfree (gi_filename); } /* Add a new object file onto the bb chain. Invoked automatically @@ -1160,6 +1399,13 @@ __gcov_init (struct gcov_info *info) if (env_value_int >= 1) __gcov_sampling_period = env_value_int; } + env_value_str = getenv ("GCOV_LIPO_SAMPLING_PERIOD"); + if (env_value_str) + { + int env_value_int = atoi(env_value_str); + if (env_value_int >= 0) + __gcov_lipo_sampling_period = env_value_int; + } gcov_sampling_period_initialized = 1; } #endif @@ -1189,5 +1435,116 @@ __gcov_init (struct gcov_info *info) info->version = 0; } +#else /* __KERNEL__ */ + +static struct gcov_filename_aux gf; +static gcov_unsigned_t crc32; +static struct gcov_summary all_prg; +static struct gcov_summary this_prg; +void +gcov_kernel_dump_gcov_init (void) +{ + crc32 = gcov_exit_compute_summary (&this_prg); + allocate_filename_struct (&gf); + memset (&all_prg, 0, sizeof (all_prg)); +} + +void +gcov_kernel_dump_one_gcov(struct gcov_info *info) +{ + gcov_exit_dump_gcov (info, &gf, crc32, &all_prg, &this_prg); +} + +#endif /* __KERNEL__ */ + +/* Reset all counters to zero. */ + +void +gcov_clear (void) +{ + const struct gcov_info *gi_ptr; + + for (gi_ptr = __gcov_list; gi_ptr; gi_ptr = gi_ptr->next) + { + unsigned f_ix; + + for (f_ix = 0; f_ix < gi_ptr->n_functions; f_ix++) + { + unsigned t_ix; + const struct gcov_fn_info *gfi_ptr = gi_ptr->functions[f_ix]; + const struct gcov_ctr_info *ci_ptr; + + if (!gfi_ptr || gfi_ptr->key != gi_ptr) + continue; + ci_ptr = gfi_ptr->ctrs; + for (t_ix = 0; t_ix != GCOV_COUNTERS; t_ix++) + { + if (!gi_ptr->merge[t_ix]) + continue; + + memset (ci_ptr->values, 0, sizeof (gcov_type) * ci_ptr->num); + ci_ptr++; + } + } + } +} + +/* Write out MOD_INFO into the gcda file. IS_PRIMARY is a flag + indicating if the module is the primary module in the group. */ + +void +gcov_write_module_info (const struct gcov_info *mod_info, + unsigned is_primary) +{ + gcov_unsigned_t len = 0, filename_len = 0, src_filename_len = 0, i; + gcov_unsigned_t num_strings; + gcov_unsigned_t *aligned_fname; + struct gcov_module_info *module_info = mod_info->mod_info; + filename_len = (strlen (module_info->da_filename) + + sizeof (gcov_unsigned_t)) / sizeof (gcov_unsigned_t); + src_filename_len = (strlen (module_info->source_filename) + + sizeof (gcov_unsigned_t)) / sizeof (gcov_unsigned_t); + len = filename_len + src_filename_len; + len += 2; /* each name string is led by a length. */ + + num_strings = module_info->num_quote_paths + module_info->num_bracket_paths + + module_info->num_system_paths + + module_info->num_cpp_defines + module_info->num_cpp_includes + + module_info->num_cl_args; + len += gcov_compute_string_array_len (module_info->string_array, + num_strings); + + len += 11; /* 11 more fields */ + + gcov_write_tag_length (GCOV_TAG_MODULE_INFO, len); + gcov_write_unsigned (module_info->ident); + gcov_write_unsigned (is_primary); + gcov_write_unsigned (module_info->flags); + gcov_write_unsigned (module_info->lang); + gcov_write_unsigned (module_info->ggc_memory); + gcov_write_unsigned (module_info->num_quote_paths); + gcov_write_unsigned (module_info->num_bracket_paths); + gcov_write_unsigned (module_info->num_system_paths); + gcov_write_unsigned (module_info->num_cpp_defines); + gcov_write_unsigned (module_info->num_cpp_includes); + gcov_write_unsigned (module_info->num_cl_args); + + /* Now write the filenames */ + aligned_fname = (gcov_unsigned_t *) alloca ((filename_len + src_filename_len + 2) * + sizeof (gcov_unsigned_t)); + memset (aligned_fname, 0, + (filename_len + src_filename_len + 2) * sizeof (gcov_unsigned_t)); + aligned_fname[0] = filename_len; + strcpy ((char*) (aligned_fname + 1), module_info->da_filename); + aligned_fname[filename_len + 1] = src_filename_len; + strcpy ((char*) (aligned_fname + filename_len + 2), module_info->source_filename); + + for (i = 0; i < (filename_len + src_filename_len + 2); i++) + gcov_write_unsigned (aligned_fname[i]); + + /* Now write the string array. */ + gcov_write_string_array (module_info->string_array, num_strings); +} + #endif /* L_gcov */ #endif /* inhibit_libc */ diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-kernel.h b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-kernel.h new file mode 100644 index 0000000..b44af53 --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-kernel.h @@ -0,0 +1,121 @@ +/* Header file for libgcov-*.c. + Copyright (C) 1996-2014 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef GCC_LIBGCOV_KERNEL_H +#define GCC_LIBGCOV_KERNEL_H + +/* work around the poisoned malloc/calloc in system.h. */ +#ifndef xmalloc +#define xmalloc vmalloc +#endif +#ifndef xcalloc +#define xcalloc vcalloc +#endif +#ifndef xrealloc +#define xrealloc vrealloc +#endif +#ifndef xfree +#define xfree vfree +#endif +#ifndef alloca +#define alloca __builtin_alloca +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif + + /* Define MACROs to be used by kernel compilation. */ +# define L_gcov +# define L_gcov_interval_profiler +# define L_gcov_pow2_profiler +# define L_gcov_one_value_profiler +# define L_gcov_indirect_call_profiler_v2 +# define L_gcov_direct_call_profiler +# define L_gcov_indirect_call_profiler +# define L_gcov_indirect_call_topn_profiler +# define L_gcov_time_profiler +# define L_gcov_average_profiler +# define L_gcov_ior_profiler +# define L_gcov_merge_add +# define L_gcov_merge_single +# define L_gcov_merge_delta +# define L_gcov_merge_ior +# define L_gcov_merge_time_profile +# define L_gcov_merge_icall_topn +# define L_gcov_merge_dc + +# define IN_LIBGCOV 1 +# define IN_GCOV 0 +#define THREAD_PREFIX +#define GCOV_LINKAGE /* nothing */ +#define BITS_PER_UNIT 8 +#define LONG_LONG_TYPE_SIZE 64 +#define MEMMODEL_RELAXED 0 + +#define ENABLE_ASSERT_CHECKING 1 + +/* gcc_assert() prints out a warning if the check fails. It + will not abort. */ +#if ENABLE_ASSERT_CHECKING +# define gcc_assert(EXPR) \ + ((void)(!(EXPR) ? printk (KERN_WARNING \ + "GCOV assertion fails: func=%s line=%d\n", \ + __FUNCTION__, __LINE__), 0 : 0)) +#else +# define gcc_assert(EXPR) ((void)(0 && (EXPR))) +#endif + +/* In Linux kernel mode, a virtual file is used for file operations. */ +struct gcov_info; +typedef struct { + long size; /* size of buf */ + long count; /* element written into buf */ + struct gcov_info *info; + char *buf; +} gcov_kernel_vfile; + +#define _GCOV_FILE gcov_kernel_vfile + +/* Wrappers to the file operations. */ +#define _GCOV_fclose kernel_file_fclose +#define _GCOV_ftell kernel_file_ftell +#define _GCOV_fseek kernel_file_fseek +#define _GCOV_ftruncate kernel_file_ftruncate +#define _GCOV_fread kernel_file_fread +#define _GCOV_fwrite kernel_file_fwrite +#define _GCOV_fileno kernel_file_fileno + +/* Declarations for virtual files operations. */ +extern int kernel_file_fclose (gcov_kernel_vfile *); +extern long kernel_file_ftell (gcov_kernel_vfile *); +extern int kernel_file_fseek (gcov_kernel_vfile *, long, int); +extern int kernel_file_ftruncate (gcov_kernel_vfile *, off_t); +extern int kernel_file_fread (void *, size_t, size_t, + gcov_kernel_vfile *); +extern int kernel_file_fwrite (const void *, size_t, size_t, + gcov_kernel_vfile *); +extern int kernel_file_fileno (gcov_kernel_vfile *); + +#endif /* GCC_LIBGCOV_KERNEL_H */ diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-merge.c b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-merge.c new file mode 100644 index 0000000..997dab3 --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-merge.c @@ -0,0 +1,299 @@ +/* Routines required for instrumenting a program. */ +/* Compile this one with gcc. */ +/* Copyright (C) 1989-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgcov.h" + +#if defined(inhibit_libc) +/* If libc and its header files are not available, provide dummy functions. */ + +#ifdef L_gcov_merge_add +void __gcov_merge_add (gcov_type *counters __attribute__ ((unused)), + unsigned n_counters __attribute__ ((unused))) {} +#endif + +#ifdef L_gcov_merge_single +void __gcov_merge_single (gcov_type *counters __attribute__ ((unused)), + unsigned n_counters __attribute__ ((unused))) {} +#endif + +#ifdef L_gcov_merge_delta +void __gcov_merge_delta (gcov_type *counters __attribute__ ((unused)), + unsigned n_counters __attribute__ ((unused))) {} +#endif + +#else + +#ifdef L_gcov_merge_add +/* The profile merging function that just adds the counters. It is given + an array COUNTERS of N_COUNTERS old counters and it reads the same number + of counters from the gcov file. */ +void +__gcov_merge_add (gcov_type *counters, unsigned n_counters) +{ + for (; n_counters; counters++, n_counters--) + *counters += gcov_get_counter (); +} +#endif /* L_gcov_merge_add */ + +#ifdef L_gcov_merge_ior +/* The profile merging function that just adds the counters. It is given + an array COUNTERS of N_COUNTERS old counters and it reads the same number + of counters from the gcov file. */ +void +__gcov_merge_ior (gcov_type *counters, unsigned n_counters) +{ + for (; n_counters; counters++, n_counters--) + *counters |= gcov_get_counter_target (); +} +#endif + + +#ifdef L_gcov_merge_dc + +/* Returns 1 if the function global id GID is not valid. */ + +static int +__gcov_is_gid_insane (gcov_type gid) +{ + if (EXTRACT_MODULE_ID_FROM_GLOBAL_ID (gid) == 0 + || EXTRACT_FUNC_ID_FROM_GLOBAL_ID (gid) == 0) + return 1; + return 0; +} + +/* The profile merging function used for merging direct call counts + This function is given array COUNTERS of N_COUNTERS old counters and it + reads the same number of counters from the gcov file. */ + +void +__gcov_merge_dc (gcov_type *counters, unsigned n_counters) +{ + unsigned i; + + gcc_assert (!(n_counters % 2)); + for (i = 0; i < n_counters; i += 2) + { + gcov_type global_id = gcov_get_counter_target (); + gcov_type call_count = gcov_get_counter (); + + /* Note that global id counter may never have been set if no calls were + made from this call-site. */ + if (counters[i] && global_id) + { + /* TODO race condition requires us do the following correction. */ + if (__gcov_is_gid_insane (counters[i])) + counters[i] = global_id; + else if (__gcov_is_gid_insane (global_id)) + global_id = counters[i]; + +#if !defined(__KERNEL__) + /* In the case of inconsistency, use the src's target. */ + if (counters[i] != global_id) + fprintf (stderr, "Warning: Inconsistent call targets in" + " direct-call profile.\n"); +#endif + } + else if (global_id) + counters[i] = global_id; + + counters[i + 1] += call_count; + + /* Reset. */ + if (__gcov_is_gid_insane (counters[i])) + counters[i] = counters[i + 1] = 0; + + /* Assert that the invariant (global_id == 0) <==> (call_count == 0) + holds true after merging. */ + if (counters[i] == 0) + counters[i+1] = 0; + if (counters[i + 1] == 0) + counters[i] = 0; + } +} +#endif + + +#ifdef L_gcov_merge_icall_topn +/* The profile merging function used for merging indirect call counts + This function is given array COUNTERS of N_COUNTERS old counters and it + reads the same number of counters from the gcov file. */ + +void +__gcov_merge_icall_topn (gcov_type *counters, unsigned n_counters) +{ + unsigned i, j, k, m; + + gcc_assert (!(n_counters % GCOV_ICALL_TOPN_NCOUNTS)); + for (i = 0; i < n_counters; i += GCOV_ICALL_TOPN_NCOUNTS) + { + gcov_type *value_array = &counters[i + 1]; + unsigned tmp_size = 2 * (GCOV_ICALL_TOPN_NCOUNTS - 1); + gcov_type *tmp_array + = (gcov_type *) alloca (tmp_size * sizeof (gcov_type)); + + for (j = 0; j < tmp_size; j++) + tmp_array[j] = 0; + + for (j = 0; j < GCOV_ICALL_TOPN_NCOUNTS - 1; j += 2) + { + tmp_array[j] = value_array[j]; + tmp_array[j + 1] = value_array [j + 1]; + } + + /* Skip the number_of_eviction entry. */ + gcov_get_counter (); + for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2) + { + int found = 0; + gcov_type global_id = gcov_get_counter_target (); + gcov_type call_count = gcov_get_counter (); + for (m = 0; m < j; m += 2) + { + if (tmp_array[m] == global_id) + { + found = 1; + tmp_array[m + 1] += call_count; + break; + } + } + if (!found) + { + tmp_array[j] = global_id; + tmp_array[j + 1] = call_count; + j += 2; + } + } + /* Now sort the temp array */ + gcov_sort_n_vals (tmp_array, j); + + /* Now copy back the top half of the temp array */ + for (k = 0; k < GCOV_ICALL_TOPN_NCOUNTS - 1; k += 2) + { + value_array[k] = tmp_array[k]; + value_array[k + 1] = tmp_array[k + 1]; + } + } +} +#endif + + +#ifdef L_gcov_merge_time_profile +/* Time profiles are merged so that minimum from all valid (greater than zero) + is stored. There could be a fork that creates new counters. To have + the profile stable, we chosen to pick the smallest function visit time. */ +void +__gcov_merge_time_profile (gcov_type *counters, unsigned n_counters) +{ + unsigned int i; + gcov_type value; + + for (i = 0; i < n_counters; i++) + { + value = gcov_get_counter_target (); + + if (value && (!counters[i] || value < counters[i])) + counters[i] = value; + } +} +#endif /* L_gcov_merge_time_profile */ + +#ifdef L_gcov_merge_single +/* The profile merging function for choosing the most common value. + It is given an array COUNTERS of N_COUNTERS old counters and it + reads the same number of counters from the gcov file. The counters + are split into 3-tuples where the members of the tuple have + meanings: + + -- the stored candidate on the most common value of the measured entity + -- counter + -- total number of evaluations of the value */ +void +__gcov_merge_single (gcov_type *counters, unsigned n_counters) +{ + unsigned i, n_measures; + gcov_type value, counter, all; + + gcc_assert (!(n_counters % 3)); + n_measures = n_counters / 3; + for (i = 0; i < n_measures; i++, counters += 3) + { + value = gcov_get_counter_target (); + counter = gcov_get_counter (); + all = gcov_get_counter (); + + if (counters[0] == value) + counters[1] += counter; + else if (counter > counters[1]) + { + counters[0] = value; + counters[1] = counter - counters[1]; + } + else + counters[1] -= counter; + counters[2] += all; + } +} +#endif /* L_gcov_merge_single */ + +#ifdef L_gcov_merge_delta +/* The profile merging function for choosing the most common + difference between two consecutive evaluations of the value. It is + given an array COUNTERS of N_COUNTERS old counters and it reads the + same number of counters from the gcov file. The counters are split + into 4-tuples where the members of the tuple have meanings: + + -- the last value of the measured entity + -- the stored candidate on the most common difference + -- counter + -- total number of evaluations of the value */ +void +__gcov_merge_delta (gcov_type *counters, unsigned n_counters) +{ + unsigned i, n_measures; + gcov_type value, counter, all; + + gcc_assert (!(n_counters % 4)); + n_measures = n_counters / 4; + for (i = 0; i < n_measures; i++, counters += 4) + { + /* last = */ gcov_get_counter (); + value = gcov_get_counter_target (); + counter = gcov_get_counter (); + all = gcov_get_counter (); + + if (counters[1] == value) + counters[2] += counter; + else if (counter > counters[2]) + { + counters[1] = value; + counters[2] = counter - counters[2]; + } + else + counters[2] -= counter; + counters[3] += all; + } +} +#endif /* L_gcov_merge_delta */ +#endif /* inhibit_libc */ diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-profiler.c b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-profiler.c new file mode 100644 index 0000000..7552ada --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov-profiler.c @@ -0,0 +1,477 @@ +/* Routines required for instrumenting a program. */ +/* Compile this one with gcc. */ +/* Copyright (C) 1989-2014 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. + +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +<http://www.gnu.org/licenses/>. */ + +#include "libgcov.h" +#if !defined(inhibit_libc) + +#ifdef L_gcov_interval_profiler +/* If VALUE is in interval <START, START + STEPS - 1>, then increases the + corresponding counter in COUNTERS. If the VALUE is above or below + the interval, COUNTERS[STEPS] or COUNTERS[STEPS + 1] is increased + instead. */ + +void +__gcov_interval_profiler (gcov_type *counters, gcov_type value, + int start, unsigned steps) +{ + gcov_type delta = value - start; + if (delta < 0) + counters[steps + 1]++; + else if (delta >= steps) + counters[steps]++; + else + counters[delta]++; +} +#endif + +#ifdef L_gcov_pow2_profiler +/* If VALUE is a power of two, COUNTERS[1] is incremented. Otherwise + COUNTERS[0] is incremented. */ + +void +__gcov_pow2_profiler (gcov_type *counters, gcov_type value) +{ + if (value & (value - 1)) + counters[0]++; + else + counters[1]++; +} +#endif + +/* Tries to determine the most common value among its inputs. Checks if the + value stored in COUNTERS[0] matches VALUE. If this is the case, COUNTERS[1] + is incremented. If this is not the case and COUNTERS[1] is not zero, + COUNTERS[1] is decremented. Otherwise COUNTERS[1] is set to one and + VALUE is stored to COUNTERS[0]. This algorithm guarantees that if this + function is called more than 50% of the time with one value, this value + will be in COUNTERS[0] in the end. + + In any case, COUNTERS[2] is incremented. */ + +static inline void +__gcov_one_value_profiler_body (gcov_type *counters, gcov_type value) +{ + if (value == counters[0]) + counters[1]++; + else if (counters[1] == 0) + { + counters[1] = 1; + counters[0] = value; + } + else + counters[1]--; + counters[2]++; +} + +/* Atomic update version of __gcov_one_value_profile_body(). */ +static inline void +__gcov_one_value_profiler_body_atomic (gcov_type *counters, gcov_type value) +{ + if (value == counters[0]) + GCOV_TYPE_ATOMIC_FETCH_ADD_FN (&counters[1], 1, MEMMODEL_RELAXED); + else if (counters[1] == 0) + { + counters[1] = 1; + counters[0] = value; + } + else + GCOV_TYPE_ATOMIC_FETCH_ADD_FN (&counters[1], -1, MEMMODEL_RELAXED); + GCOV_TYPE_ATOMIC_FETCH_ADD_FN (&counters[2], 1, MEMMODEL_RELAXED); +} + + +#ifdef L_gcov_one_value_profiler +void +__gcov_one_value_profiler (gcov_type *counters, gcov_type value) +{ + __gcov_one_value_profiler_body (counters, value); +} + +void +__gcov_one_value_profiler_atomic (gcov_type *counters, gcov_type value) +{ + __gcov_one_value_profiler_body_atomic (counters, value); +} + + +#endif + +#ifdef L_gcov_indirect_call_profiler +/* This function exist only for workaround of binutils bug 14342. + Once this compatibility hack is obsolette, it can be removed. */ + +/* By default, the C++ compiler will use function addresses in the + vtable entries. Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero + tells the compiler to use function descriptors instead. The value + of this macro says how many words wide the descriptor is (normally 2), + but it may be dependent on target flags. Since we do not have access + to the target flags here we just check to see if it is set and use + that to set VTABLE_USES_DESCRIPTORS to 0 or 1. + + It is assumed that the address of a function descriptor may be treated + as a pointer to a function. */ + +#ifdef TARGET_VTABLE_USES_DESCRIPTORS +#define VTABLE_USES_DESCRIPTORS 1 +#else +#define VTABLE_USES_DESCRIPTORS 0 +#endif + +/* Tries to determine the most common value among its inputs. */ +void +__gcov_indirect_call_profiler (gcov_type* counter, gcov_type value, + void* cur_func, void* callee_func) +{ + /* If the C++ virtual tables contain function descriptors then one + function may have multiple descriptors and we need to dereference + the descriptors to see if they point to the same function. */ + if (cur_func == callee_func + || (VTABLE_USES_DESCRIPTORS && callee_func + && *(void **) cur_func == *(void **) callee_func)) + __gcov_one_value_profiler_body (counter, value); +} + + +/* Atomic update version of __gcov_indirect_call_profiler(). */ +void +__gcov_indirect_call_profiler_atomic (gcov_type* counter, gcov_type value, + void* cur_func, void* callee_func) +{ + if (cur_func == callee_func + || (VTABLE_USES_DESCRIPTORS && callee_func + && *(void **) cur_func == *(void **) callee_func)) + __gcov_one_value_profiler_body_atomic (counter, value); +} + + +#endif +#ifdef L_gcov_indirect_call_profiler_v2 + +/* These two variables are used to actually track caller and callee. Keep + them in TLS memory so races are not common (they are written to often). + The variables are set directly by GCC instrumented code, so declaration + here must match one in tree-profile.c */ + +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +void * __gcov_indirect_call_callee; +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +gcov_type * __gcov_indirect_call_counters; + +/* By default, the C++ compiler will use function addresses in the + vtable entries. Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero + tells the compiler to use function descriptors instead. The value + of this macro says how many words wide the descriptor is (normally 2), + but it may be dependent on target flags. Since we do not have access + to the target flags here we just check to see if it is set and use + that to set VTABLE_USES_DESCRIPTORS to 0 or 1. + + It is assumed that the address of a function descriptor may be treated + as a pointer to a function. */ + +#ifdef TARGET_VTABLE_USES_DESCRIPTORS +#define VTABLE_USES_DESCRIPTORS 1 +#else +#define VTABLE_USES_DESCRIPTORS 0 +#endif + +/* Tries to determine the most common value among its inputs. */ +void +__gcov_indirect_call_profiler_v2 (gcov_type value, void* cur_func) +{ + /* If the C++ virtual tables contain function descriptors then one + function may have multiple descriptors and we need to dereference + the descriptors to see if they point to the same function. */ + if (cur_func == __gcov_indirect_call_callee + || (VTABLE_USES_DESCRIPTORS && __gcov_indirect_call_callee + && *(void **) cur_func == *(void **) __gcov_indirect_call_callee)) + __gcov_one_value_profiler_body (__gcov_indirect_call_counters, value); +} + +void +__gcov_indirect_call_profiler_atomic_v2 (gcov_type value, void* cur_func) +{ + /* If the C++ virtual tables contain function descriptors then one + function may have multiple descriptors and we need to dereference + the descriptors to see if they point to the same function. */ + if (cur_func == __gcov_indirect_call_callee + || (VTABLE_USES_DESCRIPTORS && __gcov_indirect_call_callee + && *(void **) cur_func == *(void **) __gcov_indirect_call_callee)) + __gcov_one_value_profiler_body_atomic (__gcov_indirect_call_counters, value); +} + +#endif + +/* +#if defined(L_gcov_direct_call_profiler) || defined(L_gcov_indirect_call_topn_profiler) +__attribute__ ((weak)) gcov_unsigned_t __gcov_lipo_sampling_period; +#endif +*/ + +extern gcov_unsigned_t __gcov_lipo_sampling_period; + +#ifdef L_gcov_indirect_call_topn_profiler + +#include "gthr.h" + +#ifdef __GTHREAD_MUTEX_INIT +__thread int in_profiler; +ATTRIBUTE_HIDDEN __gthread_mutex_t __indir_topn_val_mx = __GTHREAD_MUTEX_INIT; +#endif + +/* Tries to keep track the most frequent N values in the counters where + N is specified by parameter TOPN_VAL. To track top N values, 2*N counter + entries are used. + counter[0] --- the accumative count of the number of times one entry in + in the counters gets evicted/replaced due to limited capacity. + When this value reaches a threshold, the bottom N values are + cleared. + counter[1] through counter[2*N] records the top 2*N values collected so far. + Each value is represented by two entries: count[2*i+1] is the ith value, and + count[2*i+2] is the number of times the value is seen. */ + +static void +__gcov_topn_value_profiler_body (gcov_type *counters, gcov_type value, + gcov_unsigned_t topn_val) +{ + unsigned i, found = 0, have_zero_count = 0; + + gcov_type *entry; + gcov_type *lfu_entry = &counters[1]; + gcov_type *value_array = &counters[1]; + gcov_type *num_eviction = &counters[0]; + + /* There are 2*topn_val values tracked, each value takes two slots in the + counter array */ +#ifdef __GTHREAD_MUTEX_INIT + /* If this is reentry, return. */ + if (in_profiler == 1) + return; + + in_profiler = 1; + __gthread_mutex_lock (&__indir_topn_val_mx); +#endif + for (i = 0; i < topn_val << 2; i += 2) + { + entry = &value_array[i]; + if (entry[0] == value) + { + entry[1]++ ; + found = 1; + break; + } + else if (entry[1] == 0) + { + lfu_entry = entry; + have_zero_count = 1; + } + else if (entry[1] < lfu_entry[1]) + lfu_entry = entry; + } + + if (found) + { + in_profiler = 0; +#ifdef __GTHREAD_MUTEX_INIT + __gthread_mutex_unlock (&__indir_topn_val_mx); +#endif + return; + } + + /* lfu_entry is either an empty entry or an entry + with lowest count, which will be evicted. */ + lfu_entry[0] = value; + lfu_entry[1] = 1; + +#define GCOV_ICALL_COUNTER_CLEAR_THRESHOLD 3000 + + /* Too many evictions -- time to clear bottom entries to + avoid hot values bumping each other out. */ + if (!have_zero_count + && ++*num_eviction >= GCOV_ICALL_COUNTER_CLEAR_THRESHOLD) + { + unsigned i, j; + gcov_type **p; + gcov_type **tmp_cnts + = (gcov_type **)alloca (topn_val * sizeof(gcov_type *)); + + *num_eviction = 0; + + /* Find the largest topn_val values from the group of + 2*topn_val values and put the addresses into tmp_cnts. */ + for (i = 0; i < topn_val; i++) + tmp_cnts[i] = &value_array[i * 2 + 1]; + + for (i = topn_val * 2; i < topn_val << 2; i += 2) + { + p = &tmp_cnts[0]; + for (j = 1; j < topn_val; j++) + if (*tmp_cnts[j] > **p) + p = &tmp_cnts[j]; + if (value_array[i + 1] < **p) + *p = &value_array[i + 1]; + } + + /* Zero out low value entries. */ + for (i = 0; i < topn_val; i++) + { + *tmp_cnts[i] = 0; + *(tmp_cnts[i] - 1) = 0; + } + } + +#ifdef __GTHREAD_MUTEX_INIT + in_profiler = 0; + __gthread_mutex_unlock (&__indir_topn_val_mx); +#endif +} + +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +gcov_type *__gcov_indirect_call_topn_counters ATTRIBUTE_HIDDEN; + +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +void *__gcov_indirect_call_topn_callee ATTRIBUTE_HIDDEN; + +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +gcov_unsigned_t __gcov_indirect_call_sampling_counter ATTRIBUTE_HIDDEN; + +#ifdef TARGET_VTABLE_USES_DESCRIPTORS +#define VTABLE_USES_DESCRIPTORS 1 +#else +#define VTABLE_USES_DESCRIPTORS 0 +#endif +void +__gcov_indirect_call_topn_profiler (void *cur_func, + void *cur_module_gcov_info, + gcov_unsigned_t cur_func_id) +{ + void *callee_func = __gcov_indirect_call_topn_callee; + gcov_type *counter = __gcov_indirect_call_topn_counters; + /* If the C++ virtual tables contain function descriptors then one + function may have multiple descriptors and we need to dereference + the descriptors to see if they point to the same function. */ + if (cur_func == callee_func + || (VTABLE_USES_DESCRIPTORS && callee_func + && *(void **) cur_func == *(void **) callee_func)) + { + if (++__gcov_indirect_call_sampling_counter >= __gcov_lipo_sampling_period) + { + __gcov_indirect_call_sampling_counter = 0; + gcov_type global_id + = ((struct gcov_info *) cur_module_gcov_info)->mod_info->ident; + global_id = GEN_FUNC_GLOBAL_ID (global_id, cur_func_id); + __gcov_topn_value_profiler_body (counter, global_id, GCOV_ICALL_TOPN_VAL); + } + __gcov_indirect_call_topn_callee = 0; + } +} + +#endif + +#ifdef L_gcov_direct_call_profiler +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +gcov_type *__gcov_direct_call_counters ATTRIBUTE_HIDDEN; +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +void *__gcov_direct_call_callee ATTRIBUTE_HIDDEN; +#if defined(HAVE_CC_TLS) && !defined (USE_EMUTLS) +__thread +#endif +gcov_unsigned_t __gcov_direct_call_sampling_counter ATTRIBUTE_HIDDEN; + +/* Direct call profiler. */ + +void +__gcov_direct_call_profiler (void *cur_func, + void *cur_module_gcov_info, + gcov_unsigned_t cur_func_id) +{ + if (cur_func == __gcov_direct_call_callee) + { + if (++__gcov_direct_call_sampling_counter >= __gcov_lipo_sampling_period) + { + __gcov_direct_call_sampling_counter = 0; + gcov_type global_id + = ((struct gcov_info *) cur_module_gcov_info)->mod_info->ident; + global_id = GEN_FUNC_GLOBAL_ID (global_id, cur_func_id); + __gcov_direct_call_counters[0] = global_id; + __gcov_direct_call_counters[1]++; + } + __gcov_direct_call_callee = 0; + } +} +#endif + + +#ifdef L_gcov_time_profiler + +/* Counter for first visit of each function. */ +static gcov_type function_counter; + +/* Sets corresponding COUNTERS if there is no value. */ + +void +__gcov_time_profiler (gcov_type* counters) +{ + if (!counters[0]) + counters[0] = ++function_counter; +} +#endif + +#ifdef L_gcov_average_profiler +/* Increase corresponding COUNTER by VALUE. FIXME: Perhaps we want + to saturate up. */ + +void +__gcov_average_profiler (gcov_type *counters, gcov_type value) +{ + counters[0] += value; + counters[1] ++; +} +#endif + +#ifdef L_gcov_ior_profiler +/* Bitwise-OR VALUE into COUNTER. */ + +void +__gcov_ior_profiler (gcov_type *counters, gcov_type value) +{ + *counters |= value; +} +#endif + +#endif /* inhibit_libc */ diff --git a/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov.h b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov.h new file mode 100644 index 0000000..c1ebe6e --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/gcov-src/libgcov.h @@ -0,0 +1,421 @@ +/* Header file for libgcov-*.c. + Copyright (C) 1996-2014 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef GCC_LIBGCOV_H +#define GCC_LIBGCOV_H + +#ifndef __KERNEL__ +/* work around the poisoned malloc/calloc in system.h. */ +#ifndef xmalloc +#define xmalloc malloc +#endif +#ifndef xcalloc +#define xcalloc calloc +#endif +#ifndef xrealloc +#define xrealloc realloc +#endif +#ifndef xfree +#define xfree free +#endif +#else /* __KERNEL__ */ +#include "libgcov-kernel.h" +#endif /* __KERNEL__ */ + +#ifndef IN_GCOV_TOOL +/* About the target. */ +/* This path will be used by libgcov runtime. */ + +#ifndef __KERNEL__ +#include "tconfig.h" +#include "tsystem.h" +#include "coretypes.h" +#include "tm.h" +#include "libgcc_tm.h" +#endif /* __KERNEL__ */ + +#undef FUNC_ID_WIDTH +#undef FUNC_ID_MASK + +#if BITS_PER_UNIT == 8 +typedef unsigned gcov_unsigned_t __attribute__ ((mode (SI))); +typedef unsigned gcov_position_t __attribute__ ((mode (SI))); +#if LONG_LONG_TYPE_SIZE > 32 +typedef signed gcov_type __attribute__ ((mode (DI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (DI))); +#define FUNC_ID_WIDTH 32 +#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1) +#else +typedef signed gcov_type __attribute__ ((mode (SI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (SI))); +#define FUNC_ID_WIDTH 16 +#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1) +#endif +#else /* BITS_PER_UNIT != 8 */ +#if BITS_PER_UNIT == 16 +typedef unsigned gcov_unsigned_t __attribute__ ((mode (HI))); +typedef unsigned gcov_position_t __attribute__ ((mode (HI))); +#if LONG_LONG_TYPE_SIZE > 32 +typedef signed gcov_type __attribute__ ((mode (SI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (SI))); +#define FUNC_ID_WIDTH 32 +#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1) +#else +typedef signed gcov_type __attribute__ ((mode (HI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (HI))); +#define FUNC_ID_WIDTH 16 +#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1) +#endif +#else /* BITS_PER_UNIT != 16 */ +typedef unsigned gcov_unsigned_t __attribute__ ((mode (QI))); +typedef unsigned gcov_position_t __attribute__ ((mode (QI))); +#if LONG_LONG_TYPE_SIZE > 32 +typedef signed gcov_type __attribute__ ((mode (HI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (HI))); +#define FUNC_ID_WIDTH 32 +#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1) +#else +typedef signed gcov_type __attribute__ ((mode (QI))); +typedef unsigned gcov_type_unsigned __attribute__ ((mode (QI))); +#define FUNC_ID_WIDTH 16 +#define FUNC_ID_MASK ((1 << FUNC_ID_WIDTH) - 1) +#endif +#endif /* BITS_PER_UNIT == 16 */ +#endif /* BITS_PER_UNIT == 8 */ + +#if LONG_LONG_TYPE_SIZE > 32 +#define GCOV_TYPE_ATOMIC_FETCH_ADD_FN __atomic_fetch_add_8 +#define GCOV_TYPE_ATOMIC_FETCH_ADD BUILT_IN_ATOMIC_FETCH_ADD_8 +#else +#define GCOV_TYPE_ATOMIC_FETCH_ADD_FN __atomic_fetch_add_4 +#define GCOV_TYPE_ATOMIC_FETCH_ADD BUILT_IN_ATOMIC_FETCH_ADD_4 +#endif + +#if defined (TARGET_POSIX_IO) +#define GCOV_LOCKED 1 +#else +#define GCOV_LOCKED 0 +#endif + +#else /* IN_GCOV_TOOL */ +/* About the host. */ +/* This path will be compiled for the host and linked into + gcov-tool binary. */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "tm.h" + +typedef unsigned gcov_unsigned_t; +typedef unsigned gcov_position_t; +/* gcov_type is typedef'd elsewhere for the compiler */ +#if defined (HOST_HAS_F_SETLKW) +#define GCOV_LOCKED 1 +#else +#define GCOV_LOCKED 0 +#endif + +#define FUNC_ID_WIDTH 32 +#define FUNC_ID_MASK ((1ll << FUNC_ID_WIDTH) - 1) + +/* Some Macros specific to gcov-tool. */ + +#define L_gcov 1 +#define L_gcov_merge_add 1 +#define L_gcov_merge_single 1 +#define L_gcov_merge_delta 1 +#define L_gcov_merge_ior 1 +#define L_gcov_merge_time_profile 1 +#define L_gcov_merge_icall_topn 1 +#define L_gcov_merge_dc 1 + +/* Make certian internal functions/variables in libgcov available for + gcov-tool access. */ +#define GCOV_TOOL_LINKAGE + +extern gcov_type gcov_read_counter_mem (); +extern unsigned gcov_get_merge_weight (); + +#endif /* !IN_GCOV_TOOL */ + +#undef EXTRACT_MODULE_ID_FROM_GLOBAL_ID +#undef EXTRACT_FUNC_ID_FROM_GLOBAL_ID +#undef GEN_FUNC_GLOBAL_ID +#define EXTRACT_MODULE_ID_FROM_GLOBAL_ID(gid) \ + (gcov_unsigned_t)(((gid) >> FUNC_ID_WIDTH) & FUNC_ID_MASK) +#define EXTRACT_FUNC_ID_FROM_GLOBAL_ID(gid) \ + (gcov_unsigned_t)((gid) & FUNC_ID_MASK) +#define GEN_FUNC_GLOBAL_ID(m,f) ((((gcov_type) (m)) << FUNC_ID_WIDTH) | (f)) + +#if defined(inhibit_libc) +#define IN_LIBGCOV (-1) +#else +#define IN_LIBGCOV 1 +#if defined(L_gcov) +#define GCOV_LINKAGE /* nothing */ +#endif +#endif + +/* In libgcov we need these functions to be extern, so prefix them with + __gcov. In libgcov they must also be hidden so that the instance in + the executable is not also used in a DSO. */ +#define gcov_var __gcov_var +#define gcov_open __gcov_open +#define gcov_close __gcov_close +#define gcov_write_tag_length __gcov_write_tag_length +#define gcov_position __gcov_position +#define gcov_seek __gcov_seek +#define gcov_rewrite __gcov_rewrite +#define gcov_truncate __gcov_truncate +#define gcov_is_error __gcov_is_error +#define gcov_write_unsigned __gcov_write_unsigned +#define gcov_write_counter __gcov_write_counter +#define gcov_write_summary __gcov_write_summary +#define gcov_write_module_info __gcov_write_module_info +#define gcov_read_unsigned __gcov_read_unsigned +#define gcov_read_counter __gcov_read_counter +#define gcov_read_summary __gcov_read_summary +#define gcov_read_buildinfo __gcov_read_buildinfo +#define gcov_read_module_info __gcov_read_module_info +#define gcov_sort_n_vals __gcov_sort_n_vals + +/* Poison these, so they don't accidentally slip in. */ +#pragma GCC poison gcov_write_string gcov_write_tag gcov_write_length +#pragma GCC poison gcov_time gcov_magic + +#ifdef HAVE_GAS_HIDDEN +#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) +#else +#define ATTRIBUTE_HIDDEN +#endif + +#include "gcov-io.h" + +/* Structures embedded in coveraged program. The structures generated + by write_profile must match these. */ +/* Information about counters for a single function. */ +struct gcov_ctr_info +{ + gcov_unsigned_t num; /* number of counters. */ + gcov_type *values; /* their values. */ +}; + +/* Information about a single function. This uses the trailing array + idiom. The number of counters is determined from the merge pointer + array in gcov_info. The key is used to detect which of a set of + comdat functions was selected -- it points to the gcov_info object + of the object file containing the selected comdat function. */ + +struct gcov_fn_info +{ + const struct gcov_info *key; /* comdat key */ + gcov_unsigned_t ident; /* unique ident of function */ + gcov_unsigned_t lineno_checksum; /* function lineo_checksum */ + gcov_unsigned_t cfg_checksum; /* function cfg checksum */ + struct gcov_ctr_info ctrs[1]; /* instrumented counters */ +}; + +/* Type of function used to merge counters. */ +typedef void (*gcov_merge_fn) (gcov_type *, gcov_unsigned_t); + +/* Information about a single object file. */ +struct gcov_info +{ + gcov_unsigned_t version; /* expected version number */ + struct gcov_module_info *mod_info; /* addtional module info. */ + struct gcov_info *next; /* link to next, used by libgcov */ + + gcov_unsigned_t stamp; /* uniquifying time stamp */ + const char *filename; /* output file name */ + gcov_unsigned_t eof_pos; /* end position of profile data */ + gcov_merge_fn merge[GCOV_COUNTERS]; /* merge functions (null for + unused) */ + + unsigned n_functions; /* number of functions */ + +#if !defined (IN_GCOV_TOOL) && !defined (__KERNEL__) + const struct gcov_fn_info *const *functions; /* pointer to pointers + to function information */ +#elif defined (IN_GCOV_TOOL) + const struct gcov_fn_info **functions; +#else + struct gcov_fn_info **functions; +#endif /* !IN_GCOV_TOOL */ + char **build_info; /* strings to include in BUILD_INFO + section of gcda file. */ +}; + +/* Information about a single imported module. */ +struct dyn_imp_mod +{ + const struct gcov_info *imp_mod; + double weight; +}; + +/* Register a new object file module. */ +extern void __gcov_init (struct gcov_info *) ATTRIBUTE_HIDDEN; + +/* Set sampling rate to RATE. */ +extern void __gcov_set_sampling_rate (unsigned int rate); + +/* Called before fork, to avoid double counting. */ +extern void __gcov_flush (void) ATTRIBUTE_HIDDEN; + +/* Function to reset all counters to 0. */ +extern void __gcov_reset (void); +/* Function to enable early write of profile information so far. + __gcov_dump is also used by __gcov_dump_all. The latter + depends on __GCOV_DUMP to have hidden or protected visibility + so that each library has its own copy of the registered dumper. */ +extern void __gcov_dump (void) ATTRIBUTE_HIDDEN; + +/* Call __gcov_dump registered from each shared library. + This function must have default visibility. */ +void __gcov_dump_all (void); + +/* The merge function that just sums the counters. */ +extern void __gcov_merge_add (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The merge function to choose the most common value. */ +extern void __gcov_merge_single (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The merge function to choose the most common difference between + consecutive values. */ +extern void __gcov_merge_delta (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The merge function that just ors the counters together. */ +extern void __gcov_merge_ior (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The merge function used for direct call counters. */ +extern void __gcov_merge_dc (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The merge function used for indirect call counters. */ +extern void __gcov_merge_icall_topn (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +extern void __gcov_merge_time_profile (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; + +/* The profiler functions. */ +extern void __gcov_interval_profiler (gcov_type *, gcov_type, int, unsigned); +extern void __gcov_pow2_profiler (gcov_type *, gcov_type); +extern void __gcov_one_value_profiler (gcov_type *, gcov_type); +extern void __gcov_indirect_call_profiler (gcov_type*, gcov_type, + void*, void*); +extern void __gcov_indirect_call_profiler_v2 (gcov_type, void *); +extern void __gcov_indirect_call_topn_profiler (void *, void *, gcov_unsigned_t) ATTRIBUTE_HIDDEN; +extern void __gcov_direct_call_profiler (void *, void *, gcov_unsigned_t) ATTRIBUTE_HIDDEN; +extern void __gcov_average_profiler (gcov_type *, gcov_type); +extern void __gcov_ior_profiler (gcov_type *, gcov_type); +extern void __gcov_sort_n_vals (gcov_type *value_array, int n); +extern void __gcov_time_profiler (gcov_type *); + +#ifndef inhibit_libc +/* The wrappers around some library functions.. */ +extern pid_t __gcov_fork (void) ATTRIBUTE_HIDDEN; +extern int __gcov_execl (const char *, char *, ...) ATTRIBUTE_HIDDEN; +extern int __gcov_execlp (const char *, char *, ...) ATTRIBUTE_HIDDEN; +extern int __gcov_execle (const char *, char *, ...) ATTRIBUTE_HIDDEN; +extern int __gcov_execv (const char *, char *const []) ATTRIBUTE_HIDDEN; +extern int __gcov_execvp (const char *, char *const []) ATTRIBUTE_HIDDEN; +extern int __gcov_execve (const char *, char *const [], char *const []) + ATTRIBUTE_HIDDEN; + + +/* Functions that only available in libgcov. */ +GCOV_LINKAGE int gcov_open (const char */*name*/) ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_write_counter (gcov_type) ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_write_tag_length (gcov_unsigned_t, gcov_unsigned_t) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_write_summary (gcov_unsigned_t /*tag*/, + const struct gcov_summary *) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_seek (gcov_position_t /*position*/) ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_truncate (void) ATTRIBUTE_HIDDEN; +void gcov_write_module_info (const struct gcov_info *, unsigned) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE void gcov_write_module_infos (struct gcov_info *mod_info) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE const struct dyn_imp_mod ** +gcov_get_sorted_import_module_array (struct gcov_info *mod_info, unsigned *len) + ATTRIBUTE_HIDDEN; +GCOV_LINKAGE inline void gcov_rewrite (void); + +extern void set_gcov_fn_fixed_up (int fixed_up); +extern int get_gcov_fn_fixed_up (void); + +/* "Counts" stored in gcda files can be a real counter value, or + an target address. When differentiate these two types because + when manipulating counts, we should only change real counter values, + rather target addresses. */ + +static inline gcov_type +gcov_get_counter (void) +{ +#ifndef IN_GCOV_TOOL + /* This version is for reading count values in libgcov runtime: + we read from gcda files. */ + + if (get_gcov_fn_fixed_up ()) + { + gcov_read_counter (); + return 0; + } + else + return gcov_read_counter (); +#else + /* This version is for gcov-tool. We read the value from memory and + multiply it by the merge weight. */ + + return gcov_read_counter_mem () * gcov_get_merge_weight (); +#endif +} + +/* Similar function as gcov_get_counter(), but handles target address + counters. */ + +static inline gcov_type +gcov_get_counter_target (void) +{ +#ifndef IN_GCOV_TOOL + /* This version is for reading count target values in libgcov runtime: + we read from gcda files. */ + + if (get_gcov_fn_fixed_up ()) + { + gcov_read_counter (); + return 0; + } + else + return gcov_read_counter (); +#else + /* This version is for gcov-tool. We read the value from memory and we do NOT + multiply it by the merge weight. */ + + return gcov_read_counter_mem (); +#endif +} + +#endif /* !inhibit_libc */ + +#endif /* GCC_LIBGCOV_H */ diff --git a/lib/gcc/mips64el-linux-android/4.9/include-fixed/arpa/nameser_compat.h b/lib/gcc/mips64el-linux-android/4.9/include-fixed/arpa/nameser_compat.h index 5ff162d..942ad56 100644 --- a/lib/gcc/mips64el-linux-android/4.9/include-fixed/arpa/nameser_compat.h +++ b/lib/gcc/mips64el-linux-android/4.9/include-fixed/arpa/nameser_compat.h @@ -2,7 +2,7 @@ It has been auto-edited by fixincludes from: - "/tmp/ndk-User/build/toolchain/prefix/sysroot/usr/include/arpa/nameser_compat.h" + "/tmp/02f2dcbb251f57396fb4c7b06502384e/sysroot/usr/include/arpa/nameser_compat.h" This had to be done to correct non-standard usages in the original, manufacturer supplied header file. */ diff --git a/lib/gcc/mips64el-linux-android/4.9/include-fixed/linux/a.out.h b/lib/gcc/mips64el-linux-android/4.9/include-fixed/linux/a.out.h new file mode 100644 index 0000000..046a9fe --- /dev/null +++ b/lib/gcc/mips64el-linux-android/4.9/include-fixed/linux/a.out.h @@ -0,0 +1,235 @@ +/* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "/tmp/02f2dcbb251f57396fb4c7b06502384e/sysroot/usr/include/linux/a.out.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + *** To edit the content of this header, modify the corresponding + *** source file (e.g. under external/kernel-headers/original/) then + *** run bionic/libc/kernel/tools/update_all.py + *** + *** Any manual change here will be lost the next time this script will + *** be run. You've been warned! + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _UAPI__A_OUT_GNU_H__ +#define _UAPI__A_OUT_GNU_H__ +#define __GNU_EXEC_MACROS__ +#ifndef __STRUCT_EXEC_OVERRIDE__ +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#include <asm/a.out.h> +#endif +#ifndef __ASSEMBLY__ +enum machine_type { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifdef M_OLDSUN2 + M__OLDSUN2 = M_OLDSUN2, +#else + M_OLDSUN2 = 0, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifdef M_68010 + M__68010 = M_68010, +#else +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + M_68010 = 1, +#endif +#ifdef M_68020 + M__68020 = M_68020, +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else + M_68020 = 2, +#endif +#ifdef M_SPARC +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + M__SPARC = M_SPARC, +#else + M_SPARC = 3, +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + M_386 = 100, + M_MIPS1 = 151, + M_MIPS2 = 152 +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_MAGIC +#define N_MAGIC(exec) ((exec).a_info & 0xffff) +#endif +#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) +#define N_SET_INFO(exec, magic, type, flags) ((exec).a_info = ((magic) & 0xffff) | (((int)(type) & 0xff) << 16) | (((flags) & 0xff) << 24)) +#define N_SET_MAGIC(exec, magic) ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff))) +#define N_SET_MACHTYPE(exec, machtype) ((exec).a_info = ((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16)) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_SET_FLAGS(exec, flags) ((exec).a_info = ((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24)) +#define OMAGIC 0407 +#define NMAGIC 0410 +#define ZMAGIC 0413 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define QMAGIC 0314 +#define CMAGIC 0421 +#ifndef N_BADMAG +#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC && N_MAGIC(x) != ZMAGIC && N_MAGIC(x) != QMAGIC) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#define _N_HDROFF(x) (1024 - sizeof (struct exec)) +#ifndef N_TXTOFF +#define N_TXTOFF(x) (N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : (N_MAGIC(x) == QMAGIC ? 0 : sizeof (struct exec))) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef N_DATOFF +#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_TRELOFF +#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) +#endif +#ifndef N_DRELOFF +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_DRELOFF(x) (N_TRELOFF(x) + N_TRSIZE(x)) +#endif +#ifndef N_SYMOFF +#define N_SYMOFF(x) (N_DRELOFF(x) + N_DRSIZE(x)) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef N_STROFF +#define N_STROFF(x) (N_SYMOFF(x) + N_SYMSIZE(x)) +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_TXTADDR +#define N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0) +#endif +#if defined(vax) || defined(hp300) || defined(pyr) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define SEGMENT_SIZE page_size +#endif +#ifdef sony +#define SEGMENT_SIZE 0x2000 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifdef is68k +#define SEGMENT_SIZE 0x20000 +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#if defined(m68k) && defined(PORTAR) +#define PAGE_SIZE 0x400 +#define SEGMENT_SIZE PAGE_SIZE +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifdef __linux__ +#include <unistd.h> +#if defined(__i386__) || defined(__mc68000__) +#define SEGMENT_SIZE 1024 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else +#ifndef SEGMENT_SIZE +#define SEGMENT_SIZE getpagesize() +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif +#define _N_SEGMENT_ROUND(x) ALIGN(x, SEGMENT_SIZE) +#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_DATADDR +#define N_DATADDR(x) (N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) : (_N_SEGMENT_ROUND (_N_TXTENDADDR(x)))) +#endif +#ifndef N_BSSADDR +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) +#endif +#ifndef N_NLIST_DECLARED +struct nlist { +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + union { + char *n_name; + struct nlist *n_next; + long n_strx; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + } n_un; + unsigned char n_type; + char n_other; + short n_desc; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned long n_value; +}; +#endif +#ifndef N_UNDF +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_UNDF 0 +#endif +#ifndef N_ABS +#define N_ABS 2 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef N_TEXT +#define N_TEXT 4 +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_DATA +#define N_DATA 6 +#endif +#ifndef N_BSS +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_BSS 8 +#endif +#ifndef N_FN +#define N_FN 15 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#ifndef N_EXT +#define N_EXT 1 +#endif +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_TYPE +#define N_TYPE 036 +#endif +#ifndef N_STAB +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_STAB 0340 +#endif +#define N_INDR 0xa +#define N_SETA 0x14 +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#define N_SETT 0x16 +#define N_SETD 0x18 +#define N_SETB 0x1A +#define N_SETV 0x1C +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifndef N_RELOCATION_INFO_DECLARED +struct relocation_info +{ + int r_address; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ + unsigned int r_symbolnum:24; + unsigned int r_pcrel:1; + unsigned int r_length:2; + unsigned int r_extern:1; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#ifdef NS32K + unsigned r_bsr:1; + unsigned r_disp:1; + unsigned r_pad:2; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#else + unsigned int r_pad:4; +#endif +}; +/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ +#endif +#endif +#endif diff --git a/lib/gcc/mips64el-linux-android/4.9/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/libgcc.a Binary files differindex b19ec60..c81ceb9 100644 --- a/lib/gcc/mips64el-linux-android/4.9/libgcc.a +++ b/lib/gcc/mips64el-linux-android/4.9/libgcc.a diff --git a/lib/gcc/mips64el-linux-android/4.9/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/libgcov.a Binary files differindex 8b2a02d..dc3f175 100644 --- a/lib/gcc/mips64el-linux-android/4.9/libgcov.a +++ b/lib/gcc/mips64el-linux-android/4.9/libgcov.a diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o Binary files differdeleted file mode 100644 index 9903e47..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbegin.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o Binary files differdeleted file mode 100644 index 5cbd675..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginS.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o Binary files differdeleted file mode 100644 index 9903e47..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtbeginT.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtend.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtend.o Binary files differdeleted file mode 100644 index 51c6538..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtend.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtendS.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtendS.o Binary files differdeleted file mode 100644 index 51c6538..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtendS.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtfastmath.o b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtfastmath.o Binary files differdeleted file mode 100644 index 5c2facb..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/crtfastmath.o +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a Binary files differdeleted file mode 100644 index 821595a..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcc.a +++ /dev/null diff --git a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a b/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a Binary files differdeleted file mode 100644 index 1bc5f39..0000000 --- a/lib/gcc/mips64el-linux-android/4.9/mips64-r2/libgcov.a +++ /dev/null diff --git a/lib/libmips64el-unknown-linux-android-sim.a b/lib/libmips64el-unknown-linux-android-sim.a Binary files differdeleted file mode 100644 index 7abda74..0000000 --- a/lib/libmips64el-unknown-linux-android-sim.a +++ /dev/null diff --git a/libexec/gcc/mips64el-linux-android/4.9/cc1 b/libexec/gcc/mips64el-linux-android/4.9/cc1 Binary files differindex d71b533..6f7570b 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/cc1 +++ b/libexec/gcc/mips64el-linux-android/4.9/cc1 diff --git a/libexec/gcc/mips64el-linux-android/4.9/cc1plus b/libexec/gcc/mips64el-linux-android/4.9/cc1plus Binary files differindex 7528fa7..868423c 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/cc1plus +++ b/libexec/gcc/mips64el-linux-android/4.9/cc1plus diff --git a/libexec/gcc/mips64el-linux-android/4.9/collect2 b/libexec/gcc/mips64el-linux-android/4.9/collect2 Binary files differindex 3010f58..d835db4 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/collect2 +++ b/libexec/gcc/mips64el-linux-android/4.9/collect2 diff --git a/libexec/gcc/mips64el-linux-android/4.9/libfunction_reordering_plugin.0.so b/libexec/gcc/mips64el-linux-android/4.9/libfunction_reordering_plugin.0.so Binary files differindex 1cad0a4..a51608c 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/libfunction_reordering_plugin.0.so +++ b/libexec/gcc/mips64el-linux-android/4.9/libfunction_reordering_plugin.0.so diff --git a/libexec/gcc/mips64el-linux-android/4.9/liblto_plugin.0.so b/libexec/gcc/mips64el-linux-android/4.9/liblto_plugin.0.so Binary files differindex 181caf3..03b9604 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/liblto_plugin.0.so +++ b/libexec/gcc/mips64el-linux-android/4.9/liblto_plugin.0.so diff --git a/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper b/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper Binary files differindex 6248e17..a49bfb0 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper +++ b/libexec/gcc/mips64el-linux-android/4.9/lto-wrapper diff --git a/libexec/gcc/mips64el-linux-android/4.9/lto1 b/libexec/gcc/mips64el-linux-android/4.9/lto1 Binary files differindex e4aaeec..f11f9cf 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/lto1 +++ b/libexec/gcc/mips64el-linux-android/4.9/lto1 diff --git a/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype b/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype Binary files differindex dc85a2c..77f6aaa 100755 --- a/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype +++ b/libexec/gcc/mips64el-linux-android/4.9/plugin/gengtype diff --git a/mips64el-linux-android/bin/ld.mcld b/mips64el-linux-android/bin/ld.mcld deleted file mode 120000 index 373a954..0000000 --- a/mips64el-linux-android/bin/ld.mcld +++ /dev/null @@ -1 +0,0 @@ -../../../../../../toolchains/llvm-3.5/prebuilt/darwin-x86_64/bin/ld.mcld
\ No newline at end of file diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.x b/mips64el-linux-android/lib/ldscripts/elf32btsmip.x index cf1ecc5..fb9d8eb 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.x +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.x @@ -194,7 +194,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xbn b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xbn index d515188..2589f97 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xbn @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xc b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xc index 5e66a22..86b1326 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xc @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xd b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xd index 5ab15be..d315bc1 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xd +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xd @@ -193,7 +193,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdc b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdc index fe64576..aaef5a8 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdc @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdw b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdw index 698e134..6a077fa 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xdw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xn b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xn index ab936db..11c81bf 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xn +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xn @@ -193,7 +193,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xs b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xs index cf35499..aec5352 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xs +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xs @@ -177,7 +177,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsc b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsc index cdeca4c..7cc5f63 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsc @@ -177,7 +177,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsw b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsw index a5a5a83..b105a58 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -190,7 +189,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xw b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xw index 241f1fa..c6cba08 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmip.xw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmip.xw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.x b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.x index 308b0e4..b8dfd49 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.x +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.x @@ -194,7 +194,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -208,7 +207,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xbn b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xbn index 47662e2..a9ccbe9 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xbn @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xc b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xc index 22efdf8..7cee742 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xc @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xd b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xd index 74125c2..d671b03 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xd +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xd @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdc b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdc index ad5d070..af41801 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdc @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdw b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdw index f4927e1..5612ac5 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xdw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xn b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xn index 2ccb8b9..cd0332e 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xn +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xn @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xs b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xs index b1c3da8..ad78ec1 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xs +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xs @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsc b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsc index 8e3acde..f39387d 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsc @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsw b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsw index ac55fec..ff94eae 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xw b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xw index ca1d822..de49e1a 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xw +++ b/mips64el-linux-android/lib/ldscripts/elf32btsmipn32.xw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.x b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.x index 5d20c5a..88ba41d 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.x +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.x @@ -194,7 +194,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xbn b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xbn index 99b907b..2c515e5 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xbn @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xc b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xc index 136b761..ca5317b 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xc @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xd b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xd index 243afc0..38142de 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xd +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xd @@ -193,7 +193,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdc b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdc index d38a1e1..c246dbd 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdc @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdw b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdw index fc57848..d0d21dd 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xdw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xn b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xn index 5c2cc73..2ddf810 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xn +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xn @@ -193,7 +193,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xs b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xs index d7c9a64..9c33fbb 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xs +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xs @@ -177,7 +177,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsc b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsc index 3f04cc5..99c1a3c 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsc @@ -177,7 +177,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsw b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsw index 7116670..3847276 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -190,7 +189,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xw b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xw index bf8608d..eda1735 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmip.xw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit8 : { *(.lit8) } .lit4 : { *(.lit4) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.x b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.x index 8aa0b06..28a11d9 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.x +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.x @@ -194,7 +194,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -208,7 +207,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xbn b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xbn index c45672f..236f6d9 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xbn @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xc b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xc index eff7968..b364c63 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xc @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xd b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xd index 531af25..31bff90 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xd +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xd @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdc b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdc index 48046c9..fda28ec 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdc @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdw b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdw index 783c545..5c70c1e 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xdw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xn b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xn index 4f49cb5..07375ba 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xn +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xn @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xs b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xs index b897a73..97fae41 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xs +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xs @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsc b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsc index 37b95a6..a5dc864 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsc @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsw b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsw index 4e0b1d2..5f7db7c 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xw b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xw index 834d1e4..00b8eca 100644 --- a/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xw +++ b/mips64el-linux-android/lib/ldscripts/elf32ltsmipn32.xw @@ -192,7 +192,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.x b/mips64el-linux-android/lib/ldscripts/elf64btsmip.x index d2c6d70..baa5660 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.x +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.x @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xbn b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xbn index 13a7200..f5ce208 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xbn @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xc b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xc index 193d084..f4a9610 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xc +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xc @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xd b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xd index f15e8cb..c2ec969 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xd +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xd @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdc b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdc index 4b717f0..fa67867 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdc @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdw b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdw index c90e582..4a1fbc3 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xdw @@ -191,7 +191,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xn b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xn index 06658d3..8e8adb9 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xn +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xn @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xs b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xs index 98f8b6b..9bd55fc 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xs +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xs @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsc b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsc index 601c9c7..3f5bcf0 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsc @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsw b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsw index 9008c55..8fe14ce 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xw b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xw index b5d31f9..d5f3f06 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64btsmip.xw +++ b/mips64el-linux-android/lib/ldscripts/elf64btsmip.xw @@ -191,7 +191,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.x b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.x index 7af0526..bcb0282 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.x +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.x @@ -193,7 +193,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -207,7 +206,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xbn b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xbn index e7faa83..43d2559 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xbn +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xbn @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xc b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xc index d09ccbf..575fa09 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xc +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xc @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xd b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xd index 1ae52f3..6d0451d 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xd +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xd @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdc b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdc index 54eaa03..70bc2f5 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdc +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdc @@ -191,7 +191,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdw b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdw index 1ed2327..734121d 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdw +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xdw @@ -191,7 +191,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xn b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xn index 4480b24..59b99ec 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xn +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xn @@ -192,7 +192,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -206,7 +205,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xs b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xs index e7bdf6f..7a0254b 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xs +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xs @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsc b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsc index 67b70e2..18939f7 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsc +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsc @@ -177,7 +177,6 @@ SECTIONS .data1 : { *(.data1) } .got.plt : { *(.got.plt) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -192,7 +191,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsw b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsw index 93548a4..16ee0e3 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsw +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xsw @@ -176,7 +176,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -191,7 +190,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xw b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xw index 99dca6e..f9bcd95 100644 --- a/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xw +++ b/mips64el-linux-android/lib/ldscripts/elf64ltsmip.xw @@ -191,7 +191,6 @@ SECTIONS } .data1 : { *(.data1) } . = .; - . = .; HIDDEN (_gp = ALIGN (16) + 0x7ff0); .got : { *(.got) } /* We want the small data sections together, so single-instruction offsets @@ -205,7 +204,6 @@ SECTIONS .lit4 : { *(.lit4) } .srdata : { *(.srdata) } _edata = .; PROVIDE (edata = .); - . = .; __bss_start = .; _fbss = .; .sbss : diff --git a/mips64el-linux-android/lib/libatomic.a b/mips64el-linux-android/lib/libatomic.a Binary files differindex fe7f3a1..55b327e 100644 --- a/mips64el-linux-android/lib/libatomic.a +++ b/mips64el-linux-android/lib/libatomic.a diff --git a/mips64el-linux-android/lib/libgomp.a b/mips64el-linux-android/lib/libgomp.a Binary files differindex e093eda..63dc6f3 100644 --- a/mips64el-linux-android/lib/libgomp.a +++ b/mips64el-linux-android/lib/libgomp.a diff --git a/mips64el-linux-android/lib64/libatomic.a b/mips64el-linux-android/lib64/libatomic.a Binary files differindex 2581c45..599406f 100644 --- a/mips64el-linux-android/lib64/libatomic.a +++ b/mips64el-linux-android/lib64/libatomic.a diff --git a/mips64el-linux-android/lib64/libgomp.a b/mips64el-linux-android/lib64/libgomp.a Binary files differindex 3b488e0..7a1a166 100644 --- a/mips64el-linux-android/lib64/libgomp.a +++ b/mips64el-linux-android/lib64/libgomp.a diff --git a/mips64el-linux-android/lib64r2/libatomic.a b/mips64el-linux-android/lib64r2/libatomic.a Binary files differdeleted file mode 100644 index c2a874c..0000000 --- a/mips64el-linux-android/lib64r2/libatomic.a +++ /dev/null diff --git a/mips64el-linux-android/lib64r2/libgomp.a b/mips64el-linux-android/lib64r2/libgomp.a Binary files differdeleted file mode 100644 index ef96a55..0000000 --- a/mips64el-linux-android/lib64r2/libgomp.a +++ /dev/null diff --git a/mips64el-linux-android/lib64r2/libgomp.spec b/mips64el-linux-android/lib64r2/libgomp.spec deleted file mode 100644 index 2fd7721..0000000 --- a/mips64el-linux-android/lib64r2/libgomp.spec +++ /dev/null @@ -1,3 +0,0 @@ -# This spec file is read by gcc when linking. It is used to specify the -# standard libraries we need in order to link with libgomp. -*link_gomp: -lgomp diff --git a/mips64el-linux-android/libr2/libatomic.a b/mips64el-linux-android/libr2/libatomic.a Binary files differindex fa8cae3..016f4ff 100644 --- a/mips64el-linux-android/libr2/libatomic.a +++ b/mips64el-linux-android/libr2/libatomic.a diff --git a/mips64el-linux-android/libr2/libgomp.a b/mips64el-linux-android/libr2/libgomp.a Binary files differindex 0559415..b676ccf 100644 --- a/mips64el-linux-android/libr2/libgomp.a +++ b/mips64el-linux-android/libr2/libgomp.a diff --git a/mips64el-linux-android/libr6/libatomic.a b/mips64el-linux-android/libr6/libatomic.a Binary files differindex 012d04e..fb03de2 100644 --- a/mips64el-linux-android/libr6/libatomic.a +++ b/mips64el-linux-android/libr6/libatomic.a diff --git a/mips64el-linux-android/libr6/libgomp.a b/mips64el-linux-android/libr6/libgomp.a Binary files differindex b4bc672..f77432b 100644 --- a/mips64el-linux-android/libr6/libgomp.a +++ b/mips64el-linux-android/libr6/libgomp.a diff --git a/repo.prop b/repo.prop new file mode 100644 index 0000000..04bd79d --- /dev/null +++ b/repo.prop @@ -0,0 +1,17 @@ +platform/manifest 29325e7007f581fc689a14b68b0feb04f52e3d0f +platform/ndk 542e194cf8193fe23570b314c2697568b00b99dd +platform/prebuilts/gcc/darwin-x86/host/headers 4ac4f7cc41cf3c9e36fc3d6cf37fd1cfa9587a68 +platform/prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1 ec5aa66aaa4964c27564d0ec84dc1f18a2d72b7e +platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.8 1273431a189717842f033573eb8c777e13dd88b7 +platform/prebuilts/ndk a3958fbda3afe1f4b8f82c126a4c1800555b56a9 +toolchain/binutils ec97727e655f49b010f4cf8c410631910d22199f +toolchain/build fad95906dc869be82834cf0678a5b99d2fe19095 +toolchain/cloog 604793eab97d360aef729f064674569ee6dbf3e1 +toolchain/expat 40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 +toolchain/gcc e288936a8765b4b25a9f2c144881b087d50bd2bf +toolchain/gmp b2acd5dbf47868ac5b5bc844e16d2cadcbd4c810 +toolchain/isl 0ccf95726af8ce58ad61ff474addbce3a31ba99c +toolchain/mpc 835d16e92eed875638a8b5d552034c3b1aae045b +toolchain/mpfr de979fc377db766591e7feaf052f0de59be46e76 +toolchain/ppl 979062d362bc5a1c00804237b408b19b4618fb24 +toolchain/sed 45df23d6dc8b51ea5cd903d023c10fd7d72415b9 diff --git a/share/gdb/python/gdb/FrameDecorator.py b/share/gdb/python/gdb/FrameDecorator.py deleted file mode 100644 index 1bbc5ab..0000000 --- a/share/gdb/python/gdb/FrameDecorator.py +++ /dev/null @@ -1,302 +0,0 @@ -# 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 deleted file mode 100644 index c99a91e..0000000 --- a/share/gdb/python/gdb/FrameIterator.py +++ /dev/null @@ -1,51 +0,0 @@ -# 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 deleted file mode 100644 index 95a76c2..0000000 --- a/share/gdb/python/gdb/__init__.py +++ /dev/null @@ -1,126 +0,0 @@ -# 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 -# 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 traceback -import os -import sys -import _gdb - -if sys.version_info[0] > 2: - # Python 3 moved "reload" - from imp import reload - -from _gdb import * - -class _GdbFile (object): - # These two are needed in Python 3 - encoding = "UTF-8" - errors = "strict" - - def close(self): - # Do nothing. - return None - - def isatty(self): - return False - - def writelines(self, iterable): - for line in iterable: - self.write(line) - - def flush(self): - flush() - -class GdbOutputFile (_GdbFile): - def write(self, s): - write(s, stream=STDOUT) - -sys.stdout = GdbOutputFile() - -class GdbOutputErrorFile (_GdbFile): - def write(self, s): - write(s, stream=STDERR) - -sys.stderr = GdbOutputErrorFile() - -# Default prompt hook does nothing. -prompt_hook = None - -# Ensure that sys.argv is set to something. -# We do not use PySys_SetArgvEx because it did not appear until 2.6.6. -sys.argv = [''] - -# Initial pretty printers. -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__)) - -# Auto-load all functions/commands. - -# Packages to auto-load. - -packages = [ - 'function', - 'command' -] - -# pkgutil.iter_modules is not available prior to Python 2.6. Instead, -# manually iterate the list, collating the Python files in each module -# path. Construct the module name, and import. - -def auto_load_packages(): - for package in packages: - location = os.path.join(os.path.dirname(__file__), package) - if os.path.exists(location): - py_files = filter(lambda x: x.endswith('.py') - and x != '__init__.py', - os.listdir(location)) - - for py_file in py_files: - # Construct from foo.py, gdb.module.foo - modname = "%s.%s.%s" % ( __name__, package, py_file[:-3] ) - try: - if modname in sys.modules: - # reload modules with duplicate names - reload(__import__(modname)) - else: - __import__(modname) - except: - sys.stderr.write (traceback.format_exc() + "\n") - -auto_load_packages() - -def GdbSetPythonDirectory(dir): - """Update sys.path, reload gdb and auto-load packages.""" - global PYTHONDIR - - try: - sys.path.remove(PYTHONDIR) - except ValueError: - pass - sys.path.insert(0, dir) - - PYTHONDIR = dir - - # note that reload overwrites the gdb module without deleting existing - # attributes - reload(__import__(__name__)) - auto_load_packages() diff --git a/share/gdb/python/gdb/command/__init__.py b/share/gdb/python/gdb/command/__init__.py deleted file mode 100644 index ca768c8..0000000 --- a/share/gdb/python/gdb/command/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# 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 -# 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/>. - - diff --git a/share/gdb/python/gdb/command/bound_registers.py b/share/gdb/python/gdb/command/bound_registers.py deleted file mode 100644 index 24d4c45..0000000 --- a/share/gdb/python/gdb/command/bound_registers.py +++ /dev/null @@ -1,45 +0,0 @@ -# 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 deleted file mode 100644 index fd79de3..0000000 --- a/share/gdb/python/gdb/command/explore.py +++ /dev/null @@ -1,760 +0,0 @@ -# GDB 'explore' command. -# 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 -# 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/>. - -"""Implementation of the GDB 'explore' command using the GDB Python API.""" - -import gdb -import sys - -if sys.version_info[0] > 2: - # Python 3 renamed raw_input to input - raw_input = input - -class Explorer(object): - """Internal class which invokes other explorers.""" - - # This map is filled by the Explorer.init_env() function - type_code_to_explorer_map = { } - - _SCALAR_TYPE_LIST = ( - gdb.TYPE_CODE_CHAR, - gdb.TYPE_CODE_INT, - gdb.TYPE_CODE_BOOL, - gdb.TYPE_CODE_FLT, - gdb.TYPE_CODE_VOID, - gdb.TYPE_CODE_ENUM, - ) - - @staticmethod - def guard_expr(expr): - length = len(expr) - guard = False - - if expr[0] == '(' and expr[length-1] == ')': - pass - else: - i = 0 - while i < length: - c = expr[i] - if (c == '_' or ('a' <= c and c <= 'z') or - ('A' <= c and c <= 'Z') or ('0' <= c and c <= '9')): - pass - else: - guard = True - break - i += 1 - - if guard: - return "(" + expr + ")" - else: - return expr - - @staticmethod - def explore_expr(expr, value, is_child): - """Main function to explore an expression value. - - Arguments: - expr: The expression string that is being explored. - value: The gdb.Value value of the expression. - is_child: Boolean value to indicate if the expression is a child. - An expression is a child if it is derived from the main - expression entered by the user. For example, if the user - entered an expression which evaluates to a struct, then - when exploring the fields of the struct, is_child is set - to True internally. - - Returns: - No return value. - """ - type_code = value.type.code - if type_code in Explorer.type_code_to_explorer_map: - explorer_class = Explorer.type_code_to_explorer_map[type_code] - while explorer_class.explore_expr(expr, value, is_child): - pass - else: - print ("Explorer for type '%s' not yet available.\n" % - str(value.type)) - - @staticmethod - def explore_type(name, datatype, is_child): - """Main function to explore a data type. - - Arguments: - name: The string representing the path to the data type being - explored. - datatype: The gdb.Type value of the data type being explored. - is_child: Boolean value to indicate if the name is a child. - A name is a child if it is derived from the main name - entered by the user. For example, if the user entered - the name of struct type, then when exploring the fields - of the struct, is_child is set to True internally. - - Returns: - No return value. - """ - type_code = datatype.code - if type_code in Explorer.type_code_to_explorer_map: - explorer_class = Explorer.type_code_to_explorer_map[type_code] - while explorer_class.explore_type(name, datatype, is_child): - pass - else: - print ("Explorer for type '%s' not yet available.\n" % - str(datatype)) - - @staticmethod - def init_env(): - """Initializes the Explorer environment. - This function should be invoked before starting any exploration. If - invoked before an exploration, it need not be invoked for subsequent - explorations. - """ - Explorer.type_code_to_explorer_map = { - gdb.TYPE_CODE_CHAR : ScalarExplorer, - gdb.TYPE_CODE_INT : ScalarExplorer, - gdb.TYPE_CODE_BOOL : ScalarExplorer, - gdb.TYPE_CODE_FLT : ScalarExplorer, - gdb.TYPE_CODE_VOID : ScalarExplorer, - gdb.TYPE_CODE_ENUM : ScalarExplorer, - gdb.TYPE_CODE_STRUCT : CompoundExplorer, - gdb.TYPE_CODE_UNION : CompoundExplorer, - gdb.TYPE_CODE_PTR : PointerExplorer, - gdb.TYPE_CODE_REF : ReferenceExplorer, - gdb.TYPE_CODE_TYPEDEF : TypedefExplorer, - gdb.TYPE_CODE_ARRAY : ArrayExplorer - } - - @staticmethod - def is_scalar_type(type): - """Checks whether a type is a scalar type. - A type is a scalar type of its type is - gdb.TYPE_CODE_CHAR or - gdb.TYPE_CODE_INT or - gdb.TYPE_CODE_BOOL or - gdb.TYPE_CODE_FLT or - gdb.TYPE_CODE_VOID or - gdb.TYPE_CODE_ENUM. - - Arguments: - type: The type to be checked. - - Returns: - 'True' if 'type' is a scalar type. 'False' otherwise. - """ - return type.code in Explorer._SCALAR_TYPE_LIST - - @staticmethod - def return_to_parent_value(): - """A utility function which prints that the current exploration session - is returning to the parent value. Useful when exploring values. - """ - print ("\nReturning to parent value...\n") - - @staticmethod - def return_to_parent_value_prompt(): - """A utility function which prompts the user to press the 'enter' key - so that the exploration session can shift back to the parent value. - Useful when exploring values. - """ - raw_input("\nPress enter to return to parent value: ") - - @staticmethod - def return_to_enclosing_type(): - """A utility function which prints that the current exploration session - is returning to the enclosing type. Useful when exploring types. - """ - print ("\nReturning to enclosing type...\n") - - @staticmethod - def return_to_enclosing_type_prompt(): - """A utility function which prompts the user to press the 'enter' key - so that the exploration session can shift back to the enclosing type. - Useful when exploring types. - """ - raw_input("\nPress enter to return to enclosing type: ") - - -class ScalarExplorer(object): - """Internal class used to explore scalar values.""" - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore scalar values. - See Explorer.explore_expr and Explorer.is_scalar_type for more - information. - """ - print ("'%s' is a scalar value of type '%s'." % - (expr, value.type)) - print ("%s = %s" % (expr, str(value))) - - if is_child: - Explorer.return_to_parent_value_prompt() - Explorer.return_to_parent_value() - - return False - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore scalar types. - See Explorer.explore_type and Explorer.is_scalar_type for more - information. - """ - if datatype.code == gdb.TYPE_CODE_ENUM: - if is_child: - print ("%s is of an enumerated type '%s'." % - (name, str(datatype))) - else: - print ("'%s' is an enumerated type." % name) - else: - if is_child: - print ("%s is of a scalar type '%s'." % - (name, str(datatype))) - else: - print ("'%s' is a scalar type." % name) - - if is_child: - Explorer.return_to_enclosing_type_prompt() - Explorer.return_to_enclosing_type() - - return False - - -class PointerExplorer(object): - """Internal class used to explore pointer values.""" - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore pointer values. - See Explorer.explore_expr for more information. - """ - print ("'%s' is a pointer to a value of type '%s'" % - (expr, str(value.type.target()))) - option = raw_input("Continue exploring it as a pointer to a single " - "value [y/n]: ") - if option == "y": - deref_value = None - try: - deref_value = value.dereference() - str(deref_value) - except gdb.MemoryError: - print ("'%s' a pointer pointing to an invalid memory " - "location." % expr) - if is_child: - Explorer.return_to_parent_value_prompt() - return False - Explorer.explore_expr("*%s" % Explorer.guard_expr(expr), - deref_value, is_child) - return False - - option = raw_input("Continue exploring it as a pointer to an " - "array [y/n]: ") - if option == "y": - while True: - index = 0 - try: - index = int(raw_input("Enter the index of the element you " - "want to explore in '%s': " % expr)) - except ValueError: - break - element_expr = "%s[%d]" % (Explorer.guard_expr(expr), index) - element = value[index] - try: - str(element) - except gdb.MemoryError: - print ("Cannot read value at index %d." % index) - continue - Explorer.explore_expr(element_expr, element, True) - return False - - if is_child: - Explorer.return_to_parent_value() - return False - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore pointer types. - See Explorer.explore_type for more information. - """ - target_type = datatype.target() - print ("\n%s is a pointer to a value of type '%s'." % - (name, str(target_type))) - - Explorer.explore_type("the pointee type of %s" % name, - target_type, - is_child) - return False - - -class ReferenceExplorer(object): - """Internal class used to explore reference (TYPE_CODE_REF) values.""" - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore array values. - See Explorer.explore_expr for more information. - """ - referenced_value = value.referenced_value() - Explorer.explore_expr(expr, referenced_value, is_child) - return False - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore pointer types. - See Explorer.explore_type for more information. - """ - target_type = datatype.target() - Explorer.explore_type(name, target_type, is_child) - return False - - -class ArrayExplorer(object): - """Internal class used to explore arrays.""" - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore array values. - See Explorer.explore_expr for more information. - """ - target_type = value.type.target() - print ("'%s' is an array of '%s'." % (expr, str(target_type))) - index = 0 - try: - index = int(raw_input("Enter the index of the element you want to " - "explore in '%s': " % expr)) - except ValueError: - if is_child: - Explorer.return_to_parent_value() - return False - - element = None - try: - element = value[index] - str(element) - except gdb.MemoryError: - print ("Cannot read value at index %d." % index) - raw_input("Press enter to continue... ") - return True - - Explorer.explore_expr("%s[%d]" % (Explorer.guard_expr(expr), index), - element, True) - return True - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore array types. - See Explorer.explore_type for more information. - """ - target_type = datatype.target() - print ("%s is an array of '%s'." % (name, str(target_type))) - - Explorer.explore_type("the array element of %s" % name, target_type, - is_child) - return False - - -class CompoundExplorer(object): - """Internal class used to explore struct, classes and unions.""" - - @staticmethod - def _print_fields(print_list): - """Internal function which prints the fields of a struct/class/union. - """ - max_field_name_length = 0 - for pair in print_list: - if max_field_name_length < len(pair[0]): - max_field_name_length = len(pair[0]) - - for pair in print_list: - print (" %*s = %s" % (max_field_name_length, pair[0], pair[1])) - - @staticmethod - def _get_real_field_count(fields): - real_field_count = 0; - for field in fields: - if not field.artificial: - real_field_count = real_field_count + 1 - - return real_field_count - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore structs/classes and union values. - See Explorer.explore_expr for more information. - """ - datatype = value.type - type_code = datatype.code - fields = datatype.fields() - - if type_code == gdb.TYPE_CODE_STRUCT: - type_desc = "struct/class" - else: - type_desc = "union" - - if CompoundExplorer._get_real_field_count(fields) == 0: - print ("The value of '%s' is a %s of type '%s' with no fields." % - (expr, type_desc, str(value.type))) - if is_child: - Explorer.return_to_parent_value_prompt() - return False - - print ("The value of '%s' is a %s of type '%s' with the following " - "fields:\n" % (expr, type_desc, str(value.type))) - - has_explorable_fields = False - choice_to_compound_field_map = { } - current_choice = 0 - print_list = [ ] - for field in fields: - if field.artificial: - continue - field_full_name = Explorer.guard_expr(expr) + "." + field.name - if field.is_base_class: - field_value = value.cast(field.type) - else: - field_value = value[field.name] - literal_value = "" - if type_code == gdb.TYPE_CODE_UNION: - literal_value = ("<Enter %d to explore this field of type " - "'%s'>" % (current_choice, str(field.type))) - has_explorable_fields = True - else: - if Explorer.is_scalar_type(field.type): - literal_value = ("%s .. (Value of type '%s')" % - (str(field_value), str(field.type))) - else: - if field.is_base_class: - field_desc = "base class" - else: - field_desc = "field" - literal_value = ("<Enter %d to explore this %s of type " - "'%s'>" % - (current_choice, field_desc, - str(field.type))) - has_explorable_fields = True - - choice_to_compound_field_map[str(current_choice)] = ( - field_full_name, field_value) - current_choice = current_choice + 1 - - print_list.append((field.name, literal_value)) - - CompoundExplorer._print_fields(print_list) - print ("") - - if has_explorable_fields: - choice = raw_input("Enter the field number of choice: ") - if choice in choice_to_compound_field_map: - Explorer.explore_expr(choice_to_compound_field_map[choice][0], - choice_to_compound_field_map[choice][1], - True) - return True - else: - if is_child: - Explorer.return_to_parent_value() - else: - if is_child: - Explorer.return_to_parent_value_prompt() - - return False - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore struct/class and union types. - See Explorer.explore_type for more information. - """ - type_code = datatype.code - type_desc = "" - if type_code == gdb.TYPE_CODE_STRUCT: - type_desc = "struct/class" - else: - type_desc = "union" - - fields = datatype.fields() - if CompoundExplorer._get_real_field_count(fields) == 0: - if is_child: - print ("%s is a %s of type '%s' with no fields." % - (name, type_desc, str(datatype))) - Explorer.return_to_enclosing_type_prompt() - else: - print ("'%s' is a %s with no fields." % (name, type_desc)) - return False - - if is_child: - print ("%s is a %s of type '%s' " - "with the following fields:\n" % - (name, type_desc, str(datatype))) - else: - print ("'%s' is a %s with the following " - "fields:\n" % - (name, type_desc)) - - has_explorable_fields = False - current_choice = 0 - choice_to_compound_field_map = { } - print_list = [ ] - for field in fields: - if field.artificial: - continue - if field.is_base_class: - field_desc = "base class" - else: - field_desc = "field" - rhs = ("<Enter %d to explore this %s of type '%s'>" % - (current_choice, field_desc, str(field.type))) - print_list.append((field.name, rhs)) - choice_to_compound_field_map[str(current_choice)] = ( - field.name, field.type, field_desc) - current_choice = current_choice + 1 - - CompoundExplorer._print_fields(print_list) - print ("") - - if len(choice_to_compound_field_map) > 0: - choice = raw_input("Enter the field number of choice: ") - if choice in choice_to_compound_field_map: - if is_child: - new_name = ("%s '%s' of %s" % - (choice_to_compound_field_map[choice][2], - choice_to_compound_field_map[choice][0], - name)) - else: - new_name = ("%s '%s' of '%s'" % - (choice_to_compound_field_map[choice][2], - choice_to_compound_field_map[choice][0], - name)) - Explorer.explore_type(new_name, - choice_to_compound_field_map[choice][1], True) - return True - else: - if is_child: - Explorer.return_to_enclosing_type() - else: - if is_child: - Explorer.return_to_enclosing_type_prompt() - - return False - - -class TypedefExplorer(object): - """Internal class used to explore values whose type is a typedef.""" - - @staticmethod - def explore_expr(expr, value, is_child): - """Function to explore typedef values. - See Explorer.explore_expr for more information. - """ - actual_type = value.type.strip_typedefs() - print ("The value of '%s' is of type '%s' " - "which is a typedef of type '%s'" % - (expr, str(value.type), str(actual_type))) - - Explorer.explore_expr(expr, value.cast(actual_type), is_child) - return False - - @staticmethod - def explore_type(name, datatype, is_child): - """Function to explore typedef types. - See Explorer.explore_type for more information. - """ - actual_type = datatype.strip_typedefs() - if is_child: - print ("The type of %s is a typedef of type '%s'." % - (name, str(actual_type))) - else: - print ("The type '%s' is a typedef of type '%s'." % - (name, str(actual_type))) - - Explorer.explore_type(name, actual_type, is_child) - return False - - -class ExploreUtils(object): - """Internal class which provides utilities for the main command classes.""" - - @staticmethod - def check_args(name, arg_str): - """Utility to check if adequate number of arguments are passed to an - explore command. - - Arguments: - name: The name of the explore command. - arg_str: The argument string passed to the explore command. - - Returns: - True if adequate arguments are passed, false otherwise. - - Raises: - gdb.GdbError if adequate arguments are not passed. - """ - if len(arg_str) < 1: - raise gdb.GdbError("ERROR: '%s' requires an argument." - % name) - return False - else: - return True - - @staticmethod - def get_type_from_str(type_str): - """A utility function to deduce the gdb.Type value from a string - representing the type. - - Arguments: - type_str: The type string from which the gdb.Type value should be - deduced. - - Returns: - The deduced gdb.Type value if possible, None otherwise. - """ - try: - # Assume the current language to be C/C++ and make a try. - return gdb.parse_and_eval("(%s *)0" % type_str).type.target() - except RuntimeError: - # If assumption of current language to be C/C++ was wrong, then - # lookup the type using the API. - try: - return gdb.lookup_type(type_str) - except RuntimeError: - return None - - @staticmethod - def get_value_from_str(value_str): - """A utility function to deduce the gdb.Value value from a string - representing the value. - - Arguments: - value_str: The value string from which the gdb.Value value should - be deduced. - - Returns: - The deduced gdb.Value value if possible, None otherwise. - """ - try: - return gdb.parse_and_eval(value_str) - except RuntimeError: - return None - - -class ExploreCommand(gdb.Command): - """Explore a value or a type valid in the current context. - - Usage: - - explore ARG - - - ARG is either a valid expression or a type name. - - At any stage of exploration, hit the return key (instead of a - choice, if any) to return to the enclosing type or value. - """ - - def __init__(self): - super(ExploreCommand, self).__init__(name = "explore", - command_class = gdb.COMMAND_DATA, - prefix = True) - - def invoke(self, arg_str, from_tty): - if ExploreUtils.check_args("explore", arg_str) == False: - return - - # Check if it is a value - value = ExploreUtils.get_value_from_str(arg_str) - if value is not None: - Explorer.explore_expr(arg_str, value, False) - return - - # If it is not a value, check if it is a type - datatype = ExploreUtils.get_type_from_str(arg_str) - if datatype is not None: - Explorer.explore_type(arg_str, datatype, False) - return - - # If it is neither a value nor a type, raise an error. - raise gdb.GdbError( - ("'%s' neither evaluates to a value nor is a type " - "in the current context." % - arg_str)) - - -class ExploreValueCommand(gdb.Command): - """Explore value of an expression valid in the current context. - - Usage: - - explore value ARG - - - ARG is a valid expression. - - At any stage of exploration, hit the return key (instead of a - choice, if any) to return to the enclosing value. - """ - - def __init__(self): - super(ExploreValueCommand, self).__init__( - name = "explore value", command_class = gdb.COMMAND_DATA) - - def invoke(self, arg_str, from_tty): - if ExploreUtils.check_args("explore value", arg_str) == False: - return - - value = ExploreUtils.get_value_from_str(arg_str) - if value is None: - raise gdb.GdbError( - (" '%s' does not evaluate to a value in the current " - "context." % - arg_str)) - return - - Explorer.explore_expr(arg_str, value, False) - - -class ExploreTypeCommand(gdb.Command): - """Explore a type or the type of an expression valid in the current - context. - - Usage: - - explore type ARG - - - ARG is a valid expression or a type name. - - At any stage of exploration, hit the return key (instead of a - choice, if any) to return to the enclosing type. - """ - - def __init__(self): - super(ExploreTypeCommand, self).__init__( - name = "explore type", command_class = gdb.COMMAND_DATA) - - def invoke(self, arg_str, from_tty): - if ExploreUtils.check_args("explore type", arg_str) == False: - return - - datatype = ExploreUtils.get_type_from_str(arg_str) - if datatype is not None: - Explorer.explore_type(arg_str, datatype, False) - return - - value = ExploreUtils.get_value_from_str(arg_str) - if value is not None: - print ("'%s' is of type '%s'." % (arg_str, str(value.type))) - Explorer.explore_type(str(value.type), value.type, False) - return - - raise gdb.GdbError(("'%s' is not a type or value in the current " - "context." % arg_str)) - - -Explorer.init_env() - -ExploreCommand() -ExploreValueCommand() -ExploreTypeCommand() diff --git a/share/gdb/python/gdb/command/frame_filters.py b/share/gdb/python/gdb/command/frame_filters.py deleted file mode 100644 index 450c5bf..0000000 --- a/share/gdb/python/gdb/command/frame_filters.py +++ /dev/null @@ -1,467 +0,0 @@ -# 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 deleted file mode 100644 index a9027b3..0000000 --- a/share/gdb/python/gdb/command/pretty_printers.py +++ /dev/null @@ -1,368 +0,0 @@ -# Pretty-printer commands. -# 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 -# 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 pretty-printers.""" - -import copy -import gdb -import re - - -def parse_printer_regexps(arg): - """Internal utility to parse a pretty-printer command argv. - - Arguments: - arg: The arguments to the command. The format is: - [object-regexp [name-regexp]]. - Individual printers in a collection are named as - printer-name;subprinter-name. - - Returns: - The result is a 3-tuple of compiled regular expressions, except that - the resulting compiled subprinter regexp is None if not provided. - - Raises: - SyntaxError: an error processing ARG - """ - - argv = gdb.string_to_argv(arg); - argc = len(argv) - object_regexp = "" # match everything - name_regexp = "" # match everything - subname_regexp = None - if argc > 3: - raise SyntaxError("too many arguments") - if argc >= 1: - object_regexp = argv[0] - if argc >= 2: - name_subname = argv[1].split(";", 1) - name_regexp = name_subname[0] - if len(name_subname) == 2: - subname_regexp = name_subname[1] - # That re.compile raises SyntaxError was determined empirically. - # We catch it and reraise it to provide a slightly more useful - # error message for the user. - try: - object_re = re.compile(object_regexp) - except SyntaxError: - raise SyntaxError("invalid object regexp: %s" % object_regexp) - try: - name_re = re.compile (name_regexp) - except SyntaxError: - raise SyntaxError("invalid name regexp: %s" % name_regexp) - if subname_regexp is not None: - try: - subname_re = re.compile(subname_regexp) - except SyntaxError: - raise SyntaxError("invalid subname regexp: %s" % subname_regexp) - else: - subname_re = None - return(object_re, name_re, subname_re) - - -def printer_enabled_p(printer): - """Internal utility to see if printer (or subprinter) is enabled.""" - if hasattr(printer, "enabled"): - return printer.enabled - else: - return True - - -class InfoPrettyPrinter(gdb.Command): - """GDB command to list all registered pretty-printers. - - Usage: info pretty-printer [object-regexp [name-regexp]] - - OBJECT-REGEXP is a regular expression matching the objects to list. - Objects are "global", the program space's file, and the objfiles within - that program space. - - NAME-REGEXP matches the name of the pretty-printer. - Individual printers in a collection are named as - printer-name;subprinter-name. - """ - - def __init__ (self): - super(InfoPrettyPrinter, self).__init__("info pretty-printer", - gdb.COMMAND_DATA) - - @staticmethod - def enabled_string(printer): - """Return "" if PRINTER is enabled, otherwise " [disabled]".""" - if printer_enabled_p(printer): - return "" - else: - return " [disabled]" - - @staticmethod - def printer_name(printer): - """Return the printer's name.""" - if hasattr(printer, "name"): - return printer.name - if hasattr(printer, "__name__"): - return printer.__name__ - # This "shouldn't happen", but the public API allows for - # direct additions to the pretty-printer list, and we shouldn't - # crash because someone added a bogus printer. - # Plus we want to give the user a way to list unknown printers. - return "unknown" - - def list_pretty_printers(self, pretty_printers, name_re, subname_re): - """Print a list of pretty-printers.""" - # A potential enhancement is to provide an option to list printers in - # "lookup order" (i.e. unsorted). - sorted_pretty_printers = sorted (copy.copy(pretty_printers), - key = self.printer_name) - for printer in sorted_pretty_printers: - name = self.printer_name(printer) - enabled = self.enabled_string(printer) - if name_re.match(name): - print (" %s%s" % (name, enabled)) - if (hasattr(printer, "subprinters") and - printer.subprinters is not None): - sorted_subprinters = sorted (copy.copy(printer.subprinters), - key = self.printer_name) - for subprinter in sorted_subprinters: - if (not subname_re or - subname_re.match(subprinter.name)): - print (" %s%s" % - (subprinter.name, - self.enabled_string(subprinter))) - - def invoke1(self, title, printer_list, - obj_name_to_match, object_re, name_re, subname_re): - """Subroutine of invoke to simplify it.""" - if printer_list and object_re.match(obj_name_to_match): - print (title) - self.list_pretty_printers(printer_list, name_re, subname_re) - - def invoke(self, arg, from_tty): - """GDB calls this to perform the command.""" - (object_re, name_re, subname_re) = parse_printer_regexps(arg) - self.invoke1("global pretty-printers:", gdb.pretty_printers, - "global", object_re, name_re, subname_re) - cp = gdb.current_progspace() - self.invoke1("progspace %s pretty-printers:" % cp.filename, - cp.pretty_printers, "progspace", - object_re, name_re, subname_re) - for objfile in gdb.objfiles(): - self.invoke1(" objfile %s pretty-printers:" % objfile.filename, - objfile.pretty_printers, objfile.filename, - object_re, name_re, subname_re) - - -def count_enabled_printers(pretty_printers): - """Return a 2-tuple of number of enabled and total printers.""" - enabled = 0 - total = 0 - for printer in pretty_printers: - if (hasattr(printer, "subprinters") - and printer.subprinters is not None): - if printer_enabled_p(printer): - for subprinter in printer.subprinters: - if printer_enabled_p(subprinter): - enabled += 1 - total += len(printer.subprinters) - else: - if printer_enabled_p(printer): - enabled += 1 - total += 1 - return (enabled, total) - - -def count_all_enabled_printers(): - """Return a 2-tuble of the enabled state and total number of all printers. - This includes subprinters. - """ - enabled_count = 0 - total_count = 0 - (t_enabled, t_total) = count_enabled_printers(gdb.pretty_printers) - enabled_count += t_enabled - total_count += t_total - (t_enabled, t_total) = count_enabled_printers(gdb.current_progspace().pretty_printers) - enabled_count += t_enabled - total_count += t_total - for objfile in gdb.objfiles(): - (t_enabled, t_total) = count_enabled_printers(objfile.pretty_printers) - enabled_count += t_enabled - total_count += t_total - return (enabled_count, total_count) - - -def pluralize(text, n, suffix="s"): - """Return TEXT pluralized if N != 1.""" - if n != 1: - return "%s%s" % (text, suffix) - else: - return text - - -def show_pretty_printer_enabled_summary(): - """Print the number of printers enabled/disabled. - We count subprinters individually. - """ - (enabled_count, total_count) = count_all_enabled_printers() - print ("%d of %d printers enabled" % (enabled_count, total_count)) - - -def do_enable_pretty_printer_1 (pretty_printers, name_re, subname_re, flag): - """Worker for enabling/disabling pretty-printers. - - Arguments: - pretty_printers: list of pretty-printers - name_re: regular-expression object to select printers - subname_re: regular expression object to select subprinters or None - if all are affected - flag: True for Enable, False for Disable - - Returns: - The number of printers affected. - This is just for informational purposes for the user. - """ - total = 0 - for printer in pretty_printers: - if (hasattr(printer, "name") and name_re.match(printer.name) or - hasattr(printer, "__name__") and name_re.match(printer.__name__)): - if (hasattr(printer, "subprinters") and - printer.subprinters is not None): - if not subname_re: - # Only record printers that change state. - if printer_enabled_p(printer) != flag: - for subprinter in printer.subprinters: - if printer_enabled_p(subprinter): - total += 1 - # NOTE: We preserve individual subprinter settings. - printer.enabled = flag - else: - # NOTE: Whether this actually disables the subprinter - # depends on whether the printer's lookup function supports - # the "enable" API. We can only assume it does. - for subprinter in printer.subprinters: - if subname_re.match(subprinter.name): - # Only record printers that change state. - if (printer_enabled_p(printer) and - printer_enabled_p(subprinter) != flag): - total += 1 - subprinter.enabled = flag - else: - # This printer has no subprinters. - # If the user does "disable pretty-printer .* .* foo" - # should we disable printers that don't have subprinters? - # How do we apply "foo" in this context? Since there is no - # "foo" subprinter it feels like we should skip this printer. - # There's still the issue of how to handle - # "disable pretty-printer .* .* .*", and every other variation - # that can match everything. For now punt and only support - # "disable pretty-printer .* .*" (i.e. subname is elided) - # to disable everything. - if not subname_re: - # Only record printers that change state. - if printer_enabled_p(printer) != flag: - total += 1 - printer.enabled = flag - return total - - -def do_enable_pretty_printer (arg, flag): - """Internal worker for enabling/disabling pretty-printers.""" - (object_re, name_re, subname_re) = parse_printer_regexps(arg) - - total = 0 - if object_re.match("global"): - total += do_enable_pretty_printer_1(gdb.pretty_printers, - name_re, subname_re, flag) - cp = gdb.current_progspace() - if object_re.match("progspace"): - total += do_enable_pretty_printer_1(cp.pretty_printers, - name_re, subname_re, flag) - for objfile in gdb.objfiles(): - if object_re.match(objfile.filename): - total += do_enable_pretty_printer_1(objfile.pretty_printers, - name_re, subname_re, flag) - - if flag: - state = "enabled" - else: - state = "disabled" - print ("%d %s %s" % (total, pluralize("printer", total), state)) - - # Print the total list of printers currently enabled/disabled. - # This is to further assist the user in determining whether the result - # is expected. Since we use regexps to select it's useful. - show_pretty_printer_enabled_summary() - - -# Enable/Disable one or more pretty-printers. -# -# This is intended for use when a broken pretty-printer is shipped/installed -# and the user wants to disable that printer without disabling all the other -# printers. -# -# A useful addition would be -v (verbose) to show each printer affected. - -class EnablePrettyPrinter (gdb.Command): - """GDB command to enable the specified pretty-printer. - - Usage: enable pretty-printer [object-regexp [name-regexp]] - - OBJECT-REGEXP is a regular expression matching the objects to examine. - Objects are "global", the program space's file, and the objfiles within - that program space. - - NAME-REGEXP matches the name of the pretty-printer. - Individual printers in a collection are named as - printer-name;subprinter-name. - """ - - def __init__(self): - super(EnablePrettyPrinter, self).__init__("enable pretty-printer", - gdb.COMMAND_DATA) - - def invoke(self, arg, from_tty): - """GDB calls this to perform the command.""" - do_enable_pretty_printer(arg, True) - - -class DisablePrettyPrinter (gdb.Command): - """GDB command to disable the specified pretty-printer. - - Usage: disable pretty-printer [object-regexp [name-regexp]] - - OBJECT-REGEXP is a regular expression matching the objects to examine. - Objects are "global", the program space's file, and the objfiles within - that program space. - - NAME-REGEXP matches the name of the pretty-printer. - Individual printers in a collection are named as - printer-name;subprinter-name. - """ - - def __init__(self): - super(DisablePrettyPrinter, self).__init__("disable pretty-printer", - gdb.COMMAND_DATA) - - def invoke(self, arg, from_tty): - """GDB calls this to perform the command.""" - do_enable_pretty_printer(arg, False) - - -def register_pretty_printer_commands(): - """Call from a top level script to install the pretty-printer commands.""" - InfoPrettyPrinter() - EnablePrettyPrinter() - DisablePrettyPrinter() - -register_pretty_printer_commands() diff --git a/share/gdb/python/gdb/command/prompt.py b/share/gdb/python/gdb/command/prompt.py deleted file mode 100644 index e7dc3da..0000000 --- a/share/gdb/python/gdb/command/prompt.py +++ /dev/null @@ -1,66 +0,0 @@ -# Extended prompt. -# 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/>. - -"""GDB command for working with extended prompts.""" - -import gdb -import gdb.prompt - -class _ExtendedPrompt(gdb.Parameter): - - """Set the extended prompt. - -Usage: set extended-prompt VALUE - -Substitutions are applied to VALUE to compute the real prompt. - -The currently defined substitutions are: - -""" - # Add the prompt library's dynamically generated help to the - # __doc__ string. - __doc__ = __doc__ + gdb.prompt.prompt_help() - - set_doc = "Set the extended prompt." - show_doc = "Show the extended prompt." - - def __init__(self): - super(_ExtendedPrompt, self).__init__("extended-prompt", - gdb.COMMAND_SUPPORT, - gdb.PARAM_STRING_NOESCAPE) - self.value = '' - self.hook_set = False - - def get_show_string (self, pvalue): - if self.value is not '': - return "The extended prompt is: " + self.value - else: - return "The extended prompt is not set." - - def get_set_string (self): - if self.hook_set == False: - gdb.prompt_hook = self.before_prompt_hook - self.hook_set = True - return "" - - def before_prompt_hook(self, current): - if self.value is not '': - newprompt = gdb.prompt.substitute_prompt(self.value) - return newprompt.replace('\\', '\\\\') - else: - return None - -_ExtendedPrompt() diff --git a/share/gdb/python/gdb/command/type_printers.py b/share/gdb/python/gdb/command/type_printers.py deleted file mode 100644 index 9376be8..0000000 --- a/share/gdb/python/gdb/command/type_printers.py +++ /dev/null @@ -1,125 +0,0 @@ -# Type printer commands. -# 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 -# 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 copy -import gdb - -"""GDB commands for working with type-printers.""" - -class InfoTypePrinter(gdb.Command): - """GDB command to list all registered type-printers. - - Usage: info type-printers - """ - - def __init__ (self): - super(InfoTypePrinter, self).__init__("info type-printers", - gdb.COMMAND_DATA) - - def list_type_printers(self, type_printers): - """Print a list of type printers.""" - # A potential enhancement is to provide an option to list printers in - # "lookup order" (i.e. unsorted). - sorted_type_printers = sorted (copy.copy(type_printers), - key = lambda x: x.name) - for printer in sorted_type_printers: - if printer.enabled: - enabled = '' - else: - enabled = " [disabled]" - print (" %s%s" % (printer.name, enabled)) - - def invoke(self, arg, from_tty): - """GDB calls this to perform the command.""" - sep = '' - for objfile in gdb.objfiles(): - if objfile.type_printers: - print ("%sType printers for %s:" % (sep, objfile.name)) - self.list_type_printers(objfile.type_printers) - sep = '\n' - if gdb.current_progspace().type_printers: - print ("%sType printers for program space:" % sep) - self.list_type_printers(gdb.current_progspace().type_printers) - sep = '\n' - if gdb.type_printers: - print ("%sGlobal type printers:" % sep) - self.list_type_printers(gdb.type_printers) - -class _EnableOrDisableCommand(gdb.Command): - def __init__(self, setting, name): - super(_EnableOrDisableCommand, self).__init__(name, gdb.COMMAND_DATA) - self.setting = setting - - def set_some(self, name, printers): - result = False - for p in printers: - if name == p.name: - p.enabled = self.setting - result = True - return result - - def invoke(self, arg, from_tty): - """GDB calls this to perform the command.""" - for name in arg.split(): - ok = False - for objfile in gdb.objfiles(): - if self.set_some(name, objfile.type_printers): - ok = True - if self.set_some(name, gdb.current_progspace().type_printers): - ok = True - if self.set_some(name, gdb.type_printers): - ok = True - if not ok: - print ("No type printer named '%s'" % name) - - def add_some(self, result, word, printers): - for p in printers: - if p.name.startswith(word): - result.append(p.name) - - def complete(self, text, word): - result = [] - for objfile in gdb.objfiles(): - self.add_some(result, word, objfile.type_printers) - self.add_some(result, word, gdb.current_progspace().type_printers) - self.add_some(result, word, gdb.type_printers) - return result - -class EnableTypePrinter(_EnableOrDisableCommand): - """GDB command to enable the specified type printer. - - Usage: enable type-printer NAME - - NAME is the name of the type-printer. - """ - - def __init__(self): - super(EnableTypePrinter, self).__init__(True, "enable type-printer") - -class DisableTypePrinter(_EnableOrDisableCommand): - """GDB command to disable the specified type-printer. - - Usage: disable type-printer NAME - - NAME is the name of the type-printer. - """ - - def __init__(self): - super(DisableTypePrinter, self).__init__(False, "disable type-printer") - -InfoTypePrinter() -EnableTypePrinter() -DisableTypePrinter() diff --git a/share/gdb/python/gdb/frames.py b/share/gdb/python/gdb/frames.py deleted file mode 100644 index 19172e7..0000000 --- a/share/gdb/python/gdb/frames.py +++ /dev/null @@ -1,228 +0,0 @@ -# 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 deleted file mode 100644 index bcfadc3..0000000 --- a/share/gdb/python/gdb/function/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# 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 -# 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/>. diff --git a/share/gdb/python/gdb/function/strfns.py b/share/gdb/python/gdb/function/strfns.py deleted file mode 100644 index 9e2ed79..0000000 --- a/share/gdb/python/gdb/function/strfns.py +++ /dev/null @@ -1,108 +0,0 @@ -# Useful gdb string convenience functions. -# 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 -# 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/>. - -"""$_memeq, $_strlen, $_streq, $_regex""" - -import gdb -import re - - -class _MemEq(gdb.Function): - """$_memeq - compare bytes of memory - -Usage: - $_memeq(a, b, len) - -Returns: - True if len bytes at a and b compare equally. -""" - def __init__(self): - super(_MemEq, self).__init__("_memeq") - - def invoke(self, a, b, length): - if length < 0: - raise ValueError("length must be non-negative") - if length == 0: - return True - # The argument(s) to vector are [low_bound,]high_bound. - byte_vector = gdb.lookup_type("char").vector(length - 1) - ptr_byte_vector = byte_vector.pointer() - a_ptr = a.reinterpret_cast(ptr_byte_vector) - b_ptr = b.reinterpret_cast(ptr_byte_vector) - return a_ptr.dereference() == b_ptr.dereference() - - -class _StrLen(gdb.Function): - """$_strlen - compute string length - -Usage: - $_strlen(a) - -Returns: - Length of string a, assumed to be a string in the current language. -""" - def __init__(self): - super(_StrLen, self).__init__("_strlen") - - def invoke(self, a): - s = a.string() - return len(s) - - -class _StrEq(gdb.Function): - """$_streq - check string equality - -Usage: - $_streq(a, b) - -Returns: - True if a and b are identical strings in the current language. - -Example (amd64-linux): - catch syscall open - cond $bpnum $_streq((char*) $rdi, "foo") -""" - def __init__(self): - super(_StrEq, self).__init__("_streq") - - def invoke(self, a, b): - return a.string() == b.string() - - -class _RegEx(gdb.Function): - """$_regex - check if a string matches a regular expression - -Usage: - $_regex(string, regex) - -Returns: - True if string str (in the current language) matches the - regular expression regex. -""" - def __init__(self): - super(_RegEx, self).__init__("_regex") - - def invoke(self, string, regex): - s = string.string() - r = re.compile(regex.string()) - return bool(r.match(s)) - - -# GDB will import us automagically via gdb/__init__.py. -_MemEq() -_StrLen() -_StrEq() -_RegEx() diff --git a/share/gdb/python/gdb/printing.py b/share/gdb/python/gdb/printing.py deleted file mode 100644 index 80227c8..0000000 --- a/share/gdb/python/gdb/printing.py +++ /dev/null @@ -1,263 +0,0 @@ -# Pretty-printer utilities. -# 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 -# 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/>. - -"""Utilities for working with pretty-printers.""" - -import gdb -import gdb.types -import re -import sys - -if sys.version_info[0] > 2: - # Python 3 removed basestring and long - basestring = str - long = int - -class PrettyPrinter(object): - """A basic pretty-printer. - - Attributes: - name: A unique string among all printers for the context in which - it is defined (objfile, progspace, or global(gdb)), and should - meaningfully describe what can be pretty-printed. - E.g., "StringPiece" or "protobufs". - subprinters: An iterable object with each element having a `name' - attribute, and, potentially, "enabled" attribute. - Or this is None if there are no subprinters. - enabled: A boolean indicating if the printer is enabled. - - Subprinters are for situations where "one" pretty-printer is actually a - collection of several printers. E.g., The libstdc++ pretty-printer has - a pretty-printer for each of several different types, based on regexps. - """ - - # While one might want to push subprinters into the subclass, it's - # present here to formalize such support to simplify - # commands/pretty_printers.py. - - def __init__(self, name, subprinters=None): - self.name = name - self.subprinters = subprinters - self.enabled = True - - def __call__(self, val): - # The subclass must define this. - raise NotImplementedError("PrettyPrinter __call__") - - -class SubPrettyPrinter(object): - """Baseclass for sub-pretty-printers. - - Sub-pretty-printers needn't use this, but it formalizes what's needed. - - Attributes: - name: The name of the subprinter. - enabled: A boolean indicating if the subprinter is enabled. - """ - - def __init__(self, name): - self.name = name - self.enabled = True - - -def register_pretty_printer(obj, printer, replace=False): - """Register pretty-printer PRINTER with OBJ. - - The printer is added to the front of the search list, thus one can override - an existing printer if one needs to. Use a different name when overriding - an existing printer, otherwise an exception will be raised; multiple - printers with the same name are disallowed. - - Arguments: - obj: Either an objfile, progspace, or None (in which case the printer - is registered globally). - printer: Either a function of one argument (old way) or any object - which has attributes: name, enabled, __call__. - replace: If True replace any existing copy of the printer. - Otherwise if the printer already exists raise an exception. - - Returns: - Nothing. - - Raises: - TypeError: A problem with the type of the printer. - ValueError: The printer's name contains a semicolon ";". - RuntimeError: A printer with the same name is already registered. - - If the caller wants the printer to be listable and disableable, it must - follow the PrettyPrinter API. This applies to the old way (functions) too. - If printer is an object, __call__ is a method of two arguments: - self, and the value to be pretty-printed. See PrettyPrinter. - """ - - # Watch for both __name__ and name. - # Functions get the former for free, but we don't want to use an - # attribute named __foo__ for pretty-printers-as-objects. - # If printer has both, we use `name'. - if not hasattr(printer, "__name__") and not hasattr(printer, "name"): - raise TypeError("printer missing attribute: name") - if hasattr(printer, "name") and not hasattr(printer, "enabled"): - raise TypeError("printer missing attribute: enabled") - if not hasattr(printer, "__call__"): - raise TypeError("printer missing attribute: __call__") - - if obj is None: - if gdb.parameter("verbose"): - gdb.write("Registering global %s pretty-printer ...\n" % name) - obj = gdb - else: - if gdb.parameter("verbose"): - gdb.write("Registering %s pretty-printer for %s ...\n" % - (printer.name, obj.filename)) - - if hasattr(printer, "name"): - if not isinstance(printer.name, basestring): - raise TypeError("printer name is not a string") - # If printer provides a name, make sure it doesn't contain ";". - # Semicolon is used by the info/enable/disable pretty-printer commands - # to delimit subprinters. - if printer.name.find(";") >= 0: - raise ValueError("semicolon ';' in printer name") - # Also make sure the name is unique. - # Alas, we can't do the same for functions and __name__, they could - # all have a canonical name like "lookup_function". - # PERF: gdb records printers in a list, making this inefficient. - i = 0 - for p in obj.pretty_printers: - if hasattr(p, "name") and p.name == printer.name: - if replace: - del obj.pretty_printers[i] - break - else: - raise RuntimeError("pretty-printer already registered: %s" % - printer.name) - i = i + 1 - - obj.pretty_printers.insert(0, printer) - - -class RegexpCollectionPrettyPrinter(PrettyPrinter): - """Class for implementing a collection of regular-expression based pretty-printers. - - Intended usage: - - pretty_printer = RegexpCollectionPrettyPrinter("my_library") - pretty_printer.add_printer("myclass1", "^myclass1$", MyClass1Printer) - ... - pretty_printer.add_printer("myclassN", "^myclassN$", MyClassNPrinter) - register_pretty_printer(obj, pretty_printer) - """ - - class RegexpSubprinter(SubPrettyPrinter): - def __init__(self, name, regexp, gen_printer): - super(RegexpCollectionPrettyPrinter.RegexpSubprinter, self).__init__(name) - self.regexp = regexp - self.gen_printer = gen_printer - self.compiled_re = re.compile(regexp) - - def __init__(self, name): - super(RegexpCollectionPrettyPrinter, self).__init__(name, []) - - def add_printer(self, name, regexp, gen_printer): - """Add a printer to the list. - - The printer is added to the end of the list. - - Arguments: - name: The name of the subprinter. - regexp: The regular expression, as a string. - gen_printer: A function/method that given a value returns an - object to pretty-print it. - - Returns: - Nothing. - """ - - # NOTE: A previous version made the name of each printer the regexp. - # That makes it awkward to pass to the enable/disable commands (it's - # cumbersome to make a regexp of a regexp). So now the name is a - # separate parameter. - - self.subprinters.append(self.RegexpSubprinter(name, regexp, - gen_printer)) - - def __call__(self, val): - """Lookup the pretty-printer for the provided value.""" - - # Get the type name. - typename = gdb.types.get_basic_type(val.type).tag - if not typename: - return None - - # Iterate over table of type regexps to determine - # if a printer is registered for that type. - # Return an instantiation of the printer if found. - for printer in self.subprinters: - if printer.enabled and printer.compiled_re.search(typename): - return printer.gen_printer(val) - - # Cannot find a pretty printer. Return None. - return None - -# A helper class for printing enum types. This class is instantiated -# with a list of enumerators to print a particular Value. -class _EnumInstance: - def __init__(self, enumerators, val): - self.enumerators = enumerators - self.val = val - - def to_string(self): - flag_list = [] - v = long(self.val) - any_found = False - for (e_name, e_value) in self.enumerators: - if v & e_value != 0: - flag_list.append(e_name) - v = v & ~e_value - any_found = True - if not any_found or v != 0: - # Leftover value. - flag_list.append('<unknown: 0x%x>' % v) - return "0x%x [%s]" % (self.val, " | ".join(flag_list)) - -class FlagEnumerationPrinter(PrettyPrinter): - """A pretty-printer which can be used to print a flag-style enumeration. - A flag-style enumeration is one where the enumerators are or'd - together to create values. The new printer will print these - symbolically using '|' notation. The printer must be registered - manually. This printer is most useful when an enum is flag-like, - but has some overlap. GDB's built-in printing will not handle - this case, but this printer will attempt to.""" - - def __init__(self, enum_type): - super(FlagEnumerationPrinter, self).__init__(enum_type) - self.initialized = False - - def __call__(self, val): - if not self.initialized: - self.initialized = True - flags = gdb.lookup_type(self.name) - self.enumerators = [] - for field in flags.fields(): - self.enumerators.append((field.name, field.enumval)) - # Sorting the enumerators by value usually does the right - # thing. - self.enumerators.sort(key = lambda x: x.enumval) - - if self.enabled: - return _EnumInstance(self.enumerators, val) - else: - return None diff --git a/share/gdb/python/gdb/prompt.py b/share/gdb/python/gdb/prompt.py deleted file mode 100644 index d99f2ea..0000000 --- a/share/gdb/python/gdb/prompt.py +++ /dev/null @@ -1,148 +0,0 @@ -# Extended prompt utilities. -# 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/>. - -""" Extended prompt library functions.""" - -import gdb -import os - -def _prompt_pwd(ignore): - "The current working directory." - return os.getcwdu() - -def _prompt_object_attr(func, what, attr, nattr): - """Internal worker for fetching GDB attributes.""" - if attr is None: - attr = nattr - try: - obj = func() - except gdb.error: - return '<no %s>' % what - if hasattr(obj, attr): - result = getattr(obj, attr) - if callable(result): - result = result() - return result - else: - return '<no attribute %s on current %s>' % (attr, what) - -def _prompt_frame(attr): - "The selected frame; an argument names a frame parameter." - return _prompt_object_attr(gdb.selected_frame, 'frame', attr, 'name') - -def _prompt_thread(attr): - "The selected thread; an argument names a thread parameter." - return _prompt_object_attr(gdb.selected_thread, 'thread', attr, 'num') - -def _prompt_version(attr): - "The version of GDB." - return gdb.VERSION - -def _prompt_esc(attr): - "The ESC character." - return '\033' - -def _prompt_bs(attr): - "A backslash." - return '\\' - -def _prompt_n(attr): - "A newline." - return '\n' - -def _prompt_r(attr): - "A carriage return." - return '\r' - -def _prompt_param(attr): - "A parameter's value; the argument names the parameter." - return gdb.parameter(attr) - -def _prompt_noprint_begin(attr): - "Begins a sequence of non-printing characters." - return '\001' - -def _prompt_noprint_end(attr): - "Ends a sequence of non-printing characters." - return '\002' - -prompt_substitutions = { - 'e': _prompt_esc, - '\\': _prompt_bs, - 'n': _prompt_n, - 'r': _prompt_r, - 'v': _prompt_version, - 'w': _prompt_pwd, - 'f': _prompt_frame, - 't': _prompt_thread, - 'p': _prompt_param, - '[': _prompt_noprint_begin, - ']': _prompt_noprint_end -} - -def prompt_help(): - """Generate help dynamically from the __doc__ strings of attribute - functions.""" - - result = '' - keys = sorted (prompt_substitutions.keys()) - for key in keys: - result += ' \\%s\t%s\n' % (key, prompt_substitutions[key].__doc__) - result += """ -A substitution can be used in a simple form, like "\\f". -An argument can also be passed to it, like "\\f{name}". -The meaning of the argument depends on the particular substitution.""" - return result - -def substitute_prompt(prompt): - "Perform substitutions on PROMPT." - - result = '' - plen = len(prompt) - i = 0 - while i < plen: - if prompt[i] == '\\': - i = i + 1 - if i >= plen: - break - cmdch = prompt[i] - - if cmdch in prompt_substitutions: - cmd = prompt_substitutions[cmdch] - - if i + 1 < plen and prompt[i + 1] == '{': - j = i + 1 - while j < plen and prompt[j] != '}': - j = j + 1 - # Just ignore formatting errors. - if j >= plen or prompt[j] != '}': - arg = None - else: - arg = prompt[i + 2 : j] - i = j - else: - arg = None - result += str(cmd(arg)) - else: - # Unrecognized escapes are turned into the escaped - # character itself. - result += prompt[i] - else: - result += prompt[i] - - i = i + 1 - - return result diff --git a/share/gdb/python/gdb/types.py b/share/gdb/python/gdb/types.py deleted file mode 100644 index 5fa4eab..0000000 --- a/share/gdb/python/gdb/types.py +++ /dev/null @@ -1,176 +0,0 @@ -# Type utilities. -# 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 -# 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/>. - -"""Utilities for working with gdb.Types.""" - -import gdb - - -def get_basic_type(type_): - """Return the "basic" type of a type. - - Arguments: - type_: The type to reduce to its basic type. - - Returns: - type_ with const/volatile is stripped away, - and typedefs/references converted to the underlying type. - """ - - while (type_.code == gdb.TYPE_CODE_REF or - type_.code == gdb.TYPE_CODE_TYPEDEF): - if type_.code == gdb.TYPE_CODE_REF: - type_ = type_.target() - else: - type_ = type_.strip_typedefs() - return type_.unqualified() - - -def has_field(type_, field): - """Return True if a type has the specified field. - - Arguments: - type_: The type to examine. - It must be one of gdb.TYPE_CODE_STRUCT, gdb.TYPE_CODE_UNION. - field: The name of the field to look up. - - Returns: - True if the field is present either in type_ or any baseclass. - - Raises: - TypeError: The type is not a struct or union. - """ - - type_ = get_basic_type(type_) - if (type_.code != gdb.TYPE_CODE_STRUCT and - type_.code != gdb.TYPE_CODE_UNION): - raise TypeError("not a struct or union") - for f in type_.fields(): - if f.is_base_class: - if has_field(f.type, field): - return True - else: - # NOTE: f.name could be None - if f.name == field: - return True - return False - - -def make_enum_dict(enum_type): - """Return a dictionary from a program's enum type. - - Arguments: - enum_type: The enum to compute the dictionary for. - - Returns: - The dictionary of the enum. - - Raises: - TypeError: The type is not an enum. - """ - - if enum_type.code != gdb.TYPE_CODE_ENUM: - raise TypeError("not an enum type") - enum_dict = {} - for field in enum_type.fields(): - # The enum's value is stored in "enumval". - enum_dict[field.name] = field.enumval - return enum_dict - - -def deep_items (type_): - """Return an iterator that recursively traverses anonymous fields. - - Arguments: - type_: The type to traverse. It should be one of - gdb.TYPE_CODE_STRUCT or gdb.TYPE_CODE_UNION. - - Returns: - an iterator similar to gdb.Type.iteritems(), i.e., it returns - pairs of key, value, but for any anonymous struct or union - field that field is traversed recursively, depth-first. - """ - for k, v in type_.iteritems (): - if k: - yield k, v - else: - for i in deep_items (v.type): - yield i - -class TypePrinter(object): - """The base class for type printers. - - Instances of this type can be used to substitute type names during - 'ptype'. - - A type printer must have at least 'name' and 'enabled' attributes, - and supply an 'instantiate' method. - - The 'instantiate' method must either return None, or return an - object which has a 'recognize' method. This method must accept a - gdb.Type argument and either return None, meaning that the type - was not recognized, or a string naming the type. - """ - - def __init__(self, name): - self.name = name - self.enabled = True - - def instantiate(self): - return None - -# Helper function for computing the list of type recognizers. -def _get_some_type_recognizers(result, plist): - for printer in plist: - if printer.enabled: - inst = printer.instantiate() - if inst is not None: - result.append(inst) - return None - -def get_type_recognizers(): - "Return a list of the enabled type recognizers for the current context." - result = [] - - # First try the objfiles. - for objfile in gdb.objfiles(): - _get_some_type_recognizers(result, objfile.type_printers) - # Now try the program space. - _get_some_type_recognizers(result, gdb.current_progspace().type_printers) - # Finally, globals. - _get_some_type_recognizers(result, gdb.type_printers) - - return result - -def apply_type_recognizers(recognizers, type_obj): - """Apply the given list of type recognizers to the type TYPE_OBJ. - If any recognizer in the list recognizes TYPE_OBJ, returns the name - given by the recognizer. Otherwise, this returns None.""" - for r in recognizers: - result = r.recognize(type_obj) - if result is not None: - return result - return None - -def register_type_printer(locus, printer): - """Register a type printer. - PRINTER is the type printer instance. - LOCUS is either an objfile, a program space, or None, indicating - global registration.""" - - if locus is None: - locus = gdb - locus.type_printers.insert(0, printer) diff --git a/share/gdb/syscalls/amd64-linux.xml b/share/gdb/syscalls/amd64-linux.xml deleted file mode 100644 index 6a04218..0000000 --- a/share/gdb/syscalls/amd64-linux.xml +++ /dev/null @@ -1,314 +0,0 @@ -<?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. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/x86/include/asm/unistd_64.h - - The file mentioned above belongs to the Linux Kernel. --> - -<syscalls_info> - <syscall name="read" number="0"/> - <syscall name="write" number="1"/> - <syscall name="open" number="2"/> - <syscall name="close" number="3"/> - <syscall name="stat" number="4"/> - <syscall name="fstat" number="5"/> - <syscall name="lstat" number="6"/> - <syscall name="poll" number="7"/> - <syscall name="lseek" number="8"/> - <syscall name="mmap" number="9"/> - <syscall name="mprotect" number="10"/> - <syscall name="munmap" number="11"/> - <syscall name="brk" number="12"/> - <syscall name="rt_sigaction" number="13"/> - <syscall name="rt_sigprocmask" number="14"/> - <syscall name="rt_sigreturn" number="15"/> - <syscall name="ioctl" number="16"/> - <syscall name="pread64" number="17"/> - <syscall name="pwrite64" number="18"/> - <syscall name="readv" number="19"/> - <syscall name="writev" number="20"/> - <syscall name="access" number="21"/> - <syscall name="pipe" number="22"/> - <syscall name="select" number="23"/> - <syscall name="sched_yield" number="24"/> - <syscall name="mremap" number="25"/> - <syscall name="msync" number="26"/> - <syscall name="mincore" number="27"/> - <syscall name="madvise" number="28"/> - <syscall name="shmget" number="29"/> - <syscall name="shmat" number="30"/> - <syscall name="shmctl" number="31"/> - <syscall name="dup" number="32"/> - <syscall name="dup2" number="33"/> - <syscall name="pause" number="34"/> - <syscall name="nanosleep" number="35"/> - <syscall name="getitimer" number="36"/> - <syscall name="alarm" number="37"/> - <syscall name="setitimer" number="38"/> - <syscall name="getpid" number="39"/> - <syscall name="sendfile" number="40"/> - <syscall name="socket" number="41"/> - <syscall name="connect" number="42"/> - <syscall name="accept" number="43"/> - <syscall name="sendto" number="44"/> - <syscall name="recvfrom" number="45"/> - <syscall name="sendmsg" number="46"/> - <syscall name="recvmsg" number="47"/> - <syscall name="shutdown" number="48"/> - <syscall name="bind" number="49"/> - <syscall name="listen" number="50"/> - <syscall name="getsockname" number="51"/> - <syscall name="getpeername" number="52"/> - <syscall name="socketpair" number="53"/> - <syscall name="setsockopt" number="54"/> - <syscall name="getsockopt" number="55"/> - <syscall name="clone" number="56"/> - <syscall name="fork" number="57"/> - <syscall name="vfork" number="58"/> - <syscall name="execve" number="59"/> - <syscall name="exit" number="60"/> - <syscall name="wait4" number="61"/> - <syscall name="kill" number="62"/> - <syscall name="uname" number="63"/> - <syscall name="semget" number="64"/> - <syscall name="semop" number="65"/> - <syscall name="semctl" number="66"/> - <syscall name="shmdt" number="67"/> - <syscall name="msgget" number="68"/> - <syscall name="msgsnd" number="69"/> - <syscall name="msgrcv" number="70"/> - <syscall name="msgctl" number="71"/> - <syscall name="fcntl" number="72"/> - <syscall name="flock" number="73"/> - <syscall name="fsync" number="74"/> - <syscall name="fdatasync" number="75"/> - <syscall name="truncate" number="76"/> - <syscall name="ftruncate" number="77"/> - <syscall name="getdents" number="78"/> - <syscall name="getcwd" number="79"/> - <syscall name="chdir" number="80"/> - <syscall name="fchdir" number="81"/> - <syscall name="rename" number="82"/> - <syscall name="mkdir" number="83"/> - <syscall name="rmdir" number="84"/> - <syscall name="creat" number="85"/> - <syscall name="link" number="86"/> - <syscall name="unlink" number="87"/> - <syscall name="symlink" number="88"/> - <syscall name="readlink" number="89"/> - <syscall name="chmod" number="90"/> - <syscall name="fchmod" number="91"/> - <syscall name="chown" number="92"/> - <syscall name="fchown" number="93"/> - <syscall name="lchown" number="94"/> - <syscall name="umask" number="95"/> - <syscall name="gettimeofday" number="96"/> - <syscall name="getrlimit" number="97"/> - <syscall name="getrusage" number="98"/> - <syscall name="sysinfo" number="99"/> - <syscall name="times" number="100"/> - <syscall name="ptrace" number="101"/> - <syscall name="getuid" number="102"/> - <syscall name="syslog" number="103"/> - <syscall name="getgid" number="104"/> - <syscall name="setuid" number="105"/> - <syscall name="setgid" number="106"/> - <syscall name="geteuid" number="107"/> - <syscall name="getegid" number="108"/> - <syscall name="setpgid" number="109"/> - <syscall name="getppid" number="110"/> - <syscall name="getpgrp" number="111"/> - <syscall name="setsid" number="112"/> - <syscall name="setreuid" number="113"/> - <syscall name="setregid" number="114"/> - <syscall name="getgroups" number="115"/> - <syscall name="setgroups" number="116"/> - <syscall name="setresuid" number="117"/> - <syscall name="getresuid" number="118"/> - <syscall name="setresgid" number="119"/> - <syscall name="getresgid" number="120"/> - <syscall name="getpgid" number="121"/> - <syscall name="setfsuid" number="122"/> - <syscall name="setfsgid" number="123"/> - <syscall name="getsid" number="124"/> - <syscall name="capget" number="125"/> - <syscall name="capset" number="126"/> - <syscall name="rt_sigpending" number="127"/> - <syscall name="rt_sigtimedwait" number="128"/> - <syscall name="rt_sigqueueinfo" number="129"/> - <syscall name="rt_sigsuspend" number="130"/> - <syscall name="sigaltstack" number="131"/> - <syscall name="utime" number="132"/> - <syscall name="mknod" number="133"/> - <syscall name="uselib" number="134"/> - <syscall name="personality" number="135"/> - <syscall name="ustat" number="136"/> - <syscall name="statfs" number="137"/> - <syscall name="fstatfs" number="138"/> - <syscall name="sysfs" number="139"/> - <syscall name="getpriority" number="140"/> - <syscall name="setpriority" number="141"/> - <syscall name="sched_setparam" number="142"/> - <syscall name="sched_getparam" number="143"/> - <syscall name="sched_setscheduler" number="144"/> - <syscall name="sched_getscheduler" number="145"/> - <syscall name="sched_get_priority_max" number="146"/> - <syscall name="sched_get_priority_min" number="147"/> - <syscall name="sched_rr_get_interval" number="148"/> - <syscall name="mlock" number="149"/> - <syscall name="munlock" number="150"/> - <syscall name="mlockall" number="151"/> - <syscall name="munlockall" number="152"/> - <syscall name="vhangup" number="153"/> - <syscall name="modify_ldt" number="154"/> - <syscall name="pivot_root" number="155"/> - <syscall name="_sysctl" number="156"/> - <syscall name="prctl" number="157"/> - <syscall name="arch_prctl" number="158"/> - <syscall name="adjtimex" number="159"/> - <syscall name="setrlimit" number="160"/> - <syscall name="chroot" number="161"/> - <syscall name="sync" number="162"/> - <syscall name="acct" number="163"/> - <syscall name="settimeofday" number="164"/> - <syscall name="mount" number="165"/> - <syscall name="umount2" number="166"/> - <syscall name="swapon" number="167"/> - <syscall name="swapoff" number="168"/> - <syscall name="reboot" number="169"/> - <syscall name="sethostname" number="170"/> - <syscall name="setdomainname" number="171"/> - <syscall name="iopl" number="172"/> - <syscall name="ioperm" number="173"/> - <syscall name="create_module" number="174"/> - <syscall name="init_module" number="175"/> - <syscall name="delete_module" number="176"/> - <syscall name="get_kernel_syms" number="177"/> - <syscall name="query_module" number="178"/> - <syscall name="quotactl" number="179"/> - <syscall name="nfsservctl" number="180"/> - <syscall name="getpmsg" number="181"/> - <syscall name="putpmsg" number="182"/> - <syscall name="afs_syscall" number="183"/> - <syscall name="tuxcall" number="184"/> - <syscall name="security" number="185"/> - <syscall name="gettid" number="186"/> - <syscall name="readahead" number="187"/> - <syscall name="setxattr" number="188"/> - <syscall name="lsetxattr" number="189"/> - <syscall name="fsetxattr" number="190"/> - <syscall name="getxattr" number="191"/> - <syscall name="lgetxattr" number="192"/> - <syscall name="fgetxattr" number="193"/> - <syscall name="listxattr" number="194"/> - <syscall name="llistxattr" number="195"/> - <syscall name="flistxattr" number="196"/> - <syscall name="removexattr" number="197"/> - <syscall name="lremovexattr" number="198"/> - <syscall name="fremovexattr" number="199"/> - <syscall name="tkill" number="200"/> - <syscall name="time" number="201"/> - <syscall name="futex" number="202"/> - <syscall name="sched_setaffinity" number="203"/> - <syscall name="sched_getaffinity" number="204"/> - <syscall name="set_thread_area" number="205"/> - <syscall name="io_setup" number="206"/> - <syscall name="io_destroy" number="207"/> - <syscall name="io_getevents" number="208"/> - <syscall name="io_submit" number="209"/> - <syscall name="io_cancel" number="210"/> - <syscall name="get_thread_area" number="211"/> - <syscall name="lookup_dcookie" number="212"/> - <syscall name="epoll_create" number="213"/> - <syscall name="epoll_ctl_old" number="214"/> - <syscall name="epoll_wait_old" number="215"/> - <syscall name="remap_file_pages" number="216"/> - <syscall name="getdents64" number="217"/> - <syscall name="set_tid_address" number="218"/> - <syscall name="restart_syscall" number="219"/> - <syscall name="semtimedop" number="220"/> - <syscall name="fadvise64" number="221"/> - <syscall name="timer_create" number="222"/> - <syscall name="timer_settime" number="223"/> - <syscall name="timer_gettime" number="224"/> - <syscall name="timer_getoverrun" number="225"/> - <syscall name="timer_delete" number="226"/> - <syscall name="clock_settime" number="227"/> - <syscall name="clock_gettime" number="228"/> - <syscall name="clock_getres" number="229"/> - <syscall name="clock_nanosleep" number="230"/> - <syscall name="exit_group" number="231"/> - <syscall name="epoll_wait" number="232"/> - <syscall name="epoll_ctl" number="233"/> - <syscall name="tgkill" number="234"/> - <syscall name="utimes" number="235"/> - <syscall name="vserver" number="236"/> - <syscall name="mbind" number="237"/> - <syscall name="set_mempolicy" number="238"/> - <syscall name="get_mempolicy" number="239"/> - <syscall name="mq_open" number="240"/> - <syscall name="mq_unlink" number="241"/> - <syscall name="mq_timedsend" number="242"/> - <syscall name="mq_timedreceive" number="243"/> - <syscall name="mq_notify" number="244"/> - <syscall name="mq_getsetattr" number="245"/> - <syscall name="kexec_load" number="246"/> - <syscall name="waitid" number="247"/> - <syscall name="add_key" number="248"/> - <syscall name="request_key" number="249"/> - <syscall name="keyctl" number="250"/> - <syscall name="ioprio_set" number="251"/> - <syscall name="ioprio_get" number="252"/> - <syscall name="inotify_init" number="253"/> - <syscall name="inotify_add_watch" number="254"/> - <syscall name="inotify_rm_watch" number="255"/> - <syscall name="migrate_pages" number="256"/> - <syscall name="openat" number="257"/> - <syscall name="mkdirat" number="258"/> - <syscall name="mknodat" number="259"/> - <syscall name="fchownat" number="260"/> - <syscall name="futimesat" number="261"/> - <syscall name="newfstatat" number="262"/> - <syscall name="unlinkat" number="263"/> - <syscall name="renameat" number="264"/> - <syscall name="linkat" number="265"/> - <syscall name="symlinkat" number="266"/> - <syscall name="readlinkat" number="267"/> - <syscall name="fchmodat" number="268"/> - <syscall name="faccessat" number="269"/> - <syscall name="pselect6" number="270"/> - <syscall name="ppoll" number="271"/> - <syscall name="unshare" number="272"/> - <syscall name="set_robust_list" number="273"/> - <syscall name="get_robust_list" number="274"/> - <syscall name="splice" number="275"/> - <syscall name="tee" number="276"/> - <syscall name="sync_file_range" number="277"/> - <syscall name="vmsplice" number="278"/> - <syscall name="move_pages" number="279"/> - <syscall name="utimensat" number="280"/> - <syscall name="epoll_pwait" number="281"/> - <syscall name="signalfd" number="282"/> - <syscall name="timerfd_create" number="283"/> - <syscall name="eventfd" number="284"/> - <syscall name="fallocate" number="285"/> - <syscall name="timerfd_settime" number="286"/> - <syscall name="timerfd_gettime" number="287"/> - <syscall name="accept4" number="288"/> - <syscall name="signalfd4" number="289"/> - <syscall name="eventfd2" number="290"/> - <syscall name="epoll_create1" number="291"/> - <syscall name="dup3" number="292"/> - <syscall name="pipe2" number="293"/> - <syscall name="inotify_init1" number="294"/> - <syscall name="preadv" number="295"/> - <syscall name="pwritev" number="296"/> -</syscalls_info> diff --git a/share/gdb/syscalls/arm-linux.xml b/share/gdb/syscalls/arm-linux.xml deleted file mode 100644 index 9d989bd..0000000 --- a/share/gdb/syscalls/arm-linux.xml +++ /dev/null @@ -1,398 +0,0 @@ -<?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 deleted file mode 100644 index 3ad3625..0000000 --- a/share/gdb/syscalls/gdb-syscalls.dtd +++ /dev/null @@ -1,14 +0,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. --> - -<!-- The root element of a syscall info is <syscalls-info>. --> - -<!ELEMENT syscalls-info (syscall*)> - -<!ELEMENT syscall EMPTY> -<!ATTLIST syscall - name CDATA #REQUIRED - number CDATA #REQUIRED> diff --git a/share/gdb/syscalls/i386-linux.xml b/share/gdb/syscalls/i386-linux.xml deleted file mode 100644 index 3d890bd..0000000 --- a/share/gdb/syscalls/i386-linux.xml +++ /dev/null @@ -1,340 +0,0 @@ -<?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. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/x86/include/asm/unistd_32.h - - The file mentioned above belongs to the Linux Kernel. --> - -<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"/> - <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"/> - <syscall name="oldstat" number="18"/> - <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"/> - <syscall name="pause" number="29"/> - <syscall name="utime" number="30"/> - <syscall name="stty" number="31"/> - <syscall name="gtty" number="32"/> - <syscall name="access" number="33"/> - <syscall name="nice" number="34"/> - <syscall name="ftime" number="35"/> - <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"/> - <syscall name="brk" number="45"/> - <syscall name="setgid" number="46"/> - <syscall name="getgid" number="47"/> - <syscall name="signal" number="48"/> - <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"/> - <syscall name="ioctl" number="54"/> - <syscall name="fcntl" number="55"/> - <syscall name="mpx" number="56"/> - <syscall name="setpgid" number="57"/> - <syscall name="ulimit" number="58"/> - <syscall name="oldolduname" number="59"/> - <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"/> - <syscall name="ssetmask" number="69"/> - <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"/> - <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"/> - <syscall name="statfs" number="99"/> - <syscall name="fstatfs" number="100"/> - <syscall name="ioperm" number="101"/> - <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"/> - <syscall name="iopl" number="110"/> - <syscall name="vhangup" number="111"/> - <syscall name="idle" number="112"/> - <syscall name="vm86old" 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"/> - <syscall name="adjtimex" number="124"/> - <syscall name="mprotect" number="125"/> - <syscall name="sigprocmask" number="126"/> - <syscall name="create_module" number="127"/> - <syscall name="init_module" number="128"/> - <syscall name="delete_module" number="129"/> - <syscall name="get_kernel_syms" number="130"/> - <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"/> - <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"/> - <syscall name="query_module" number="167"/> - <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="getpmsg" number="188"/> - <syscall name="putpmsg" number="189"/> - <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="pivot_root" number="217"/> - <syscall name="mincore" number="218"/> - <syscall name="madvise" number="219"/> - <syscall name="madvise1" number="220"/> - <syscall name="getdents64" number="221"/> - <syscall name="fcntl64" number="222"/> - <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="set_thread_area" number="243"/> - <syscall name="get_thread_area" number="244"/> - <syscall name="io_setup" number="245"/> - <syscall name="io_destroy" number="246"/> - <syscall name="io_getevents" number="247"/> - <syscall name="io_submit" number="248"/> - <syscall name="io_cancel" number="249"/> - <syscall name="fadvise64" number="250"/> - <syscall name="exit_group" number="252"/> - <syscall name="lookup_dcookie" number="253"/> - <syscall name="epoll_create" number="254"/> - <syscall name="epoll_ctl" number="255"/> - <syscall name="epoll_wait" number="256"/> - <syscall name="remap_file_pages" number="257"/> - <syscall name="set_tid_address" number="258"/> - <syscall name="timer_create" number="259"/> - <syscall name="timer_settime" number="260"/> - <syscall name="timer_gettime" number="261"/> - <syscall name="timer_getoverrun" number="262"/> - <syscall name="timer_delete" number="263"/> - <syscall name="clock_settime" number="264"/> - <syscall name="clock_gettime" number="265"/> - <syscall name="clock_getres" number="266"/> - <syscall name="clock_nanosleep" number="267"/> - <syscall name="statfs64" number="268"/> - <syscall name="fstatfs64" number="269"/> - <syscall name="tgkill" number="270"/> - <syscall name="utimes" number="271"/> - <syscall name="fadvise64_64" number="272"/> - <syscall name="vserver" number="273"/> - <syscall name="mbind" number="274"/> - <syscall name="get_mempolicy" number="275"/> - <syscall name="set_mempolicy" number="276"/> - <syscall name="mq_open" number="277"/> - <syscall name="mq_unlink" number="278"/> - <syscall name="mq_timedsend" number="279"/> - <syscall name="mq_timedreceive" number="280"/> - <syscall name="mq_notify" number="281"/> - <syscall name="mq_getsetattr" number="282"/> - <syscall name="kexec_load" number="283"/> - <syscall name="waitid" number="284"/> - <syscall name="add_key" number="286"/> - <syscall name="request_key" number="287"/> - <syscall name="keyctl" number="288"/> - <syscall name="ioprio_set" number="289"/> - <syscall name="ioprio_get" number="290"/> - <syscall name="inotify_init" number="291"/> - <syscall name="inotify_add_watch" number="292"/> - <syscall name="inotify_rm_watch" number="293"/> - <syscall name="migrate_pages" number="294"/> - <syscall name="openat" number="295"/> - <syscall name="mkdirat" number="296"/> - <syscall name="mknodat" number="297"/> - <syscall name="fchownat" number="298"/> - <syscall name="futimesat" number="299"/> - <syscall name="fstatat64" number="300"/> - <syscall name="unlinkat" number="301"/> - <syscall name="renameat" number="302"/> - <syscall name="linkat" number="303"/> - <syscall name="symlinkat" number="304"/> - <syscall name="readlinkat" number="305"/> - <syscall name="fchmodat" number="306"/> - <syscall name="faccessat" number="307"/> - <syscall name="pselect6" number="308"/> - <syscall name="ppoll" number="309"/> - <syscall name="unshare" number="310"/> - <syscall name="set_robust_list" number="311"/> - <syscall name="get_robust_list" number="312"/> - <syscall name="splice" number="313"/> - <syscall name="sync_file_range" number="314"/> - <syscall name="tee" number="315"/> - <syscall name="vmsplice" number="316"/> - <syscall name="move_pages" number="317"/> - <syscall name="getcpu" number="318"/> - <syscall name="epoll_pwait" number="319"/> - <syscall name="utimensat" number="320"/> - <syscall name="signalfd" number="321"/> - <syscall name="timerfd_create" number="322"/> - <syscall name="eventfd" number="323"/> - <syscall name="fallocate" number="324"/> - <syscall name="timerfd_settime" number="325"/> -</syscalls_info> diff --git a/share/gdb/syscalls/mips-n32-linux.xml b/share/gdb/syscalls/mips-n32-linux.xml deleted file mode 100644 index 5c7a95d..0000000 --- a/share/gdb/syscalls/mips-n32-linux.xml +++ /dev/null @@ -1,319 +0,0 @@ -<?xml version="1.0"?> -<!-- 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 - notice and this notice are preserved. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/mips/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<syscalls_info> - <syscall name="read" number="6000"/> - <syscall name="write" number="6001"/> - <syscall name="open" number="6002"/> - <syscall name="close" number="6003"/> - <syscall name="stat" number="6004"/> - <syscall name="fstat" number="6005"/> - <syscall name="lstat" number="6006"/> - <syscall name="poll" number="6007"/> - <syscall name="lseek" number="6008"/> - <syscall name="mmap" number="6009"/> - <syscall name="mprotect" number="6010"/> - <syscall name="munmap" number="6011"/> - <syscall name="brk" number="6012"/> - <syscall name="rt_sigaction" number="6013"/> - <syscall name="rt_sigprocmask" number="6014"/> - <syscall name="ioctl" number="6015"/> - <syscall name="pread64" number="6016"/> - <syscall name="pwrite64" number="6017"/> - <syscall name="readv" number="6018"/> - <syscall name="writev" number="6019"/> - <syscall name="access" number="6020"/> - <syscall name="pipe" number="6021"/> - <syscall name="_newselect" number="6022"/> - <syscall name="sched_yield" number="6023"/> - <syscall name="mremap" number="6024"/> - <syscall name="msync" number="6025"/> - <syscall name="mincore" number="6026"/> - <syscall name="madvise" number="6027"/> - <syscall name="shmget" number="6028"/> - <syscall name="shmat" number="6029"/> - <syscall name="shmctl" number="6030"/> - <syscall name="dup" number="6031"/> - <syscall name="dup2" number="6032"/> - <syscall name="pause" number="6033"/> - <syscall name="nanosleep" number="6034"/> - <syscall name="getitimer" number="6035"/> - <syscall name="setitimer" number="6036"/> - <syscall name="alarm" number="6037"/> - <syscall name="getpid" number="6038"/> - <syscall name="sendfile" number="6039"/> - <syscall name="socket" number="6040"/> - <syscall name="connect" number="6041"/> - <syscall name="accept" number="6042"/> - <syscall name="sendto" number="6043"/> - <syscall name="recvfrom" number="6044"/> - <syscall name="sendmsg" number="6045"/> - <syscall name="recvmsg" number="6046"/> - <syscall name="shutdown" number="6047"/> - <syscall name="bind" number="6048"/> - <syscall name="listen" number="6049"/> - <syscall name="getsockname" number="6050"/> - <syscall name="getpeername" number="6051"/> - <syscall name="socketpair" number="6052"/> - <syscall name="setsockopt" number="6053"/> - <syscall name="getsockopt" number="6054"/> - <syscall name="clone" number="6055"/> - <syscall name="fork" number="6056"/> - <syscall name="execve" number="6057"/> - <syscall name="exit" number="6058"/> - <syscall name="wait4" number="6059"/> - <syscall name="kill" number="6060"/> - <syscall name="uname" number="6061"/> - <syscall name="semget" number="6062"/> - <syscall name="semop" number="6063"/> - <syscall name="semctl" number="6064"/> - <syscall name="shmdt" number="6065"/> - <syscall name="msgget" number="6066"/> - <syscall name="msgsnd" number="6067"/> - <syscall name="msgrcv" number="6068"/> - <syscall name="msgctl" number="6069"/> - <syscall name="fcntl" number="6070"/> - <syscall name="flock" number="6071"/> - <syscall name="fsync" number="6072"/> - <syscall name="fdatasync" number="6073"/> - <syscall name="truncate" number="6074"/> - <syscall name="ftruncate" number="6075"/> - <syscall name="getdents" number="6076"/> - <syscall name="getcwd" number="6077"/> - <syscall name="chdir" number="6078"/> - <syscall name="fchdir" number="6079"/> - <syscall name="rename" number="6080"/> - <syscall name="mkdir" number="6081"/> - <syscall name="rmdir" number="6082"/> - <syscall name="creat" number="6083"/> - <syscall name="link" number="6084"/> - <syscall name="unlink" number="6085"/> - <syscall name="symlink" number="6086"/> - <syscall name="readlink" number="6087"/> - <syscall name="chmod" number="6088"/> - <syscall name="fchmod" number="6089"/> - <syscall name="chown" number="6090"/> - <syscall name="fchown" number="6091"/> - <syscall name="lchown" number="6092"/> - <syscall name="umask" number="6093"/> - <syscall name="gettimeofday" number="6094"/> - <syscall name="getrlimit" number="6095"/> - <syscall name="getrusage" number="6096"/> - <syscall name="sysinfo" number="6097"/> - <syscall name="times" number="6098"/> - <syscall name="ptrace" number="6099"/> - <syscall name="getuid" number="6100"/> - <syscall name="syslog" number="6101"/> - <syscall name="getgid" number="6102"/> - <syscall name="setuid" number="6103"/> - <syscall name="setgid" number="6104"/> - <syscall name="geteuid" number="6105"/> - <syscall name="getegid" number="6106"/> - <syscall name="setpgid" number="6107"/> - <syscall name="getppid" number="6108"/> - <syscall name="getpgrp" number="6109"/> - <syscall name="setsid" number="6110"/> - <syscall name="setreuid" number="6111"/> - <syscall name="setregid" number="6112"/> - <syscall name="getgroups" number="6113"/> - <syscall name="setgroups" number="6114"/> - <syscall name="setresuid" number="6115"/> - <syscall name="getresuid" number="6116"/> - <syscall name="setresgid" number="6117"/> - <syscall name="getresgid" number="6118"/> - <syscall name="getpgid" number="6119"/> - <syscall name="setfsuid" number="6120"/> - <syscall name="setfsgid" number="6121"/> - <syscall name="getsid" number="6122"/> - <syscall name="capget" number="6123"/> - <syscall name="capset" number="6124"/> - <syscall name="rt_sigpending" number="6125"/> - <syscall name="rt_sigtimedwait" number="6126"/> - <syscall name="rt_sigqueueinfo" number="6127"/> - <syscall name="rt_sigsuspend" number="6128"/> - <syscall name="sigaltstack" number="6129"/> - <syscall name="utime" number="6130"/> - <syscall name="mknod" number="6131"/> - <syscall name="personality" number="6132"/> - <syscall name="ustat" number="6133"/> - <syscall name="statfs" number="6134"/> - <syscall name="fstatfs" number="6135"/> - <syscall name="sysfs" number="6136"/> - <syscall name="getpriority" number="6137"/> - <syscall name="setpriority" number="6138"/> - <syscall name="sched_setparam" number="6139"/> - <syscall name="sched_getparam" number="6140"/> - <syscall name="sched_setscheduler" number="6141"/> - <syscall name="sched_getscheduler" number="6142"/> - <syscall name="sched_get_priority_max" number="6143"/> - <syscall name="sched_get_priority_min" number="6144"/> - <syscall name="sched_rr_get_interval" number="6145"/> - <syscall name="mlock" number="6146"/> - <syscall name="munlock" number="6147"/> - <syscall name="mlockall" number="6148"/> - <syscall name="munlockall" number="6149"/> - <syscall name="vhangup" number="6150"/> - <syscall name="pivot_root" number="6151"/> - <syscall name="_sysctl" number="6152"/> - <syscall name="prctl" number="6153"/> - <syscall name="adjtimex" number="6154"/> - <syscall name="setrlimit" number="6155"/> - <syscall name="chroot" number="6156"/> - <syscall name="sync" number="6157"/> - <syscall name="acct" number="6158"/> - <syscall name="settimeofday" number="6159"/> - <syscall name="mount" number="6160"/> - <syscall name="umount2" number="6161"/> - <syscall name="swapon" number="6162"/> - <syscall name="swapoff" number="6163"/> - <syscall name="reboot" number="6164"/> - <syscall name="sethostname" number="6165"/> - <syscall name="setdomainname" number="6166"/> - <syscall name="create_module" number="6167"/> - <syscall name="init_module" number="6168"/> - <syscall name="delete_module" number="6169"/> - <syscall name="get_kernel_syms" number="6170"/> - <syscall name="query_module" number="6171"/> - <syscall name="quotactl" number="6172"/> - <syscall name="nfsservctl" number="6173"/> - <syscall name="getpmsg" number="6174"/> - <syscall name="putpmsg" number="6175"/> - <syscall name="afs_syscall" number="6176"/> - <syscall name="reserved177" number="6177"/> - <syscall name="gettid" number="6178"/> - <syscall name="readahead" number="6179"/> - <syscall name="setxattr" number="6180"/> - <syscall name="lsetxattr" number="6181"/> - <syscall name="fsetxattr" number="6182"/> - <syscall name="getxattr" number="6183"/> - <syscall name="lgetxattr" number="6184"/> - <syscall name="fgetxattr" number="6185"/> - <syscall name="listxattr" number="6186"/> - <syscall name="llistxattr" number="6187"/> - <syscall name="flistxattr" number="6188"/> - <syscall name="removexattr" number="6189"/> - <syscall name="lremovexattr" number="6190"/> - <syscall name="fremovexattr" number="6191"/> - <syscall name="tkill" number="6192"/> - <syscall name="reserved193" number="6193"/> - <syscall name="futex" number="6194"/> - <syscall name="sched_setaffinity" number="6195"/> - <syscall name="sched_getaffinity" number="6196"/> - <syscall name="cacheflush" number="6197"/> - <syscall name="cachectl" number="6198"/> - <syscall name="sysmips" number="6199"/> - <syscall name="io_setup" number="6200"/> - <syscall name="io_destroy" number="6201"/> - <syscall name="io_getevents" number="6202"/> - <syscall name="io_submit" number="6203"/> - <syscall name="io_cancel" number="6204"/> - <syscall name="exit_group" number="6205"/> - <syscall name="lookup_dcookie" number="6206"/> - <syscall name="epoll_create" number="6207"/> - <syscall name="epoll_ctl" number="6208"/> - <syscall name="epoll_wait" number="6209"/> - <syscall name="remap_file_pages" number="6210"/> - <syscall name="rt_sigreturn" number="6211"/> - <syscall name="fcntl64" number="6212"/> - <syscall name="set_tid_address" number="6213"/> - <syscall name="restart_syscall" number="6214"/> - <syscall name="semtimedop" number="6215"/> - <syscall name="fadvise64" number="6216"/> - <syscall name="statfs64" number="6217"/> - <syscall name="fstatfs64" number="6218"/> - <syscall name="sendfile64" number="6219"/> - <syscall name="timer_create" number="6220"/> - <syscall name="timer_settime" number="6221"/> - <syscall name="timer_gettime" number="6222"/> - <syscall name="timer_getoverrun" number="6223"/> - <syscall name="timer_delete" number="6224"/> - <syscall name="clock_settime" number="6225"/> - <syscall name="clock_gettime" number="6226"/> - <syscall name="clock_getres" number="6227"/> - <syscall name="clock_nanosleep" number="6228"/> - <syscall name="tgkill" number="6229"/> - <syscall name="utimes" number="6230"/> - <syscall name="mbind" number="6231"/> - <syscall name="get_mempolicy" number="6232"/> - <syscall name="set_mempolicy" number="6233"/> - <syscall name="mq_open" number="6234"/> - <syscall name="mq_unlink" number="6235"/> - <syscall name="mq_timedsend" number="6236"/> - <syscall name="mq_timedreceive" number="6237"/> - <syscall name="mq_notify" number="6238"/> - <syscall name="mq_getsetattr" number="6239"/> - <syscall name="vserver" number="6240"/> - <syscall name="waitid" number="6241"/> - <syscall name="add_key" number="6243"/> - <syscall name="request_key" number="6244"/> - <syscall name="keyctl" number="6245"/> - <syscall name="set_thread_area" number="6246"/> - <syscall name="inotify_init" number="6247"/> - <syscall name="inotify_add_watch" number="6248"/> - <syscall name="inotify_rm_watch" number="6249"/> - <syscall name="migrate_pages" number="6250"/> - <syscall name="openat" number="6251"/> - <syscall name="mkdirat" number="6252"/> - <syscall name="mknodat" number="6253"/> - <syscall name="fchownat" number="6254"/> - <syscall name="futimesat" number="6255"/> - <syscall name="newfstatat" number="6256"/> - <syscall name="unlinkat" number="6257"/> - <syscall name="renameat" number="6258"/> - <syscall name="linkat" number="6259"/> - <syscall name="symlinkat" number="6260"/> - <syscall name="readlinkat" number="6261"/> - <syscall name="fchmodat" number="6262"/> - <syscall name="faccessat" number="6263"/> - <syscall name="pselect6" number="6264"/> - <syscall name="ppoll" number="6265"/> - <syscall name="unshare" number="6266"/> - <syscall name="splice" number="6267"/> - <syscall name="sync_file_range" number="6268"/> - <syscall name="tee" number="6269"/> - <syscall name="vmsplice" number="6270"/> - <syscall name="move_pages" number="6271"/> - <syscall name="set_robust_list" number="6272"/> - <syscall name="get_robust_list" number="6273"/> - <syscall name="kexec_load" number="6274"/> - <syscall name="getcpu" number="6275"/> - <syscall name="epoll_pwait" number="6276"/> - <syscall name="ioprio_set" number="6277"/> - <syscall name="ioprio_get" number="6278"/> - <syscall name="utimensat" number="6279"/> - <syscall name="signalfd" number="6280"/> - <syscall name="timerfd" number="6281"/> - <syscall name="eventfd" number="6282"/> - <syscall name="fallocate" number="6283"/> - <syscall name="timerfd_create" number="6284"/> - <syscall name="timerfd_gettime" number="6285"/> - <syscall name="timerfd_settime" number="6286"/> - <syscall name="signalfd4" number="6287"/> - <syscall name="eventfd2" number="6288"/> - <syscall name="epoll_create1" number="6289"/> - <syscall name="dup3" number="6290"/> - <syscall name="pipe2" number="6291"/> - <syscall name="inotify_init1" number="6292"/> - <syscall name="preadv" number="6293"/> - <syscall name="pwritev" number="6294"/> - <syscall name="rt_tgsigqueueinfo" number="6295"/> - <syscall name="perf_event_open" number="6296"/> - <syscall name="accept4" number="6297"/> - <syscall name="recvmmsg" number="6298"/> - <syscall name="getdents64" number="6299"/> - <syscall name="fanotify_init" number="6300"/> - <syscall name="fanotify_mark" number="6301"/> - <syscall name="prlimit64" number="6302"/> -</syscalls_info> diff --git a/share/gdb/syscalls/mips-n64-linux.xml b/share/gdb/syscalls/mips-n64-linux.xml deleted file mode 100644 index 0a81573..0000000 --- a/share/gdb/syscalls/mips-n64-linux.xml +++ /dev/null @@ -1,312 +0,0 @@ -<?xml version="1.0"?> -<!-- 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 - notice and this notice are preserved. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/mips/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<syscalls_info> - <syscall name="read" number="5000"/> - <syscall name="write" number="5001"/> - <syscall name="open" number="5002"/> - <syscall name="close" number="5003"/> - <syscall name="stat" number="5004"/> - <syscall name="fstat" number="5005"/> - <syscall name="lstat" number="5006"/> - <syscall name="poll" number="5007"/> - <syscall name="lseek" number="5008"/> - <syscall name="mmap" number="5009"/> - <syscall name="mprotect" number="5010"/> - <syscall name="munmap" number="5011"/> - <syscall name="brk" number="5012"/> - <syscall name="rt_sigaction" number="5013"/> - <syscall name="rt_sigprocmask" number="5014"/> - <syscall name="ioctl" number="5015"/> - <syscall name="pread64" number="5016"/> - <syscall name="pwrite64" number="5017"/> - <syscall name="readv" number="5018"/> - <syscall name="writev" number="5019"/> - <syscall name="access" number="5020"/> - <syscall name="pipe" number="5021"/> - <syscall name="_newselect" number="5022"/> - <syscall name="sched_yield" number="5023"/> - <syscall name="mremap" number="5024"/> - <syscall name="msync" number="5025"/> - <syscall name="mincore" number="5026"/> - <syscall name="madvise" number="5027"/> - <syscall name="shmget" number="5028"/> - <syscall name="shmat" number="5029"/> - <syscall name="shmctl" number="5030"/> - <syscall name="dup" number="5031"/> - <syscall name="dup2" number="5032"/> - <syscall name="pause" number="5033"/> - <syscall name="nanosleep" number="5034"/> - <syscall name="getitimer" number="5035"/> - <syscall name="setitimer" number="5036"/> - <syscall name="alarm" number="5037"/> - <syscall name="getpid" number="5038"/> - <syscall name="sendfile" number="5039"/> - <syscall name="socket" number="5040"/> - <syscall name="connect" number="5041"/> - <syscall name="accept" number="5042"/> - <syscall name="sendto" number="5043"/> - <syscall name="recvfrom" number="5044"/> - <syscall name="sendmsg" number="5045"/> - <syscall name="recvmsg" number="5046"/> - <syscall name="shutdown" number="5047"/> - <syscall name="bind" number="5048"/> - <syscall name="listen" number="5049"/> - <syscall name="getsockname" number="5050"/> - <syscall name="getpeername" number="5051"/> - <syscall name="socketpair" number="5052"/> - <syscall name="setsockopt" number="5053"/> - <syscall name="getsockopt" number="5054"/> - <syscall name="clone" number="5055"/> - <syscall name="fork" number="5056"/> - <syscall name="execve" number="5057"/> - <syscall name="exit" number="5058"/> - <syscall name="wait4" number="5059"/> - <syscall name="kill" number="5060"/> - <syscall name="uname" number="5061"/> - <syscall name="semget" number="5062"/> - <syscall name="semop" number="5063"/> - <syscall name="semctl" number="5064"/> - <syscall name="shmdt" number="5065"/> - <syscall name="msgget" number="5066"/> - <syscall name="msgsnd" number="5067"/> - <syscall name="msgrcv" number="5068"/> - <syscall name="msgctl" number="5069"/> - <syscall name="fcntl" number="5070"/> - <syscall name="flock" number="5071"/> - <syscall name="fsync" number="5072"/> - <syscall name="fdatasync" number="5073"/> - <syscall name="truncate" number="5074"/> - <syscall name="ftruncate" number="5075"/> - <syscall name="getdents" number="5076"/> - <syscall name="getcwd" number="5077"/> - <syscall name="chdir" number="5078"/> - <syscall name="fchdir" number="5079"/> - <syscall name="rename" number="5080"/> - <syscall name="mkdir" number="5081"/> - <syscall name="rmdir" number="5082"/> - <syscall name="creat" number="5083"/> - <syscall name="link" number="5084"/> - <syscall name="unlink" number="5085"/> - <syscall name="symlink" number="5086"/> - <syscall name="readlink" number="5087"/> - <syscall name="chmod" number="5088"/> - <syscall name="fchmod" number="5089"/> - <syscall name="chown" number="5090"/> - <syscall name="fchown" number="5091"/> - <syscall name="lchown" number="5092"/> - <syscall name="umask" number="5093"/> - <syscall name="gettimeofday" number="5094"/> - <syscall name="getrlimit" number="5095"/> - <syscall name="getrusage" number="5096"/> - <syscall name="sysinfo" number="5097"/> - <syscall name="times" number="5098"/> - <syscall name="ptrace" number="5099"/> - <syscall name="getuid" number="5100"/> - <syscall name="syslog" number="5101"/> - <syscall name="getgid" number="5102"/> - <syscall name="setuid" number="5103"/> - <syscall name="setgid" number="5104"/> - <syscall name="geteuid" number="5105"/> - <syscall name="getegid" number="5106"/> - <syscall name="setpgid" number="5107"/> - <syscall name="getppid" number="5108"/> - <syscall name="getpgrp" number="5109"/> - <syscall name="setsid" number="5110"/> - <syscall name="setreuid" number="5111"/> - <syscall name="setregid" number="5112"/> - <syscall name="getgroups" number="5113"/> - <syscall name="setgroups" number="5114"/> - <syscall name="setresuid" number="5115"/> - <syscall name="getresuid" number="5116"/> - <syscall name="setresgid" number="5117"/> - <syscall name="getresgid" number="5118"/> - <syscall name="getpgid" number="5119"/> - <syscall name="setfsuid" number="5120"/> - <syscall name="setfsgid" number="5121"/> - <syscall name="getsid" number="5122"/> - <syscall name="capget" number="5123"/> - <syscall name="capset" number="5124"/> - <syscall name="rt_sigpending" number="5125"/> - <syscall name="rt_sigtimedwait" number="5126"/> - <syscall name="rt_sigqueueinfo" number="5127"/> - <syscall name="rt_sigsuspend" number="5128"/> - <syscall name="sigaltstack" number="5129"/> - <syscall name="utime" number="5130"/> - <syscall name="mknod" number="5131"/> - <syscall name="personality" number="5132"/> - <syscall name="ustat" number="5133"/> - <syscall name="statfs" number="5134"/> - <syscall name="fstatfs" number="5135"/> - <syscall name="sysfs" number="5136"/> - <syscall name="getpriority" number="5137"/> - <syscall name="setpriority" number="5138"/> - <syscall name="sched_setparam" number="5139"/> - <syscall name="sched_getparam" number="5140"/> - <syscall name="sched_setscheduler" number="5141"/> - <syscall name="sched_getscheduler" number="5142"/> - <syscall name="sched_get_priority_max" number="5143"/> - <syscall name="sched_get_priority_min" number="5144"/> - <syscall name="sched_rr_get_interval" number="5145"/> - <syscall name="mlock" number="5146"/> - <syscall name="munlock" number="5147"/> - <syscall name="mlockall" number="5148"/> - <syscall name="munlockall" number="5149"/> - <syscall name="vhangup" number="5150"/> - <syscall name="pivot_root" number="5151"/> - <syscall name="_sysctl" number="5152"/> - <syscall name="prctl" number="5153"/> - <syscall name="adjtimex" number="5154"/> - <syscall name="setrlimit" number="5155"/> - <syscall name="chroot" number="5156"/> - <syscall name="sync" number="5157"/> - <syscall name="acct" number="5158"/> - <syscall name="settimeofday" number="5159"/> - <syscall name="mount" number="5160"/> - <syscall name="umount2" number="5161"/> - <syscall name="swapon" number="5162"/> - <syscall name="swapoff" number="5163"/> - <syscall name="reboot" number="5164"/> - <syscall name="sethostname" number="5165"/> - <syscall name="setdomainname" number="5166"/> - <syscall name="create_module" number="5167"/> - <syscall name="init_module" number="5168"/> - <syscall name="delete_module" number="5169"/> - <syscall name="get_kernel_syms" number="5170"/> - <syscall name="query_module" number="5171"/> - <syscall name="quotactl" number="5172"/> - <syscall name="nfsservctl" number="5173"/> - <syscall name="getpmsg" number="5174"/> - <syscall name="putpmsg" number="5175"/> - <syscall name="afs_syscall" number="5176"/> - <syscall name="gettid" number="5178"/> - <syscall name="readahead" number="5179"/> - <syscall name="setxattr" number="5180"/> - <syscall name="lsetxattr" number="5181"/> - <syscall name="fsetxattr" number="5182"/> - <syscall name="getxattr" number="5183"/> - <syscall name="lgetxattr" number="5184"/> - <syscall name="fgetxattr" number="5185"/> - <syscall name="listxattr" number="5186"/> - <syscall name="llistxattr" number="5187"/> - <syscall name="flistxattr" number="5188"/> - <syscall name="removexattr" number="5189"/> - <syscall name="lremovexattr" number="5190"/> - <syscall name="fremovexattr" number="5191"/> - <syscall name="tkill" number="5192"/> - <syscall name="futex" number="5194"/> - <syscall name="sched_setaffinity" number="5195"/> - <syscall name="sched_getaffinity" number="5196"/> - <syscall name="cacheflush" number="5197"/> - <syscall name="cachectl" number="5198"/> - <syscall name="sysmips" number="5199"/> - <syscall name="io_setup" number="5200"/> - <syscall name="io_destroy" number="5201"/> - <syscall name="io_getevents" number="5202"/> - <syscall name="io_submit" number="5203"/> - <syscall name="io_cancel" number="5204"/> - <syscall name="exit_group" number="5205"/> - <syscall name="lookup_dcookie" number="5206"/> - <syscall name="epoll_create" number="5207"/> - <syscall name="epoll_ctl" number="5208"/> - <syscall name="epoll_wait" number="5209"/> - <syscall name="remap_file_pages" number="5210"/> - <syscall name="rt_sigreturn" number="5211"/> - <syscall name="set_tid_address" number="5212"/> - <syscall name="restart_syscall" number="5213"/> - <syscall name="semtimedop" number="5214"/> - <syscall name="fadvise64" number="5215"/> - <syscall name="timer_create" number="5216"/> - <syscall name="timer_settime" number="5217"/> - <syscall name="timer_gettime" number="5218"/> - <syscall name="timer_getoverrun" number="5219"/> - <syscall name="timer_delete" number="5220"/> - <syscall name="clock_settime" number="5221"/> - <syscall name="clock_gettime" number="5222"/> - <syscall name="clock_getres" number="5223"/> - <syscall name="clock_nanosleep" number="5224"/> - <syscall name="tgkill" number="5225"/> - <syscall name="utimes" number="5226"/> - <syscall name="mbind" number="5227"/> - <syscall name="get_mempolicy" number="5228"/> - <syscall name="set_mempolicy" number="5229"/> - <syscall name="mq_open" number="5230"/> - <syscall name="mq_unlink" number="5231"/> - <syscall name="mq_timedsend" number="5232"/> - <syscall name="mq_timedreceive" number="5233"/> - <syscall name="mq_notify" number="5234"/> - <syscall name="mq_getsetattr" number="5235"/> - <syscall name="vserver" number="5236"/> - <syscall name="waitid" number="5237"/> - <syscall name="add_key" number="5239"/> - <syscall name="request_key" number="5240"/> - <syscall name="keyctl" number="5241"/> - <syscall name="set_thread_area" number="5242"/> - <syscall name="inotify_init" number="5243"/> - <syscall name="inotify_add_watch" number="5244"/> - <syscall name="inotify_rm_watch" number="5245"/> - <syscall name="migrate_pages" number="5246"/> - <syscall name="openat" number="5247"/> - <syscall name="mkdirat" number="5248"/> - <syscall name="mknodat" number="5249"/> - <syscall name="fchownat" number="5250"/> - <syscall name="futimesat" number="5251"/> - <syscall name="newfstatat" number="5252"/> - <syscall name="unlinkat" number="5253"/> - <syscall name="renameat" number="5254"/> - <syscall name="linkat" number="5255"/> - <syscall name="symlinkat" number="5256"/> - <syscall name="readlinkat" number="5257"/> - <syscall name="fchmodat" number="5258"/> - <syscall name="faccessat" number="5259"/> - <syscall name="pselect6" number="5260"/> - <syscall name="ppoll" number="5261"/> - <syscall name="unshare" number="5262"/> - <syscall name="splice" number="5263"/> - <syscall name="sync_file_range" number="5264"/> - <syscall name="tee" number="5265"/> - <syscall name="vmsplice" number="5266"/> - <syscall name="move_pages" number="5267"/> - <syscall name="set_robust_list" number="5268"/> - <syscall name="get_robust_list" number="5269"/> - <syscall name="kexec_load" number="5270"/> - <syscall name="getcpu" number="5271"/> - <syscall name="epoll_pwait" number="5272"/> - <syscall name="ioprio_set" number="5273"/> - <syscall name="ioprio_get" number="5274"/> - <syscall name="utimensat" number="5275"/> - <syscall name="signalfd" number="5276"/> - <syscall name="timerfd" number="5277"/> - <syscall name="eventfd" number="5278"/> - <syscall name="fallocate" number="5279"/> - <syscall name="timerfd_create" number="5280"/> - <syscall name="timerfd_gettime" number="5281"/> - <syscall name="timerfd_settime" number="5282"/> - <syscall name="signalfd4" number="5283"/> - <syscall name="eventfd2" number="5284"/> - <syscall name="epoll_create1" number="5285"/> - <syscall name="dup3" number="5286"/> - <syscall name="pipe2" number="5287"/> - <syscall name="inotify_init1" number="5288"/> - <syscall name="preadv" number="5289"/> - <syscall name="pwritev" number="5290"/> - <syscall name="rt_tgsigqueueinfo" number="5291"/> - <syscall name="perf_event_open" number="5292"/> - <syscall name="accept4" number="5293"/> - <syscall name="recvmmsg" number="5294"/> - <syscall name="fanotify_init" number="5295"/> - <syscall name="fanotify_mark" number="5296"/> - <syscall name="prlimit64" number="5297"/> -</syscalls_info> diff --git a/share/gdb/syscalls/mips-o32-linux.xml b/share/gdb/syscalls/mips-o32-linux.xml deleted file mode 100644 index 97641b6..0000000 --- a/share/gdb/syscalls/mips-o32-linux.xml +++ /dev/null @@ -1,347 +0,0 @@ -<?xml version="1.0"?> -<!-- 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 - notice and this notice are preserved. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/mips/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<syscalls_info> - <syscall name="syscall" number="4000"/> - <syscall name="exit" number="4001"/> - <syscall name="fork" number="4002"/> - <syscall name="read" number="4003"/> - <syscall name="write" number="4004"/> - <syscall name="open" number="4005"/> - <syscall name="close" number="4006"/> - <syscall name="waitpid" number="4007"/> - <syscall name="creat" number="4008"/> - <syscall name="link" number="4009"/> - <syscall name="unlink" number="4010"/> - <syscall name="execve" number="4011"/> - <syscall name="chdir" number="4012"/> - <syscall name="time" number="4013"/> - <syscall name="mknod" number="4014"/> - <syscall name="chmod" number="4015"/> - <syscall name="lchown" number="4016"/> - <syscall name="break" number="4017"/> - <syscall name="lseek" number="4019"/> - <syscall name="getpid" number="4020"/> - <syscall name="mount" number="4021"/> - <syscall name="umount" number="4022"/> - <syscall name="setuid" number="4023"/> - <syscall name="getuid" number="4024"/> - <syscall name="stime" number="4025"/> - <syscall name="ptrace" number="4026"/> - <syscall name="alarm" number="4027"/> - <syscall name="pause" number="4029"/> - <syscall name="utime" number="4030"/> - <syscall name="stty" number="4031"/> - <syscall name="gtty" number="4032"/> - <syscall name="access" number="4033"/> - <syscall name="nice" number="4034"/> - <syscall name="ftime" number="4035"/> - <syscall name="sync" number="4036"/> - <syscall name="kill" number="4037"/> - <syscall name="rename" number="4038"/> - <syscall name="mkdir" number="4039"/> - <syscall name="rmdir" number="4040"/> - <syscall name="dup" number="4041"/> - <syscall name="pipe" number="4042"/> - <syscall name="times" number="4043"/> - <syscall name="prof" number="4044"/> - <syscall name="brk" number="4045"/> - <syscall name="setgid" number="4046"/> - <syscall name="getgid" number="4047"/> - <syscall name="signal" number="4048"/> - <syscall name="geteuid" number="4049"/> - <syscall name="getegid" number="4050"/> - <syscall name="acct" number="4051"/> - <syscall name="umount2" number="4052"/> - <syscall name="lock" number="4053"/> - <syscall name="ioctl" number="4054"/> - <syscall name="fcntl" number="4055"/> - <syscall name="mpx" number="4056"/> - <syscall name="setpgid" number="4057"/> - <syscall name="ulimit" number="4058"/> - <syscall name="umask" number="4060"/> - <syscall name="chroot" number="4061"/> - <syscall name="ustat" number="4062"/> - <syscall name="dup2" number="4063"/> - <syscall name="getppid" number="4064"/> - <syscall name="getpgrp" number="4065"/> - <syscall name="setsid" number="4066"/> - <syscall name="sigaction" number="4067"/> - <syscall name="sgetmask" number="4068"/> - <syscall name="ssetmask" number="4069"/> - <syscall name="setreuid" number="4070"/> - <syscall name="setregid" number="4071"/> - <syscall name="sigsuspend" number="4072"/> - <syscall name="sigpending" number="4073"/> - <syscall name="sethostname" number="4074"/> - <syscall name="setrlimit" number="4075"/> - <syscall name="getrlimit" number="4076"/> - <syscall name="getrusage" number="4077"/> - <syscall name="gettimeofday" number="4078"/> - <syscall name="settimeofday" number="4079"/> - <syscall name="getgroups" number="4080"/> - <syscall name="setgroups" number="4081"/> - <syscall name="symlink" number="4083"/> - <syscall name="readlink" number="4085"/> - <syscall name="uselib" number="4086"/> - <syscall name="swapon" number="4087"/> - <syscall name="reboot" number="4088"/> - <syscall name="readdir" number="4089"/> - <syscall name="mmap" number="4090"/> - <syscall name="munmap" number="4091"/> - <syscall name="truncate" number="4092"/> - <syscall name="ftruncate" number="4093"/> - <syscall name="fchmod" number="4094"/> - <syscall name="fchown" number="4095"/> - <syscall name="getpriority" number="4096"/> - <syscall name="setpriority" number="4097"/> - <syscall name="profil" number="4098"/> - <syscall name="statfs" number="4099"/> - <syscall name="fstatfs" number="4100"/> - <syscall name="ioperm" number="4101"/> - <syscall name="socketcall" number="4102"/> - <syscall name="syslog" number="4103"/> - <syscall name="setitimer" number="4104"/> - <syscall name="getitimer" number="4105"/> - <syscall name="stat" number="4106"/> - <syscall name="lstat" number="4107"/> - <syscall name="fstat" number="4108"/> - <syscall name="iopl" number="4110"/> - <syscall name="vhangup" number="4111"/> - <syscall name="idle" number="4112"/> - <syscall name="vm86" number="4113"/> - <syscall name="wait4" number="4114"/> - <syscall name="swapoff" number="4115"/> - <syscall name="sysinfo" number="4116"/> - <syscall name="ipc" number="4117"/> - <syscall name="fsync" number="4118"/> - <syscall name="sigreturn" number="4119"/> - <syscall name="clone" number="4120"/> - <syscall name="setdomainname" number="4121"/> - <syscall name="uname" number="4122"/> - <syscall name="modify_ldt" number="4123"/> - <syscall name="adjtimex" number="4124"/> - <syscall name="mprotect" number="4125"/> - <syscall name="sigprocmask" number="4126"/> - <syscall name="create_module" number="4127"/> - <syscall name="init_module" number="4128"/> - <syscall name="delete_module" number="4129"/> - <syscall name="get_kernel_syms" number="4130"/> - <syscall name="quotactl" number="4131"/> - <syscall name="getpgid" number="4132"/> - <syscall name="fchdir" number="4133"/> - <syscall name="bdflush" number="4134"/> - <syscall name="sysfs" number="4135"/> - <syscall name="personality" number="4136"/> - <syscall name="afs_syscall" number="4137"/> - <syscall name="setfsuid" number="4138"/> - <syscall name="setfsgid" number="4139"/> - <syscall name="_llseek" number="4140"/> - <syscall name="getdents" number="4141"/> - <syscall name="_newselect" number="4142"/> - <syscall name="flock" number="4143"/> - <syscall name="msync" number="4144"/> - <syscall name="readv" number="4145"/> - <syscall name="writev" number="4146"/> - <syscall name="cacheflush" number="4147"/> - <syscall name="cachectl" number="4148"/> - <syscall name="sysmips" number="4149"/> - <syscall name="getsid" number="4151"/> - <syscall name="fdatasync" number="4152"/> - <syscall name="_sysctl" number="4153"/> - <syscall name="mlock" number="4154"/> - <syscall name="munlock" number="4155"/> - <syscall name="mlockall" number="4156"/> - <syscall name="munlockall" number="4157"/> - <syscall name="sched_setparam" number="4158"/> - <syscall name="sched_getparam" number="4159"/> - <syscall name="sched_setscheduler" number="4160"/> - <syscall name="sched_getscheduler" number="4161"/> - <syscall name="sched_yield" number="4162"/> - <syscall name="sched_get_priority_max" number="4163"/> - <syscall name="sched_get_priority_min" number="4164"/> - <syscall name="sched_rr_get_interval" number="4165"/> - <syscall name="nanosleep" number="4166"/> - <syscall name="mremap" number="4167"/> - <syscall name="accept" number="4168"/> - <syscall name="bind" number="4169"/> - <syscall name="connect" number="4170"/> - <syscall name="getpeername" number="4171"/> - <syscall name="getsockname" number="4172"/> - <syscall name="getsockopt" number="4173"/> - <syscall name="listen" number="4174"/> - <syscall name="recv" number="4175"/> - <syscall name="recvfrom" number="4176"/> - <syscall name="recvmsg" number="4177"/> - <syscall name="send" number="4178"/> - <syscall name="sendmsg" number="4179"/> - <syscall name="sendto" number="4180"/> - <syscall name="setsockopt" number="4181"/> - <syscall name="shutdown" number="4182"/> - <syscall name="socket" number="4183"/> - <syscall name="socketpair" number="4184"/> - <syscall name="setresuid" number="4185"/> - <syscall name="getresuid" number="4186"/> - <syscall name="query_module" number="4187"/> - <syscall name="poll" number="4188"/> - <syscall name="nfsservctl" number="4189"/> - <syscall name="setresgid" number="4190"/> - <syscall name="getresgid" number="4191"/> - <syscall name="prctl" number="4192"/> - <syscall name="rt_sigreturn" number="4193"/> - <syscall name="rt_sigaction" number="4194"/> - <syscall name="rt_sigprocmask" number="4195"/> - <syscall name="rt_sigpending" number="4196"/> - <syscall name="rt_sigtimedwait" number="4197"/> - <syscall name="rt_sigqueueinfo" number="4198"/> - <syscall name="rt_sigsuspend" number="4199"/> - <syscall name="pread64" number="4200"/> - <syscall name="pwrite64" number="4201"/> - <syscall name="chown" number="4202"/> - <syscall name="getcwd" number="4203"/> - <syscall name="capget" number="4204"/> - <syscall name="capset" number="4205"/> - <syscall name="sigaltstack" number="4206"/> - <syscall name="sendfile" number="4207"/> - <syscall name="getpmsg" number="4208"/> - <syscall name="putpmsg" number="4209"/> - <syscall name="mmap2" number="4210"/> - <syscall name="truncate64" number="4211"/> - <syscall name="ftruncate64" number="4212"/> - <syscall name="stat64" number="4213"/> - <syscall name="lstat64" number="4214"/> - <syscall name="fstat64" number="4215"/> - <syscall name="pivot_root" number="4216"/> - <syscall name="mincore" number="4217"/> - <syscall name="madvise" number="4218"/> - <syscall name="getdents64" number="4219"/> - <syscall name="fcntl64" number="4220"/> - <syscall name="gettid" number="4222"/> - <syscall name="readahead" number="4223"/> - <syscall name="setxattr" number="4224"/> - <syscall name="lsetxattr" number="4225"/> - <syscall name="fsetxattr" number="4226"/> - <syscall name="getxattr" number="4227"/> - <syscall name="lgetxattr" number="4228"/> - <syscall name="fgetxattr" number="4229"/> - <syscall name="listxattr" number="4230"/> - <syscall name="llistxattr" number="4231"/> - <syscall name="flistxattr" number="4232"/> - <syscall name="removexattr" number="4233"/> - <syscall name="lremovexattr" number="4234"/> - <syscall name="fremovexattr" number="4235"/> - <syscall name="tkill" number="4236"/> - <syscall name="sendfile64" number="4237"/> - <syscall name="futex" number="4238"/> - <syscall name="sched_setaffinity" number="4239"/> - <syscall name="sched_getaffinity" number="4240"/> - <syscall name="io_setup" number="4241"/> - <syscall name="io_destroy" number="4242"/> - <syscall name="io_getevents" number="4243"/> - <syscall name="io_submit" number="4244"/> - <syscall name="io_cancel" number="4245"/> - <syscall name="exit_group" number="4246"/> - <syscall name="lookup_dcookie" number="4247"/> - <syscall name="epoll_create" number="4248"/> - <syscall name="epoll_ctl" number="4249"/> - <syscall name="epoll_wait" number="4250"/> - <syscall name="remap_file_pages" number="4251"/> - <syscall name="set_tid_address" number="4252"/> - <syscall name="restart_syscall" number="4253"/> - <syscall name="fadvise64" number="4254"/> - <syscall name="statfs64" number="4255"/> - <syscall name="fstatfs64" number="4256"/> - <syscall name="timer_create" number="4257"/> - <syscall name="timer_settime" number="4258"/> - <syscall name="timer_gettime" number="4259"/> - <syscall name="timer_getoverrun" number="4260"/> - <syscall name="timer_delete" number="4261"/> - <syscall name="clock_settime" number="4262"/> - <syscall name="clock_gettime" number="4263"/> - <syscall name="clock_getres" number="4264"/> - <syscall name="clock_nanosleep" number="4265"/> - <syscall name="tgkill" number="4266"/> - <syscall name="utimes" number="4267"/> - <syscall name="mbind" number="4268"/> - <syscall name="get_mempolicy" number="4269"/> - <syscall name="set_mempolicy" number="4270"/> - <syscall name="mq_open" number="4271"/> - <syscall name="mq_unlink" number="4272"/> - <syscall name="mq_timedsend" number="4273"/> - <syscall name="mq_timedreceive" number="4274"/> - <syscall name="mq_notify" number="4275"/> - <syscall name="mq_getsetattr" number="4276"/> - <syscall name="vserver" number="4277"/> - <syscall name="waitid" number="4278"/> - <syscall name="add_key" number="4280"/> - <syscall name="request_key" number="4281"/> - <syscall name="keyctl" number="4282"/> - <syscall name="set_thread_area" number="4283"/> - <syscall name="inotify_init" number="4284"/> - <syscall name="inotify_add_watch" number="4285"/> - <syscall name="inotify_rm_watch" number="4286"/> - <syscall name="migrate_pages" number="4287"/> - <syscall name="openat" number="4288"/> - <syscall name="mkdirat" number="4289"/> - <syscall name="mknodat" number="4290"/> - <syscall name="fchownat" number="4291"/> - <syscall name="futimesat" number="4292"/> - <syscall name="fstatat64" number="4293"/> - <syscall name="unlinkat" number="4294"/> - <syscall name="renameat" number="4295"/> - <syscall name="linkat" number="4296"/> - <syscall name="symlinkat" number="4297"/> - <syscall name="readlinkat" number="4298"/> - <syscall name="fchmodat" number="4299"/> - <syscall name="faccessat" number="4300"/> - <syscall name="pselect6" number="4301"/> - <syscall name="ppoll" number="4302"/> - <syscall name="unshare" number="4303"/> - <syscall name="splice" number="4304"/> - <syscall name="sync_file_range" number="4305"/> - <syscall name="tee" number="4306"/> - <syscall name="vmsplice" number="4307"/> - <syscall name="move_pages" number="4308"/> - <syscall name="set_robust_list" number="4309"/> - <syscall name="get_robust_list" number="4310"/> - <syscall name="kexec_load" number="4311"/> - <syscall name="getcpu" number="4312"/> - <syscall name="epoll_pwait" number="4313"/> - <syscall name="ioprio_set" number="4314"/> - <syscall name="ioprio_get" number="4315"/> - <syscall name="utimensat" number="4316"/> - <syscall name="signalfd" number="4317"/> - <syscall name="timerfd" number="4318"/> - <syscall name="eventfd" number="4319"/> - <syscall name="fallocate" number="4320"/> - <syscall name="timerfd_create" number="4321"/> - <syscall name="timerfd_gettime" number="4322"/> - <syscall name="timerfd_settime" number="4323"/> - <syscall name="signalfd4" number="4324"/> - <syscall name="eventfd2" number="4325"/> - <syscall name="epoll_create1" number="4326"/> - <syscall name="dup3" number="4327"/> - <syscall name="pipe2" number="4328"/> - <syscall name="inotify_init1" number="4329"/> - <syscall name="preadv" number="4330"/> - <syscall name="pwritev" number="4331"/> - <syscall name="rt_tgsigqueueinfo" number="4332"/> - <syscall name="perf_event_open" number="4333"/> - <syscall name="accept4" number="4334"/> - <syscall name="recvmmsg" number="4335"/> - <syscall name="fanotify_init" number="4336"/> - <syscall name="fanotify_mark" number="4337"/> - <syscall name="prlimit64" number="4338"/> -</syscalls_info> diff --git a/share/gdb/syscalls/ppc-linux.xml b/share/gdb/syscalls/ppc-linux.xml deleted file mode 100644 index b25d08c..0000000 --- a/share/gdb/syscalls/ppc-linux.xml +++ /dev/null @@ -1,310 +0,0 @@ -<?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. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/powerpc/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<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"/> - <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"/> - <syscall name="oldstat" number="18"/> - <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"/> - <syscall name="pause" number="29"/> - <syscall name="utime" number="30"/> - <syscall name="stty" number="31"/> - <syscall name="gtty" number="32"/> - <syscall name="access" number="33"/> - <syscall name="nice" number="34"/> - <syscall name="ftime" number="35"/> - <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"/> - <syscall name="brk" number="45"/> - <syscall name="setgid" number="46"/> - <syscall name="getgid" number="47"/> - <syscall name="signal" number="48"/> - <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"/> - <syscall name="ioctl" number="54"/> - <syscall name="fcntl" number="55"/> - <syscall name="mpx" number="56"/> - <syscall name="setpgid" number="57"/> - <syscall name="ulimit" number="58"/> - <syscall name="oldolduname" number="59"/> - <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"/> - <syscall name="ssetmask" number="69"/> - <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"/> - <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"/> - <syscall name="statfs" number="99"/> - <syscall name="fstatfs" number="100"/> - <syscall name="ioperm" number="101"/> - <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"/> - <syscall name="iopl" number="110"/> - <syscall name="vhangup" number="111"/> - <syscall name="idle" number="112"/> - <syscall name="vm86" 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"/> - <syscall name="adjtimex" number="124"/> - <syscall name="mprotect" number="125"/> - <syscall name="sigprocmask" number="126"/> - <syscall name="create_module" number="127"/> - <syscall name="init_module" number="128"/> - <syscall name="delete_module" number="129"/> - <syscall name="get_kernel_syms" number="130"/> - <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"/> - <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="query_module" number="166"/> - <syscall name="poll" number="167"/> - <syscall name="nfsservctl" number="168"/> - <syscall name="setresgid" number="169"/> - <syscall name="getresgid" number="170"/> - <syscall name="prctl" number="171"/> - <syscall name="rt_sigreturn" number="172"/> - <syscall name="rt_sigaction" number="173"/> - <syscall name="rt_sigprocmask" number="174"/> - <syscall name="rt_sigpending" number="175"/> - <syscall name="rt_sigtimedwait" number="176"/> - <syscall name="rt_sigqueueinfo" number="177"/> - <syscall name="rt_sigsuspend" number="178"/> - <syscall name="pread64" number="179"/> - <syscall name="pwrite64" number="180"/> - <syscall name="chown" number="181"/> - <syscall name="getcwd" number="182"/> - <syscall name="capget" number="183"/> - <syscall name="capset" number="184"/> - <syscall name="sigaltstack" number="185"/> - <syscall name="sendfile" number="186"/> - <syscall name="getpmsg" number="187"/> - <syscall name="putpmsg" number="188"/> - <syscall name="vfork" number="189"/> - <syscall name="ugetrlimit" number="190"/> - <syscall name="readahead" 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="pciconfig_read" number="198"/> - <syscall name="pciconfig_write" number="199"/> - <syscall name="pciconfig_iobase" number="200"/> - <syscall name="multiplexer" number="201"/> - <syscall name="getdents64" number="202"/> - <syscall name="pivot_root" number="203"/> - <syscall name="fcntl64" number="204"/> - <syscall name="madvise" number="205"/> - <syscall name="mincore" number="206"/> - <syscall name="gettid" number="207"/> - <syscall name="tkill" number="208"/> - <syscall name="setxattr" number="209"/> - <syscall name="lsetxattr" number="210"/> - <syscall name="fsetxattr" number="211"/> - <syscall name="getxattr" number="212"/> - <syscall name="lgetxattr" number="213"/> - <syscall name="fgetxattr" number="214"/> - <syscall name="listxattr" number="215"/> - <syscall name="llistxattr" number="216"/> - <syscall name="flistxattr" number="217"/> - <syscall name="removexattr" number="218"/> - <syscall name="lremovexattr" number="219"/> - <syscall name="fremovexattr" number="220"/> - <syscall name="futex" number="221"/> - <syscall name="sched_setaffinity" number="222"/> - <syscall name="sched_getaffinity" number="223"/> - <syscall name="tuxcall" number="225"/> - <syscall name="sendfile64" number="226"/> - <syscall name="io_setup" number="227"/> - <syscall name="io_destroy" number="228"/> - <syscall name="io_getevents" number="229"/> - <syscall name="io_submit" number="230"/> - <syscall name="io_cancel" number="231"/> - <syscall name="set_tid_address" number="232"/> - <syscall name="fadvise64" number="233"/> - <syscall name="exit_group" number="234"/> - <syscall name="lookup_dcookie" number="235"/> - <syscall name="epoll_create" number="236"/> - <syscall name="epoll_ctl" number="237"/> - <syscall name="epoll_wait" number="238"/> - <syscall name="remap_file_pages" number="239"/> - <syscall name="timer_create" number="240"/> - <syscall name="timer_settime" number="241"/> - <syscall name="timer_gettime" number="242"/> - <syscall name="timer_getoverrun" number="243"/> - <syscall name="timer_delete" number="244"/> - <syscall name="clock_settime" number="245"/> - <syscall name="clock_gettime" number="246"/> - <syscall name="clock_getres" number="247"/> - <syscall name="clock_nanosleep" number="248"/> - <syscall name="swapcontext" number="249"/> - <syscall name="tgkill" number="250"/> - <syscall name="utimes" number="251"/> - <syscall name="statfs64" number="252"/> - <syscall name="fstatfs64" number="253"/> - <syscall name="fadvise64_64" number="254"/> - <syscall name="rtas" number="255"/> - <syscall name="sys_debug_setcontext" number="256"/> - <syscall name="mbind" number="259"/> - <syscall name="get_mempolicy" number="260"/> - <syscall name="set_mempolicy" number="261"/> - <syscall name="mq_open" number="262"/> - <syscall name="mq_unlink" number="263"/> - <syscall name="mq_timedsend" number="264"/> - <syscall name="mq_timedreceive" number="265"/> - <syscall name="mq_notify" number="266"/> - <syscall name="mq_getsetattr" number="267"/> - <syscall name="kexec_load" number="268"/> - <syscall name="add_key" number="269"/> - <syscall name="request_key" number="270"/> - <syscall name="keyctl" number="271"/> - <syscall name="waitid" number="272"/> - <syscall name="ioprio_set" number="273"/> - <syscall name="ioprio_get" number="274"/> - <syscall name="inotify_init" number="275"/> - <syscall name="inotify_add_watch" number="276"/> - <syscall name="inotify_rm_watch" number="277"/> - <syscall name="spu_run" number="278"/> - <syscall name="spu_create" number="279"/> - <syscall name="pselect6" number="280"/> - <syscall name="ppoll" number="281"/> - <syscall name="unshare" number="282"/> - <syscall name="openat" number="286"/> - <syscall name="mkdirat" number="287"/> - <syscall name="mknodat" number="288"/> - <syscall name="fchownat" number="289"/> - <syscall name="futimesat" number="290"/> - <syscall name="fstatat64" number="291"/> - <syscall name="unlinkat" number="292"/> - <syscall name="renameat" number="293"/> - <syscall name="linkat" number="294"/> - <syscall name="symlinkat" number="295"/> - <syscall name="readlinkat" number="296"/> - <syscall name="fchmodat" number="297"/> - <syscall name="faccessat" number="298"/> -</syscalls_info> diff --git a/share/gdb/syscalls/ppc64-linux.xml b/share/gdb/syscalls/ppc64-linux.xml deleted file mode 100644 index c31415a..0000000 --- a/share/gdb/syscalls/ppc64-linux.xml +++ /dev/null @@ -1,295 +0,0 @@ -<?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. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/powerpc/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<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"/> - <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"/> - <syscall name="oldstat" number="18"/> - <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"/> - <syscall name="pause" number="29"/> - <syscall name="utime" number="30"/> - <syscall name="stty" number="31"/> - <syscall name="gtty" number="32"/> - <syscall name="access" number="33"/> - <syscall name="nice" number="34"/> - <syscall name="ftime" number="35"/> - <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"/> - <syscall name="brk" number="45"/> - <syscall name="setgid" number="46"/> - <syscall name="getgid" number="47"/> - <syscall name="signal" number="48"/> - <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"/> - <syscall name="ioctl" number="54"/> - <syscall name="fcntl" number="55"/> - <syscall name="mpx" number="56"/> - <syscall name="setpgid" number="57"/> - <syscall name="ulimit" number="58"/> - <syscall name="oldolduname" number="59"/> - <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"/> - <syscall name="ssetmask" number="69"/> - <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"/> - <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"/> - <syscall name="statfs" number="99"/> - <syscall name="fstatfs" number="100"/> - <syscall name="ioperm" number="101"/> - <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"/> - <syscall name="iopl" number="110"/> - <syscall name="vhangup" number="111"/> - <syscall name="idle" number="112"/> - <syscall name="vm86" 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"/> - <syscall name="adjtimex" number="124"/> - <syscall name="mprotect" number="125"/> - <syscall name="sigprocmask" number="126"/> - <syscall name="create_module" number="127"/> - <syscall name="init_module" number="128"/> - <syscall name="delete_module" number="129"/> - <syscall name="get_kernel_syms" number="130"/> - <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"/> - <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="query_module" number="166"/> - <syscall name="poll" number="167"/> - <syscall name="nfsservctl" number="168"/> - <syscall name="setresgid" number="169"/> - <syscall name="getresgid" number="170"/> - <syscall name="prctl" number="171"/> - <syscall name="rt_sigreturn" number="172"/> - <syscall name="rt_sigaction" number="173"/> - <syscall name="rt_sigprocmask" number="174"/> - <syscall name="rt_sigpending" number="175"/> - <syscall name="rt_sigtimedwait" number="176"/> - <syscall name="rt_sigqueueinfo" number="177"/> - <syscall name="rt_sigsuspend" number="178"/> - <syscall name="pread64" number="179"/> - <syscall name="pwrite64" number="180"/> - <syscall name="chown" number="181"/> - <syscall name="getcwd" number="182"/> - <syscall name="capget" number="183"/> - <syscall name="capset" number="184"/> - <syscall name="sigaltstack" number="185"/> - <syscall name="sendfile" number="186"/> - <syscall name="getpmsg" number="187"/> - <syscall name="putpmsg" number="188"/> - <syscall name="vfork" number="189"/> - <syscall name="ugetrlimit" number="190"/> - <syscall name="readahead" number="191"/> - <syscall name="pciconfig_read" number="198"/> - <syscall name="pciconfig_write" number="199"/> - <syscall name="pciconfig_iobase" number="200"/> - <syscall name="multiplexer" number="201"/> - <syscall name="getdents64" number="202"/> - <syscall name="pivot_root" number="203"/> - <syscall name="madvise" number="205"/> - <syscall name="mincore" number="206"/> - <syscall name="gettid" number="207"/> - <syscall name="tkill" number="208"/> - <syscall name="setxattr" number="209"/> - <syscall name="lsetxattr" number="210"/> - <syscall name="fsetxattr" number="211"/> - <syscall name="getxattr" number="212"/> - <syscall name="lgetxattr" number="213"/> - <syscall name="fgetxattr" number="214"/> - <syscall name="listxattr" number="215"/> - <syscall name="llistxattr" number="216"/> - <syscall name="flistxattr" number="217"/> - <syscall name="removexattr" number="218"/> - <syscall name="lremovexattr" number="219"/> - <syscall name="fremovexattr" number="220"/> - <syscall name="futex" number="221"/> - <syscall name="sched_setaffinity" number="222"/> - <syscall name="sched_getaffinity" number="223"/> - <syscall name="tuxcall" number="225"/> - <syscall name="io_setup" number="227"/> - <syscall name="io_destroy" number="228"/> - <syscall name="io_getevents" number="229"/> - <syscall name="io_submit" number="230"/> - <syscall name="io_cancel" number="231"/> - <syscall name="set_tid_address" number="232"/> - <syscall name="fadvise64" number="233"/> - <syscall name="exit_group" number="234"/> - <syscall name="lookup_dcookie" number="235"/> - <syscall name="epoll_create" number="236"/> - <syscall name="epoll_ctl" number="237"/> - <syscall name="epoll_wait" number="238"/> - <syscall name="remap_file_pages" number="239"/> - <syscall name="timer_create" number="240"/> - <syscall name="timer_settime" number="241"/> - <syscall name="timer_gettime" number="242"/> - <syscall name="timer_getoverrun" number="243"/> - <syscall name="timer_delete" number="244"/> - <syscall name="clock_settime" number="245"/> - <syscall name="clock_gettime" number="246"/> - <syscall name="clock_getres" number="247"/> - <syscall name="clock_nanosleep" number="248"/> - <syscall name="swapcontext" number="249"/> - <syscall name="tgkill" number="250"/> - <syscall name="utimes" number="251"/> - <syscall name="statfs64" number="252"/> - <syscall name="fstatfs64" number="253"/> - <syscall name="rtas" number="255"/> - <syscall name="sys_debug_setcontext" number="256"/> - <syscall name="mbind" number="259"/> - <syscall name="get_mempolicy" number="260"/> - <syscall name="set_mempolicy" number="261"/> - <syscall name="mq_open" number="262"/> - <syscall name="mq_unlink" number="263"/> - <syscall name="mq_timedsend" number="264"/> - <syscall name="mq_timedreceive" number="265"/> - <syscall name="mq_notify" number="266"/> - <syscall name="mq_getsetattr" number="267"/> - <syscall name="kexec_load" number="268"/> - <syscall name="add_key" number="269"/> - <syscall name="request_key" number="270"/> - <syscall name="keyctl" number="271"/> - <syscall name="waitid" number="272"/> - <syscall name="ioprio_set" number="273"/> - <syscall name="ioprio_get" number="274"/> - <syscall name="inotify_init" number="275"/> - <syscall name="inotify_add_watch" number="276"/> - <syscall name="inotify_rm_watch" number="277"/> - <syscall name="spu_run" number="278"/> - <syscall name="spu_create" number="279"/> - <syscall name="pselect6" number="280"/> - <syscall name="ppoll" number="281"/> - <syscall name="unshare" number="282"/> - <syscall name="unlinkat" number="286"/> - <syscall name="renameat" number="287"/> - <syscall name="linkat" number="288"/> - <syscall name="symlinkat" number="289"/> - <syscall name="readlinkat" number="290"/> - <syscall name="fchmodat" number="291"/> - <syscall name="faccessat" number="292"/> -</syscalls_info> diff --git a/share/gdb/syscalls/sparc-linux.xml b/share/gdb/syscalls/sparc-linux.xml deleted file mode 100644 index 24d8612..0000000 --- a/share/gdb/syscalls/sparc-linux.xml +++ /dev/null @@ -1,344 +0,0 @@ -<?xml version="1.0"?> -<!-- 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 - notice and this notice are preserved. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/sparc/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<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="wait4" number="7"/> - <syscall name="creat" number="8"/> - <syscall name="link" number="9"/> - <syscall name="unlink" number="10"/> - <syscall name="execv" number="11"/> - <syscall name="chdir" number="12"/> - <syscall name="chown" number="13"/> - <syscall name="mknod" number="14"/> - <syscall name="chmod" number="15"/> - <syscall name="lchown" number="16"/> - <syscall name="brk" number="17"/> - <syscall name="perfctr" number="18"/> - <syscall name="lseek" number="19"/> - <syscall name="getpid" number="20"/> - <syscall name="capget" number="21"/> - <syscall name="capset" number="22"/> - <syscall name="setuid" number="23"/> - <syscall name="getuid" number="24"/> - <syscall name="vmsplice" number="25"/> - <syscall name="ptrace" number="26"/> - <syscall name="alarm" number="27"/> - <syscall name="sigaltstack" number="28"/> - <syscall name="pause" number="29"/> - <syscall name="utime" number="30"/> - <syscall name="lchown32" number="31"/> - <syscall name="fchown32" number="32"/> - <syscall name="access" number="33"/> - <syscall name="nice" number="34"/> - <syscall name="chown32" number="35"/> - <syscall name="sync" number="36"/> - <syscall name="kill" number="37"/> - <syscall name="stat" number="38"/> - <syscall name="sendfile" number="39"/> - <syscall name="lstat" number="40"/> - <syscall name="dup" number="41"/> - <syscall name="pipe" number="42"/> - <syscall name="times" number="43"/> - <syscall name="getuid32" number="44"/> - <syscall name="umount2" number="45"/> - <syscall name="setgid" number="46"/> - <syscall name="getgid" number="47"/> - <syscall name="signal" number="48"/> - <syscall name="geteuid" number="49"/> - <syscall name="getegid" number="50"/> - <syscall name="acct" number="51"/> - <syscall name="getgid32" number="53"/> - <syscall name="ioctl" number="54"/> - <syscall name="reboot" number="55"/> - <syscall name="mmap2" number="56"/> - <syscall name="symlink" number="57"/> - <syscall name="readlink" number="58"/> - <syscall name="execve" number="59"/> - <syscall name="umask" number="60"/> - <syscall name="chroot" number="61"/> - <syscall name="fstat" number="62"/> - <syscall name="fstat64" number="63"/> - <syscall name="getpagesize" number="64"/> - <syscall name="msync" number="65"/> - <syscall name="vfork" number="66"/> - <syscall name="pread64" number="67"/> - <syscall name="pwrite64" number="68"/> - <syscall name="geteuid32" number="69"/> - <syscall name="getegid32" number="70"/> - <syscall name="mmap" number="71"/> - <syscall name="setreuid32" number="72"/> - <syscall name="munmap" number="73"/> - <syscall name="mprotect" number="74"/> - <syscall name="madvise" number="75"/> - <syscall name="vhangup" number="76"/> - <syscall name="truncate64" number="77"/> - <syscall name="mincore" number="78"/> - <syscall name="getgroups" number="79"/> - <syscall name="setgroups" number="80"/> - <syscall name="getpgrp" number="81"/> - <syscall name="setgroups32" number="82"/> - <syscall name="setitimer" number="83"/> - <syscall name="ftruncate64" number="84"/> - <syscall name="swapon" number="85"/> - <syscall name="getitimer" number="86"/> - <syscall name="setuid32" number="87"/> - <syscall name="sethostname" number="88"/> - <syscall name="setgid32" number="89"/> - <syscall name="dup2" number="90"/> - <syscall name="setfsuid32" number="91"/> - <syscall name="fcntl" number="92"/> - <syscall name="select" number="93"/> - <syscall name="setfsgid32" number="94"/> - <syscall name="fsync" number="95"/> - <syscall name="setpriority" number="96"/> - <syscall name="socket" number="97"/> - <syscall name="connect" number="98"/> - <syscall name="accept" number="99"/> - <syscall name="getpriority" number="100"/> - <syscall name="rt_sigreturn" number="101"/> - <syscall name="rt_sigaction" number="102"/> - <syscall name="rt_sigprocmask" number="103"/> - <syscall name="rt_sigpending" number="104"/> - <syscall name="rt_sigtimedwait" number="105"/> - <syscall name="rt_sigqueueinfo" number="106"/> - <syscall name="rt_sigsuspend" number="107"/> - <syscall name="setresuid32" number="108"/> - <syscall name="getresuid32" number="109"/> - <syscall name="setresgid32" number="110"/> - <syscall name="getresgid32" number="111"/> - <syscall name="setregid32" number="112"/> - <syscall name="recvmsg" number="113"/> - <syscall name="sendmsg" number="114"/> - <syscall name="getgroups32" number="115"/> - <syscall name="gettimeofday" number="116"/> - <syscall name="getrusage" number="117"/> - <syscall name="getsockopt" number="118"/> - <syscall name="getcwd" number="119"/> - <syscall name="readv" number="120"/> - <syscall name="writev" number="121"/> - <syscall name="settimeofday" number="122"/> - <syscall name="fchown" number="123"/> - <syscall name="fchmod" number="124"/> - <syscall name="recvfrom" number="125"/> - <syscall name="setreuid" number="126"/> - <syscall name="setregid" number="127"/> - <syscall name="rename" number="128"/> - <syscall name="truncate" number="129"/> - <syscall name="ftruncate" number="130"/> - <syscall name="flock" number="131"/> - <syscall name="lstat64" number="132"/> - <syscall name="sendto" number="133"/> - <syscall name="shutdown" number="134"/> - <syscall name="socketpair" number="135"/> - <syscall name="mkdir" number="136"/> - <syscall name="rmdir" number="137"/> - <syscall name="utimes" number="138"/> - <syscall name="stat64" number="139"/> - <syscall name="sendfile64" number="140"/> - <syscall name="getpeername" number="141"/> - <syscall name="futex" number="142"/> - <syscall name="gettid" number="143"/> - <syscall name="getrlimit" number="144"/> - <syscall name="setrlimit" number="145"/> - <syscall name="pivot_root" number="146"/> - <syscall name="prctl" number="147"/> - <syscall name="pciconfig_read" number="148"/> - <syscall name="pciconfig_write" number="149"/> - <syscall name="getsockname" number="150"/> - <syscall name="inotify_init" number="151"/> - <syscall name="inotify_add_watch" number="152"/> - <syscall name="poll" number="153"/> - <syscall name="getdents64" number="154"/> - <syscall name="fcntl64" number="155"/> - <syscall name="inotify_rm_watch" number="156"/> - <syscall name="statfs" number="157"/> - <syscall name="fstatfs" number="158"/> - <syscall name="umount" number="159"/> - <syscall name="sched_set_affinity" number="160"/> - <syscall name="sched_get_affinity" number="161"/> - <syscall name="getdomainname" number="162"/> - <syscall name="setdomainname" number="163"/> - <syscall name="quotactl" number="165"/> - <syscall name="set_tid_address" number="166"/> - <syscall name="mount" number="167"/> - <syscall name="ustat" number="168"/> - <syscall name="setxattr" number="169"/> - <syscall name="lsetxattr" number="170"/> - <syscall name="fsetxattr" number="171"/> - <syscall name="getxattr" number="172"/> - <syscall name="lgetxattr" number="173"/> - <syscall name="getdents" number="174"/> - <syscall name="setsid" number="175"/> - <syscall name="fchdir" number="176"/> - <syscall name="fgetxattr" number="177"/> - <syscall name="listxattr" number="178"/> - <syscall name="llistxattr" number="179"/> - <syscall name="flistxattr" number="180"/> - <syscall name="removexattr" number="181"/> - <syscall name="lremovexattr" number="182"/> - <syscall name="sigpending" number="183"/> - <syscall name="query_module" number="184"/> - <syscall name="setpgid" number="185"/> - <syscall name="fremovexattr" number="186"/> - <syscall name="tkill" number="187"/> - <syscall name="exit_group" number="188"/> - <syscall name="uname" number="189"/> - <syscall name="init_module" number="190"/> - <syscall name="personality" number="191"/> - <syscall name="remap_file_pages" number="192"/> - <syscall name="epoll_create" number="193"/> - <syscall name="epoll_ctl" number="194"/> - <syscall name="epoll_wait" number="195"/> - <syscall name="ioprio_set" number="196"/> - <syscall name="getppid" number="197"/> - <syscall name="sigaction" number="198"/> - <syscall name="sgetmask" number="199"/> - <syscall name="ssetmask" number="200"/> - <syscall name="sigsuspend" number="201"/> - <syscall name="oldlstat" number="202"/> - <syscall name="uselib" number="203"/> - <syscall name="readdir" number="204"/> - <syscall name="readahead" number="205"/> - <syscall name="socketcall" number="206"/> - <syscall name="syslog" number="207"/> - <syscall name="lookup_dcookie" number="208"/> - <syscall name="fadvise64" number="209"/> - <syscall name="fadvise64_64" number="210"/> - <syscall name="tgkill" number="211"/> - <syscall name="waitpid" number="212"/> - <syscall name="swapoff" number="213"/> - <syscall name="sysinfo" number="214"/> - <syscall name="ipc" number="215"/> - <syscall name="sigreturn" number="216"/> - <syscall name="clone" number="217"/> - <syscall name="ioprio_get" number="218"/> - <syscall name="adjtimex" number="219"/> - <syscall name="sigprocmask" number="220"/> - <syscall name="create_module" number="221"/> - <syscall name="delete_module" number="222"/> - <syscall name="get_kernel_syms" number="223"/> - <syscall name="getpgid" number="224"/> - <syscall name="bdflush" number="225"/> - <syscall name="sysfs" number="226"/> - <syscall name="afs_syscall" number="227"/> - <syscall name="setfsuid" number="228"/> - <syscall name="setfsgid" number="229"/> - <syscall name="_newselect" number="230"/> - <syscall name="time" number="231"/> - <syscall name="splice" number="232"/> - <syscall name="stime" number="233"/> - <syscall name="statfs64" number="234"/> - <syscall name="fstatfs64" number="235"/> - <syscall name="_llseek" number="236"/> - <syscall name="mlock" number="237"/> - <syscall name="munlock" number="238"/> - <syscall name="mlockall" number="239"/> - <syscall name="munlockall" number="240"/> - <syscall name="sched_setparam" number="241"/> - <syscall name="sched_getparam" number="242"/> - <syscall name="sched_setscheduler" number="243"/> - <syscall name="sched_getscheduler" number="244"/> - <syscall name="sched_yield" number="245"/> - <syscall name="sched_get_priority_max" number="246"/> - <syscall name="sched_get_priority_min" number="247"/> - <syscall name="sched_rr_get_interval" number="248"/> - <syscall name="nanosleep" number="249"/> - <syscall name="mremap" number="250"/> - <syscall name="_sysctl" number="251"/> - <syscall name="getsid" number="252"/> - <syscall name="fdatasync" number="253"/> - <syscall name="nfsservctl" number="254"/> - <syscall name="sync_file_range" number="255"/> - <syscall name="clock_settime" number="256"/> - <syscall name="clock_gettime" number="257"/> - <syscall name="clock_getres" number="258"/> - <syscall name="clock_nanosleep" number="259"/> - <syscall name="sched_getaffinity" number="260"/> - <syscall name="sched_setaffinity" number="261"/> - <syscall name="timer_settime" number="262"/> - <syscall name="timer_gettime" number="263"/> - <syscall name="timer_getoverrun" number="264"/> - <syscall name="timer_delete" number="265"/> - <syscall name="timer_create" number="266"/> - <syscall name="vserver" number="267"/> - <syscall name="io_setup" number="268"/> - <syscall name="io_destroy" number="269"/> - <syscall name="io_submit" number="270"/> - <syscall name="io_cancel" number="271"/> - <syscall name="io_getevents" number="272"/> - <syscall name="mq_open" number="273"/> - <syscall name="mq_unlink" number="274"/> - <syscall name="mq_timedsend" number="275"/> - <syscall name="mq_timedreceive" number="276"/> - <syscall name="mq_notify" number="277"/> - <syscall name="mq_getsetattr" number="278"/> - <syscall name="waitid" number="279"/> - <syscall name="tee" number="280"/> - <syscall name="add_key" number="281"/> - <syscall name="request_key" number="282"/> - <syscall name="keyctl" number="283"/> - <syscall name="openat" number="284"/> - <syscall name="mkdirat" number="285"/> - <syscall name="mknodat" number="286"/> - <syscall name="fchownat" number="287"/> - <syscall name="futimesat" number="288"/> - <syscall name="fstatat64" number="289"/> - <syscall name="unlinkat" number="290"/> - <syscall name="renameat" number="291"/> - <syscall name="linkat" number="292"/> - <syscall name="symlinkat" number="293"/> - <syscall name="readlinkat" number="294"/> - <syscall name="fchmodat" number="295"/> - <syscall name="faccessat" number="296"/> - <syscall name="pselect6" number="297"/> - <syscall name="ppoll" number="298"/> - <syscall name="unshare" number="299"/> - <syscall name="set_robust_list" number="300"/> - <syscall name="get_robust_list" number="301"/> - <syscall name="migrate_pages" number="302"/> - <syscall name="mbind" number="303"/> - <syscall name="get_mempolicy" number="304"/> - <syscall name="set_mempolicy" number="305"/> - <syscall name="kexec_load" number="306"/> - <syscall name="move_pages" number="307"/> - <syscall name="getcpu" number="308"/> - <syscall name="epoll_pwait" number="309"/> - <syscall name="utimensat" number="310"/> - <syscall name="signalfd" number="311"/> - <syscall name="timerfd_create" number="312"/> - <syscall name="eventfd" number="313"/> - <syscall name="fallocate" number="314"/> - <syscall name="timerfd_settime" number="315"/> - <syscall name="timerfd_gettime" number="316"/> - <syscall name="signalfd4" number="317"/> - <syscall name="eventfd2" number="318"/> - <syscall name="epoll_create1" number="319"/> - <syscall name="dup3" number="320"/> - <syscall name="pipe2" number="321"/> - <syscall name="inotify_init1" number="322"/> - <syscall name="accept4" number="323"/> - <syscall name="preadv" number="324"/> - <syscall name="pwritev" number="325"/> - <syscall name="rt_tgsigqueueinfo" number="326"/> - <syscall name="perf_event_open" number="327"/> - <syscall name="recvmmsg" number="328"/> -</syscalls_info> diff --git a/share/gdb/syscalls/sparc64-linux.xml b/share/gdb/syscalls/sparc64-linux.xml deleted file mode 100644 index 13c0cb7..0000000 --- a/share/gdb/syscalls/sparc64-linux.xml +++ /dev/null @@ -1,326 +0,0 @@ -<?xml version="1.0"?> -<!-- 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 - notice and this notice are preserved. --> - -<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd"> - -<!-- This file was generated using the following file: - - /usr/src/linux/arch/sparc/include/asm/unistd.h - - The file mentioned above belongs to the Linux Kernel. --> - -<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="wait4" number="7"/> - <syscall name="creat" number="8"/> - <syscall name="link" number="9"/> - <syscall name="unlink" number="10"/> - <syscall name="execv" number="11"/> - <syscall name="chdir" number="12"/> - <syscall name="chown" number="13"/> - <syscall name="mknod" number="14"/> - <syscall name="chmod" number="15"/> - <syscall name="lchown" number="16"/> - <syscall name="brk" number="17"/> - <syscall name="perfctr" number="18"/> - <syscall name="lseek" number="19"/> - <syscall name="getpid" number="20"/> - <syscall name="capget" number="21"/> - <syscall name="capset" number="22"/> - <syscall name="setuid" number="23"/> - <syscall name="getuid" number="24"/> - <syscall name="vmsplice" number="25"/> - <syscall name="ptrace" number="26"/> - <syscall name="alarm" number="27"/> - <syscall name="sigaltstack" number="28"/> - <syscall name="pause" number="29"/> - <syscall name="utime" number="30"/> - <syscall name="access" number="33"/> - <syscall name="nice" number="34"/> - <syscall name="sync" number="36"/> - <syscall name="kill" number="37"/> - <syscall name="stat" number="38"/> - <syscall name="sendfile" number="39"/> - <syscall name="lstat" number="40"/> - <syscall name="dup" number="41"/> - <syscall name="pipe" number="42"/> - <syscall name="times" number="43"/> - <syscall name="umount2" number="45"/> - <syscall name="setgid" number="46"/> - <syscall name="getgid" number="47"/> - <syscall name="signal" number="48"/> - <syscall name="geteuid" number="49"/> - <syscall name="getegid" number="50"/> - <syscall name="acct" number="51"/> - <syscall name="memory_ordering" number="52"/> - <syscall name="ioctl" number="54"/> - <syscall name="reboot" number="55"/> - <syscall name="symlink" number="57"/> - <syscall name="readlink" number="58"/> - <syscall name="execve" number="59"/> - <syscall name="umask" number="60"/> - <syscall name="chroot" number="61"/> - <syscall name="fstat" number="62"/> - <syscall name="fstat64" number="63"/> - <syscall name="getpagesize" number="64"/> - <syscall name="msync" number="65"/> - <syscall name="vfork" number="66"/> - <syscall name="pread64" number="67"/> - <syscall name="pwrite64" number="68"/> - <syscall name="mmap" number="71"/> - <syscall name="munmap" number="73"/> - <syscall name="mprotect" number="74"/> - <syscall name="madvise" number="75"/> - <syscall name="vhangup" number="76"/> - <syscall name="mincore" number="78"/> - <syscall name="getgroups" number="79"/> - <syscall name="setgroups" number="80"/> - <syscall name="getpgrp" number="81"/> - <syscall name="setitimer" number="83"/> - <syscall name="swapon" number="85"/> - <syscall name="getitimer" number="86"/> - <syscall name="sethostname" number="88"/> - <syscall name="dup2" number="90"/> - <syscall name="fcntl" number="92"/> - <syscall name="select" number="93"/> - <syscall name="fsync" number="95"/> - <syscall name="setpriority" number="96"/> - <syscall name="socket" number="97"/> - <syscall name="connect" number="98"/> - <syscall name="accept" number="99"/> - <syscall name="getpriority" number="100"/> - <syscall name="rt_sigreturn" number="101"/> - <syscall name="rt_sigaction" number="102"/> - <syscall name="rt_sigprocmask" number="103"/> - <syscall name="rt_sigpending" number="104"/> - <syscall name="rt_sigtimedwait" number="105"/> - <syscall name="rt_sigqueueinfo" number="106"/> - <syscall name="rt_sigsuspend" number="107"/> - <syscall name="setresuid" number="108"/> - <syscall name="getresuid" number="109"/> - <syscall name="setresgid" number="110"/> - <syscall name="getresgid" number="111"/> - <syscall name="recvmsg" number="113"/> - <syscall name="sendmsg" number="114"/> - <syscall name="gettimeofday" number="116"/> - <syscall name="getrusage" number="117"/> - <syscall name="getsockopt" number="118"/> - <syscall name="getcwd" number="119"/> - <syscall name="readv" number="120"/> - <syscall name="writev" number="121"/> - <syscall name="settimeofday" number="122"/> - <syscall name="fchown" number="123"/> - <syscall name="fchmod" number="124"/> - <syscall name="recvfrom" number="125"/> - <syscall name="setreuid" number="126"/> - <syscall name="setregid" number="127"/> - <syscall name="rename" number="128"/> - <syscall name="truncate" number="129"/> - <syscall name="ftruncate" number="130"/> - <syscall name="flock" number="131"/> - <syscall name="lstat64" number="132"/> - <syscall name="sendto" number="133"/> - <syscall name="shutdown" number="134"/> - <syscall name="socketpair" number="135"/> - <syscall name="mkdir" number="136"/> - <syscall name="rmdir" number="137"/> - <syscall name="utimes" number="138"/> - <syscall name="stat64" number="139"/> - <syscall name="sendfile64" number="140"/> - <syscall name="getpeername" number="141"/> - <syscall name="futex" number="142"/> - <syscall name="gettid" number="143"/> - <syscall name="getrlimit" number="144"/> - <syscall name="setrlimit" number="145"/> - <syscall name="pivot_root" number="146"/> - <syscall name="prctl" number="147"/> - <syscall name="pciconfig_read" number="148"/> - <syscall name="pciconfig_write" number="149"/> - <syscall name="getsockname" number="150"/> - <syscall name="inotify_init" number="151"/> - <syscall name="inotify_add_watch" number="152"/> - <syscall name="poll" number="153"/> - <syscall name="getdents64" number="154"/> - <syscall name="inotify_rm_watch" number="156"/> - <syscall name="statfs" number="157"/> - <syscall name="fstatfs" number="158"/> - <syscall name="umount" number="159"/> - <syscall name="sched_set_affinity" number="160"/> - <syscall name="sched_get_affinity" number="161"/> - <syscall name="getdomainname" number="162"/> - <syscall name="setdomainname" number="163"/> - <syscall name="utrap_install" number="164"/> - <syscall name="quotactl" number="165"/> - <syscall name="set_tid_address" number="166"/> - <syscall name="mount" number="167"/> - <syscall name="ustat" number="168"/> - <syscall name="setxattr" number="169"/> - <syscall name="lsetxattr" number="170"/> - <syscall name="fsetxattr" number="171"/> - <syscall name="getxattr" number="172"/> - <syscall name="lgetxattr" number="173"/> - <syscall name="getdents" number="174"/> - <syscall name="setsid" number="175"/> - <syscall name="fchdir" number="176"/> - <syscall name="fgetxattr" number="177"/> - <syscall name="listxattr" number="178"/> - <syscall name="llistxattr" number="179"/> - <syscall name="flistxattr" number="180"/> - <syscall name="removexattr" number="181"/> - <syscall name="lremovexattr" number="182"/> - <syscall name="sigpending" number="183"/> - <syscall name="query_module" number="184"/> - <syscall name="setpgid" number="185"/> - <syscall name="fremovexattr" number="186"/> - <syscall name="tkill" number="187"/> - <syscall name="exit_group" number="188"/> - <syscall name="uname" number="189"/> - <syscall name="init_module" number="190"/> - <syscall name="personality" number="191"/> - <syscall name="remap_file_pages" number="192"/> - <syscall name="epoll_create" number="193"/> - <syscall name="epoll_ctl" number="194"/> - <syscall name="epoll_wait" number="195"/> - <syscall name="ioprio_set" number="196"/> - <syscall name="getppid" number="197"/> - <syscall name="sigaction" number="198"/> - <syscall name="sgetmask" number="199"/> - <syscall name="ssetmask" number="200"/> - <syscall name="sigsuspend" number="201"/> - <syscall name="oldlstat" number="202"/> - <syscall name="uselib" number="203"/> - <syscall name="readdir" number="204"/> - <syscall name="readahead" number="205"/> - <syscall name="socketcall" number="206"/> - <syscall name="syslog" number="207"/> - <syscall name="lookup_dcookie" number="208"/> - <syscall name="fadvise64" number="209"/> - <syscall name="fadvise64_64" number="210"/> - <syscall name="tgkill" number="211"/> - <syscall name="waitpid" number="212"/> - <syscall name="swapoff" number="213"/> - <syscall name="sysinfo" number="214"/> - <syscall name="ipc" number="215"/> - <syscall name="sigreturn" number="216"/> - <syscall name="clone" number="217"/> - <syscall name="ioprio_get" number="218"/> - <syscall name="adjtimex" number="219"/> - <syscall name="sigprocmask" number="220"/> - <syscall name="create_module" number="221"/> - <syscall name="delete_module" number="222"/> - <syscall name="get_kernel_syms" number="223"/> - <syscall name="getpgid" number="224"/> - <syscall name="bdflush" number="225"/> - <syscall name="sysfs" number="226"/> - <syscall name="afs_syscall" number="227"/> - <syscall name="setfsuid" number="228"/> - <syscall name="setfsgid" number="229"/> - <syscall name="_newselect" number="230"/> - <syscall name="splice" number="232"/> - <syscall name="stime" number="233"/> - <syscall name="statfs64" number="234"/> - <syscall name="fstatfs64" number="235"/> - <syscall name="_llseek" number="236"/> - <syscall name="mlock" number="237"/> - <syscall name="munlock" number="238"/> - <syscall name="mlockall" number="239"/> - <syscall name="munlockall" number="240"/> - <syscall name="sched_setparam" number="241"/> - <syscall name="sched_getparam" number="242"/> - <syscall name="sched_setscheduler" number="243"/> - <syscall name="sched_getscheduler" number="244"/> - <syscall name="sched_yield" number="245"/> - <syscall name="sched_get_priority_max" number="246"/> - <syscall name="sched_get_priority_min" number="247"/> - <syscall name="sched_rr_get_interval" number="248"/> - <syscall name="nanosleep" number="249"/> - <syscall name="mremap" number="250"/> - <syscall name="_sysctl" number="251"/> - <syscall name="getsid" number="252"/> - <syscall name="fdatasync" number="253"/> - <syscall name="nfsservctl" number="254"/> - <syscall name="sync_file_range" number="255"/> - <syscall name="clock_settime" number="256"/> - <syscall name="clock_gettime" number="257"/> - <syscall name="clock_getres" number="258"/> - <syscall name="clock_nanosleep" number="259"/> - <syscall name="sched_getaffinity" number="260"/> - <syscall name="sched_setaffinity" number="261"/> - <syscall name="timer_settime" number="262"/> - <syscall name="timer_gettime" number="263"/> - <syscall name="timer_getoverrun" number="264"/> - <syscall name="timer_delete" number="265"/> - <syscall name="timer_create" number="266"/> - <syscall name="vserver" number="267"/> - <syscall name="io_setup" number="268"/> - <syscall name="io_destroy" number="269"/> - <syscall name="io_submit" number="270"/> - <syscall name="io_cancel" number="271"/> - <syscall name="io_getevents" number="272"/> - <syscall name="mq_open" number="273"/> - <syscall name="mq_unlink" number="274"/> - <syscall name="mq_timedsend" number="275"/> - <syscall name="mq_timedreceive" number="276"/> - <syscall name="mq_notify" number="277"/> - <syscall name="mq_getsetattr" number="278"/> - <syscall name="waitid" number="279"/> - <syscall name="tee" number="280"/> - <syscall name="add_key" number="281"/> - <syscall name="request_key" number="282"/> - <syscall name="keyctl" number="283"/> - <syscall name="openat" number="284"/> - <syscall name="mkdirat" number="285"/> - <syscall name="mknodat" number="286"/> - <syscall name="fchownat" number="287"/> - <syscall name="futimesat" number="288"/> - <syscall name="fstatat64" number="289"/> - <syscall name="unlinkat" number="290"/> - <syscall name="renameat" number="291"/> - <syscall name="linkat" number="292"/> - <syscall name="symlinkat" number="293"/> - <syscall name="readlinkat" number="294"/> - <syscall name="fchmodat" number="295"/> - <syscall name="faccessat" number="296"/> - <syscall name="pselect6" number="297"/> - <syscall name="ppoll" number="298"/> - <syscall name="unshare" number="299"/> - <syscall name="set_robust_list" number="300"/> - <syscall name="get_robust_list" number="301"/> - <syscall name="migrate_pages" number="302"/> - <syscall name="mbind" number="303"/> - <syscall name="get_mempolicy" number="304"/> - <syscall name="set_mempolicy" number="305"/> - <syscall name="kexec_load" number="306"/> - <syscall name="move_pages" number="307"/> - <syscall name="getcpu" number="308"/> - <syscall name="epoll_pwait" number="309"/> - <syscall name="utimensat" number="310"/> - <syscall name="signalfd" number="311"/> - <syscall name="timerfd_create" number="312"/> - <syscall name="eventfd" number="313"/> - <syscall name="fallocate" number="314"/> - <syscall name="timerfd_settime" number="315"/> - <syscall name="timerfd_gettime" number="316"/> - <syscall name="signalfd4" number="317"/> - <syscall name="eventfd2" number="318"/> - <syscall name="epoll_create1" number="319"/> - <syscall name="dup3" number="320"/> - <syscall name="pipe2" number="321"/> - <syscall name="inotify_init1" number="322"/> - <syscall name="accept4" number="323"/> - <syscall name="preadv" number="324"/> - <syscall name="pwritev" number="325"/> - <syscall name="rt_tgsigqueueinfo" number="326"/> - <syscall name="perf_event_open" number="327"/> - <syscall name="recvmmsg" number="328"/> -</syscalls_info> diff --git a/share/gdb/system-gdbinit/elinos.py b/share/gdb/system-gdbinit/elinos.py deleted file mode 100644 index cd35aed..0000000 --- a/share/gdb/system-gdbinit/elinos.py +++ /dev/null @@ -1,91 +0,0 @@ -# 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 deleted file mode 100644 index 54ec9ec..0000000 --- a/share/gdb/system-gdbinit/wrs-linux.py +++ /dev/null @@ -1,25 +0,0 @@ -# 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" |