Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 30c1bbffe629985d86bf68796a224ea4eac2685b 70 lines 1.8 kB view raw
1/* 2 * Copyright (C) 2017 Josh Poimboeuf <jpoimboe@redhat.com> 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation; either version 2 7 * of the License, or (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, see <http://www.gnu.org/licenses/>. 16 */ 17 18/* 19 * objtool orc: 20 * 21 * This command analyzes a .o file and adds .orc_unwind and .orc_unwind_ip 22 * sections to it, which is used by the in-kernel ORC unwinder. 23 * 24 * This command is a superset of "objtool check". 25 */ 26 27#include <string.h> 28#include <subcmd/parse-options.h> 29#include "builtin.h" 30#include "check.h" 31 32 33static const char *orc_usage[] = { 34 "objtool orc generate [<options>] file.o", 35 "objtool orc dump file.o", 36 NULL, 37}; 38 39extern const struct option check_options[]; 40extern bool no_fp, no_unreachable; 41 42int cmd_orc(int argc, const char **argv) 43{ 44 const char *objname; 45 46 argc--; argv++; 47 if (!strncmp(argv[0], "gen", 3)) { 48 argc = parse_options(argc, argv, check_options, orc_usage, 0); 49 if (argc != 1) 50 usage_with_options(orc_usage, check_options); 51 52 objname = argv[0]; 53 54 return check(objname, no_fp, no_unreachable, true); 55 56 } 57 58 if (!strcmp(argv[0], "dump")) { 59 if (argc != 2) 60 usage_with_options(orc_usage, check_options); 61 62 objname = argv[1]; 63 64 return orc_dump(objname); 65 } 66 67 usage_with_options(orc_usage, check_options); 68 69 return 0; 70}