(CommandList
  children: [
    (C {(set)} {(-e)})
    (FuncDef
      name: info
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name quiet))} {(KW_Bang '!') (Lit_Other '=')} 
                          {(DQ (silent_))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(printf)} {(DQ ('  %-7s %s') (EscapedLiteralPart token:<Lit_EscapedChar '\\n'>))} 
                      {(${ VSub_Number 1)} {(${ VSub_Number 2)}
                    )
                  ]
                  spids: [-1 120]
                )
              ]
              spids: [-1 139]
            )
          ]
          spids: [97]
        )
      spids: [93 96]
    )
    (FuncDef
      name: modpost_link
      body: 
        (BraceGroup
          children: [
            (C {(${ VSub_Name LD)} {(${ VSub_Name LDFLAGS)} {(-r)} {(-o)} {(${ VSub_Number 1)} 
              {(${ VSub_Name KBUILD_VMLINUX_INIT)} {(--start-group)} {(${ VSub_Name KBUILD_VMLINUX_MAIN)} {(--end-group)}
            )
          ]
          spids: [154]
        )
      spids: [150 153]
    )
    (FuncDef
      name: vmlinux_link
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:lds)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name objtree) (/) (${ VSub_Name KBUILD_LDS))}
                  spids: [208]
                )
              ]
              spids: [206]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name SRCARCH))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(DQ (um))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(${ VSub_Name LD)} {(${ VSub_Name LDFLAGS)} {(${ VSub_Name LDFLAGS_vmlinux)} 
                      {(-o)} {(${ VSub_Number 2)} {(-T)} {(${ VSub_Name lds)} {(${ VSub_Name KBUILD_VMLINUX_INIT)} {(--start-group)} 
                      {(${ VSub_Name KBUILD_VMLINUX_MAIN)} {(--end-group)} {(${ VSub_Number 1)}
                    )
                  ]
                  spids: [-1 241]
                )
              ]
              else_action: [
                (C {(${ VSub_Name CC)} {(${ VSub_Name CFLAGS_vmlinux)} {(-o)} {(${ VSub_Number 2)} 
                  {(-Wl) (Lit_Comma ',') (-T) (Lit_Comma ',') (${ VSub_Name lds)} {(${ VSub_Name KBUILD_VMLINUX_INIT)} {(-Wl) (Lit_Comma ',') (--start-group)} 
                  {(${ VSub_Name KBUILD_VMLINUX_MAIN)} {(-Wl) (Lit_Comma ',') (--end-group)} {(-lutil)} {(-lrt)} {(-lpthread)} {(${ VSub_Number 1)}
                )
                (C {(rm)} {(-f)} {(linux)})
              ]
              spids: [289 358]
            )
          ]
          spids: [203]
        )
      spids: [199 202]
    )
    (FuncDef
      name: kallsyms
      body: 
        (BraceGroup
          children: [
            (C {(info)} {(KSYM)} {(${ VSub_Number 2)})
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:kallsymopt) op:Equal spids:[385])]
                  spids: [383]
                )
              terminator: <Op_Semi ';'>
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} 
                          {(DQ (${ VSub_Name CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsymopt)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name kallsymopt) (' --symbol-prefix=_'))}
                          spids: [408]
                        )
                      ]
                      spids: [408]
                    )
                  ]
                  spids: [-1 405]
                )
              ]
              spids: [-1 417]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_KALLSYMS_ALL))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsymopt)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name kallsymopt) (' --all-symbols'))}
                          spids: [439]
                        )
                      ]
                      spids: [439]
                    )
                  ]
                  spids: [-1 436]
                )
              ]
              spids: [-1 448]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_KALLSYMS_ABSOLUTE_PERCPU))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsymopt)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name kallsymopt) (' --absolute-percpu'))}
                          spids: [470]
                        )
                      ]
                      spids: [470]
                    )
                  ]
                  spids: [-1 467]
                )
              ]
              spids: [-1 479]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_KALLSYMS_BASE_RELATIVE))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsymopt)
                          op: Equal
                          rhs: {(DQ (${ VSub_Name kallsymopt) (' --base-relative'))}
                          spids: [501]
                        )
                      ]
                      spids: [501]
                    )
                  ]
                  spids: [-1 498]
                )
              ]
              spids: [-1 510]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:aflags)
                  op: Equal
                  rhs: 
                    {
                      (DQ (${ VSub_Name KBUILD_AFLAGS) (' ') (${ VSub_Name KBUILD_AFLAGS_KERNEL) 
                        ('               ') ('\t\t      ') (${ VSub_Name NOSTDINC_FLAGS) (' ') (${ VSub_Name LINUXINCLUDE) (' ') 
                        (${ VSub_Name KBUILD_CPPFLAGS)
                      )
                    }
                  spids: [516]
                )
              ]
              spids: [514]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:afile)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(basename)} {(${ VSub_Number 2)} {(.o)})]
                            )
                          left_token: <Left_Backtick '`'>
                          spids: [547 555]
                        ) (.S)
                      )
                    }
                  spids: [545]
                )
              ]
              spids: [543]
            )
            (Pipeline
              children: [
                (C {(${ VSub_Name NM)} {(-n)} {(${ VSub_Number 1)})
                (SimpleCommand
                  words: [{(scripts/kallsyms)} {(${ VSub_Name kallsymopt)}]
                  redirects: [
                    (Redir
                      op_id: Redir_Great
                      fd: -1
                      arg_word: {(${ VSub_Name afile)}
                      spids: [579]
                    )
                  ]
                )
              ]
              negated: False
            )
            (C {(${ VSub_Name CC)} {(${ VSub_Name aflags)} {(-c)} {(-o)} {(${ VSub_Number 2)} 
              {(${ VSub_Name afile)}
            )
          ]
          spids: [371]
        )
      spids: [367 370]
    )
    (FuncDef
      name: mksysmap
      body: 
        (BraceGroup
          children: [
            (C {(${ VSub_Name CONFIG_SHELL)} {(DQ (${ VSub_Name srctree) (/scripts/mksysmap))} 
              {(${ VSub_Number 1)} {(${ VSub_Number 2)}
            )
          ]
          spids: [619]
        )
      spids: [615 618]
    )
    (FuncDef
      name: sortextable
      body: 
        (BraceGroup
          children: [(C {(${ VSub_Name objtree) (/scripts/sortextable)} {(${ VSub_Number 1)})]
          spids: [648]
        )
      spids: [644 647]
    )
    (FuncDef
      name: cleanup
      body: 
        (BraceGroup
          children: [
            (C {(rm)} {(-f)} {(.old_version)})
            (C {(rm)} {(-f)} {(.tmp_System.map)})
            (C {(rm)} {(-f)} {(.tmp_kallsyms) (Lit_Other '*')})
            (C {(rm)} {(-f)} {(.tmp_version)})
            (C {(rm)} {(-f)} {(.tmp_vmlinux) (Lit_Other '*')})
            (C {(rm)} {(-f)} {(System.map)})
            (C {(rm)} {(-f)} {(vmlinux)})
            (C {(rm)} {(-f)} {(vmlinux.o)})
          ]
          spids: [670]
        )
      spids: [666 669]
    )
    (FuncDef
      name: on_exit
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(cleanup)})]
                  spids: [-1 753]
                )
              ]
              spids: [-1 759]
            )
          ]
          spids: [737]
        )
      spids: [733 736]
    )
    (C {(trap)} {(on_exit)} {(EXIT)})
    (FuncDef
      name: on_signals
      body: (BraceGroup children:[(C {(exit)} {(1)})] spids:[774])
      spids: [770 773]
    )
    (C {(trap)} {(on_signals)} {(HUP)} {(INT)} {(QUIT)} {(TERM)})
    (Case
      to_match: {(DQ (${ VSub_Name KBUILD_VERBOSE))}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (1) (Lit_Other '*')}]
          action: [(C {(set)} {(-x)})]
          spids: [815 818 826 -1]
        )
      ]
      spids: [805 813 828]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (clean))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(cleanup)}) (C {(exit)} {(0)})]
          spids: [-1 848]
        )
      ]
      spids: [-1 858]
    )
    (Case
      to_match: {(DQ (${ VSub_Name KCONFIG_CONFIG))}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other '*') (/) (Lit_Other '*')}]
          action: [(C {(.)} {(DQ (${ VSub_Name KCONFIG_CONFIG))})]
          spids: [874 877 889 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [(C {(.)} {(DQ (./) (${ VSub_Name KCONFIG_CONFIG))})]
          spids: [891 892 -1 908]
        )
      ]
      spids: [864 872 908]
    )
    (C {(info)} {(LD)} {(vmlinux.o)})
    (C {(modpost_link)} {(vmlinux.o)})
    (C {(${ VSub_Name MAKE)} {(-f)} {(DQ (${ VSub_Name srctree) (/scripts/Makefile.modpost))} 
      {(vmlinux.o)}
    )
    (C {(info)} {(GEN)} {(.version)})
    (Sentence
      child: 
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-r)} {(.version)} {(Lit_Other ']')})
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Sentence
                  child: (C {(rm)} {(-f)} {(.version)})
                  terminator: <Op_Semi ';'>
                )
                (Sentence
                  child: 
                    (SimpleCommand
                      words: [{(echo)} {(1)}]
                      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(.version)} spids:[981])]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              spids: [-1 966]
            )
          ]
          else_action: [
            (Sentence
              child: (C {(mv)} {(.version)} {(.old_version)})
              terminator: <Op_Semi ';'>
            )
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(expr)}
                    {(0) 
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(cat)} {(.old_version)})])
                        left_token: <Left_CommandSub '$('>
                        spids: [999 1003]
                      )
                    }
                    {(Lit_Other '+')}
                    {(1)}
                  ]
                  redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(.version)} spids:[1009])]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          spids: [985 1013]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(${ VSub_Name MAKE)} {(-f)} {(DQ (${ VSub_Name srctree) (/scripts/Makefile.build))} 
      {(Lit_VarLike 'obj=') (init)} {(Lit_VarLike 'GCC_PLUGINS_CFLAGS=') (DQ (${ VSub_Name GCC_PLUGINS_CFLAGS))}
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:kallsymso) op:Equal rhs:{(DQ )} spids:[1044])]
      spids: [1044]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:kallsyms_vmlinux) op:Equal rhs:{(DQ )} spids:[1048])]
      spids: [1048]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_KALLSYMS))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kallsymso)
                  op: Equal
                  rhs: {(.tmp_kallsyms2.o)}
                  spids: [1144]
                )
              ]
              spids: [1144]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kallsyms_vmlinux)
                  op: Equal
                  rhs: {(.tmp_vmlinux2)}
                  spids: [1148]
                )
              ]
              spids: [1148]
            )
            (C {(vmlinux_link)} {(DQ )} {(.tmp_vmlinux1)})
            (C {(kallsyms)} {(.tmp_vmlinux1)} {(.tmp_kallsyms1.o)})
            (C {(vmlinux_link)} {(.tmp_kallsyms1.o)} {(.tmp_vmlinux2)})
            (C {(kallsyms)} {(.tmp_vmlinux2)} {(.tmp_kallsyms2.o)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name KALLSYMS_EXTRA_PASS))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsymso)
                          op: Equal
                          rhs: {(.tmp_kallsyms3.o)}
                          spids: [1214]
                        )
                      ]
                      spids: [1214]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:kallsyms_vmlinux)
                          op: Equal
                          rhs: {(.tmp_vmlinux3)}
                          spids: [1218]
                        )
                      ]
                      spids: [1218]
                    )
                    (C {(vmlinux_link)} {(.tmp_kallsyms2.o)} {(.tmp_vmlinux3)})
                    (C {(kallsyms)} {(.tmp_vmlinux3)} {(.tmp_kallsyms3.o)})
                  ]
                  spids: [-1 1211]
                )
              ]
              spids: [-1 1238]
            )
          ]
          spids: [-1 1067]
        )
      ]
      spids: [-1 1240]
    )
    (C {(info)} {(LD)} {(vmlinux)})
    (C {(vmlinux_link)} {(DQ (${ VSub_Name kallsymso))} {(vmlinux)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_BUILDTIME_EXTABLE_SORT))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(info)} {(SORTEX)} {(vmlinux)}) (C {(sortextable)} {(vmlinux)})]
          spids: [-1 1275]
        )
      ]
      spids: [-1 1289]
    )
    (C {(info)} {(SYSMAP)} {(System.map)})
    (C {(mksysmap)} {(vmlinux)} {(System.map)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONFIG_KALLSYMS))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(mksysmap)} {(${ VSub_Name kallsyms_vmlinux)} {(.tmp_System.map)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [(C {(cmp)} {(-s)} {(System.map)} {(.tmp_System.map)})]
                          negated: True
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(Inconsistent)} {(kallsyms)} {(data)}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1354])]
                    )
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(Try)}
                        {(DQ ('make KALLSYMS_EXTRA_PASS=1'))}
                        {(as)}
                        {(a)}
                        {(workaround)}
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[1366])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [-1 1349]
                )
              ]
              spids: [-1 1387]
            )
          ]
          spids: [-1 1323]
        )
      ]
      spids: [-1 1389]
    )
    (C {(rm)} {(-f)} {(.old_version)})
  ]
)