(command.CommandList
  children: [
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:thisdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [112]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<shift>})
      ]
    )
    (C {<echo>} {(SQ )})
    (C {<echo>} 
      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>) <Id.Lit_Pound '#'> 
        <Id.Lit_Pound '#'> <Id.Lit_Pound '#'>
      } {<DIRECTORY>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$thisdir')}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sysdirs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.ForEach
                        iter_name: dir
                        iter_words: [{($ Id.VSub_DollarName '$sysdirs')}]
                        do_arg_iter: F
                        body: 
                          (command.DoGroup
                            children: [
                              (command.Sentence
                                child: 
                                  (command.AndOr
                                    ops: [Id.Op_DAmp]
                                    children: [
                                      (C {<test>} {($ Id.VSub_DollarName '$dir')} {<Id.Lit_Equals '='>} 
                                        {($ Id.VSub_DollarName '$thisdir')}
                                      )
                                      (command.ControlFlow
                                        token: <Id.ControlFlow_Break break>
                                      )
                                    ]
                                  )
                                terminator: <Id.Op_Semi _>
                              )
                              (command.Sentence
                                child: (C {<echo>} {($ Id.VSub_DollarName '$dir')})
                                terminator: <Id.Op_Semi _>
                              )
                            ]
                          )
                      )
                    ]
                  )
              )
            }
          spids: [146]
        )
      ]
    )
    (C {<echo>} 
      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>) <Id.Lit_Pound '#'> 
        <Id.Lit_Pound '#'> <Id.Lit_Pound '#'>
      } {<SYSDIRS>} {<Id.Lit_Equals '='>} {($ Id.VSub_DollarName '$sysdirs')}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:calls)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (C {<sed>} {(SQ <'s/#.*$//\n'> <'/^[ \t]*$/d'>)} 
                        {($ Id.VSub_DollarName '$thisdir') </syscalls.list>}
                      )
                    ]
                  )
              )
            }
          spids: [201]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:calls)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {<echo>} {(DQ ($ Id.VSub_DollarName '$calls'))})
                          (command.WhileUntil
                            keyword: <Id.KW_While while>
                            cond: [
                              (command.Sentence
                                child: (C {<read>} {<file>} {<caller>} {<rest>})
                                terminator: <Id.Op_Semi _>
                              )
                            ]
                            body: 
                              (command.DoGroup
                                children: [
                                  (command.Sentence
                                    child: 
                                      (command.ShAssignment
                                        pairs: [
                                          (assign_pair
                                            lhs: (sh_lhs_expr.Name name:srcfile)
                                            op: assign_op.Equal
                                            rhs: {<->}
                                            spids: [270]
                                          )
                                        ]
                                      )
                                    terminator: <Id.Op_Semi _>
                                  )
                                  (command.Sentence
                                    child: 
                                      (command.ForEach
                                        iter_name: dir
                                        iter_words: [{($ Id.VSub_DollarName '$sysdirs')}]
                                        do_arg_iter: F
                                        body: 
                                          (command.DoGroup
                                            children: [
                                              (command.Sentence
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DPipe Id.Op_DPipe Id.Op_DAmp]
                                                    children: [
                                                      (command.BraceGroup
                                                        children: [
                                                          (command.Sentence
                                                            child: 
                                                              (command.AndOr
                                                                ops: [Id.Op_DAmp]
                                                                children: [
                                                                  (C {<test>} {<-f>} 
                                                                    {($ Id.VSub_DollarName '$dir') 
                                                                      </> ($ Id.VSub_DollarName '$file') <.c>
                                                                    }
                                                                  )
                                                                  (command.ShAssignment
                                                                    pairs: [
                                                                      (assign_pair
                                                                        lhs: 
                                                                          (sh_lhs_expr.Name
                                                                            name: srcfile
                                                                          )
                                                                        op: assign_op.Equal
                                                                        rhs: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$dir'
                                                                            ) </> ($ Id.VSub_DollarName '$file') <.c>
                                                                          }
                                                                        spids: [300]
                                                                      )
                                                                    ]
                                                                  )
                                                                ]
                                                              )
                                                            terminator: <Id.Op_Semi _>
                                                          )
                                                        ]
                                                      )
                                                      (command.BraceGroup
                                                        children: [
                                                          (command.Sentence
                                                            child: 
                                                              (command.AndOr
                                                                ops: [Id.Op_DAmp]
                                                                children: [
                                                                  (C {<test>} {<-f>} 
                                                                    {($ Id.VSub_DollarName '$dir') 
                                                                      </> ($ Id.VSub_DollarName '$file') <.S>
                                                                    }
                                                                  )
                                                                  (command.ShAssignment
                                                                    pairs: [
                                                                      (assign_pair
                                                                        lhs: 
                                                                          (sh_lhs_expr.Name
                                                                            name: srcfile
                                                                          )
                                                                        op: assign_op.Equal
                                                                        rhs: 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$dir'
                                                                            ) </> ($ Id.VSub_DollarName '$file') <.S>
                                                                          }
                                                                        spids: [325]
                                                                      )
                                                                    ]
                                                                  )
                                                                ]
                                                              )
                                                            terminator: <Id.Op_Semi _>
                                                          )
                                                        ]
                                                      )
                                                      (command.BraceGroup
                                                        children: [
                                                          (command.Sentence
                                                            child: 
                                                              (command.AndOr
                                                                ops: [Id.Op_DAmp]
                                                                children: [
                                                                  (C {<test>} 
                                                                    {<x> 
                                                                      ($ Id.VSub_DollarName '$caller')
                                                                    } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<x->}
                                                                  )
                                                                  (command.BraceGroup
                                                                    children: [
                                                                      (command.Sentence
                                                                        child: 
                                                                          (command.AndOr
                                                                            ops: [Id.Op_DPipe]
                                                                            children: [
                                                                              (command.BraceGroup
                                                                                children: [
                                                                                  (command.Sentence
                                                                                    child: 
                                                                                      (command.AndOr
                                                                                        ops: [
Id.Op_DAmp
                                                                                        ]
                                                                                        children: [
                                                                                          (C {<test>} 
                                                                                            {<-f>} {($ Id.VSub_DollarName '$dir') </> ($ Id.VSub_DollarName '$caller') <.c>}
                                                                                          )
                                                                                          (command.ShAssignment
                                                                                            pairs: [
                                                                                              (assign_pair
                                                                                                lhs: 
                                                                                                  (sh_lhs_expr.Name
                                                                                                    name: 
srcfile
                                                                                                  )
                                                                                                op: 
assign_op.Equal
                                                                                                rhs: 
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName '$dir'
                                                                                                    ) </> ($ Id.VSub_DollarName '$caller') <.c>
                                                                                                  }
                                                                                                spids: [
367
                                                                                                ]
                                                                                              )
                                                                                            ]
                                                                                          )
                                                                                        ]
                                                                                      )
                                                                                    terminator: 
                                                                                      <Id.Op_Semi _>
                                                                                  )
                                                                                ]
                                                                              )
                                                                              (command.BraceGroup
                                                                                children: [
                                                                                  (command.Sentence
                                                                                    child: 
                                                                                      (command.AndOr
                                                                                        ops: [
Id.Op_DAmp
                                                                                        ]
                                                                                        children: [
                                                                                          (C {<test>} 
                                                                                            {<-f>} {($ Id.VSub_DollarName '$dir') </> ($ Id.VSub_DollarName '$caller') <.S>}
                                                                                          )
                                                                                          (command.ShAssignment
                                                                                            pairs: [
                                                                                              (assign_pair
                                                                                                lhs: 
                                                                                                  (sh_lhs_expr.Name
                                                                                                    name: 
srcfile
                                                                                                  )
                                                                                                op: 
assign_op.Equal
                                                                                                rhs: 
                                                                                                  {
                                                                                                    ($ 
Id.VSub_DollarName '$dir'
                                                                                                    ) </> ($ Id.VSub_DollarName '$caller') <.S>
                                                                                                  }
                                                                                                spids: [
392
                                                                                                ]
                                                                                              )
                                                                                            ]
                                                                                          )
                                                                                        ]
                                                                                      )
                                                                                    terminator: 
                                                                                      <Id.Op_Semi _>
                                                                                  )
                                                                                ]
                                                                              )
                                                                            ]
                                                                          )
                                                                        terminator: <Id.Op_Semi _>
                                                                      )
                                                                    ]
                                                                  )
                                                                ]
                                                              )
                                                            terminator: <Id.Op_Semi _>
                                                          )
                                                        ]
                                                      )
                                                      (command.ControlFlow
                                                        token: <Id.ControlFlow_Break break>
                                                      )
                                                    ]
                                                  )
                                                terminator: <Id.Op_Semi _>
                                              )
                                            ]
                                          )
                                      )
                                    terminator: <Id.Op_Semi _>
                                  )
                                  (command.Sentence
                                    child: 
                                      (C {<echo>} {($ Id.VSub_DollarName '$file')} 
                                        {($ Id.VSub_DollarName '$srcfile')} {($ Id.VSub_DollarName '$caller')} {($ Id.VSub_DollarName '$rest')}
                                      )
                                    terminator: <Id.Op_Semi _>
                                  )
                                ]
                              )
                          )
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [218]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$calls'))})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
      ]
    )
    (command.ShFunction
      name: emit_weak_aliases
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:vcount)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [468]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$any_versioned')} 
                          {<Id.Lit_Equals '='>} {<t>} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <"\t echo '#include <shlib-compat.h>'; "> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          )
                        )
                      }
                    )
                  ]
                  spids: [494 507]
                )
              ]
            )
            (command.ForEach
              iter_name: name
              iter_words: [{($ Id.VSub_DollarName '$weak')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$name')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <Id.Lit_Other '@'> <Id.Lit_Other '@'> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:base)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {($ Id.VSub_DollarName '$name')})
                                                  (C {<sed>} {(SQ <'s/@@.*//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [548]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ver)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {($ Id.VSub_DollarName '$name')})
                                                  (C {<sed>} {(SQ <'s/.*@@//;s/\\./_/g'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [566]
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo '#if IS_IN (libc)'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$vcount'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:source)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$strong')}
                                          spids: [609]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:vcount)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [613]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [594 606]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:source)
                                      op: assign_op.Equal
                                      rhs: {(DQ (${ Id.VSub_Name strong) <_> (${ Id.VSub_Name vcount))}
                                      spids: [620]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vcount)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<expr>} {($ Id.VSub_DollarName '$vcount')} 
                                                    {<Id.Lit_Other '+'>} {<1>}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [632]
                                    )
                                  ]
                                )
                                (C {<echo>} 
                                  {
                                    (DQ <"\t echo 'strong_alias ("> ($ Id.VSub_DollarName '$strong') 
                                      <', '> ($ Id.VSub_DollarName '$source') <")'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                    )
                                  }
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'versioned_symbol (libc, "> 
                                  ($ Id.VSub_DollarName '$source') <', '> ($ Id.VSub_DollarName '$base') <', '> ($ Id.VSub_DollarName '$ver') <")'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo '#else'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'strong_alias ("> ($ Id.VSub_DollarName '$strong') <', '> 
                                  ($ Id.VSub_DollarName '$base') <")'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo '#endif'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [541 545 703 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Other '@'> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:base)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {($ Id.VSub_DollarName '$name')})
                                                  (C {<sed>} {(SQ <'s/@.*//'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [712]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ver)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {($ Id.VSub_DollarName '$name')})
                                                  (C {<sed>} {(SQ <'s/.*@//;s/\\./_/g'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [730]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$ver')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Other ':'> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compat_ver)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name ver>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_Pound
                                                    arg_word: {<'*:'>}
                                                  )
                                              )
                                            }
                                          spids: [763]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:ver)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name ver>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_DPercent
                                                    arg_word: {<':*'>}
                                                  )
                                              )
                                            }
                                          spids: [771]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compat_cond)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <' && SHLIB_COMPAT (libc, '> 
                                                ($ Id.VSub_DollarName '$ver') <', '> ($ Id.VSub_DollarName '$compat_ver') <')'>
                                              )
                                            }
                                          spids: [779]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [757 760 789 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compat_cond)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [796]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [792 793 799 -1]
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo '#if defined SHARED && IS_IN (libc)"> 
                                  ($ Id.VSub_DollarName '$compat_cond') <"'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$vcount'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:source)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$strong')}
                                          spids: [830]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:vcount)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [834]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [815 827]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:source)
                                      op: assign_op.Equal
                                      rhs: {(DQ (${ Id.VSub_Name strong) <_> (${ Id.VSub_Name vcount))}
                                      spids: [841]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vcount)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (C {<expr>} {($ Id.VSub_DollarName '$vcount')} 
                                                    {<Id.Lit_Other '+'>} {<1>}
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [853]
                                    )
                                  ]
                                )
                                (C {<echo>} 
                                  {
                                    (DQ <"\t echo 'strong_alias ("> ($ Id.VSub_DollarName '$strong') 
                                      <', '> ($ Id.VSub_DollarName '$source') <")'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                    )
                                  }
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'compat_symbol (libc, "> 
                                  ($ Id.VSub_DollarName '$source') <', '> ($ Id.VSub_DollarName '$base') <', '> ($ Id.VSub_DollarName '$ver') <")'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo '#endif'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [706 709 904 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.KW_Bang '!'> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        command_list: 
                                          (command.CommandList
                                            children: [
                                              (command.Pipeline
                                                children: [
                                                  (C {<echo>} {($ Id.VSub_DollarName '$name')})
                                                  (C {<sed>} {(SQ <s/.//>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                      )
                                    }
                                  spids: [912]
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'strong_alias ("> ($ Id.VSub_DollarName '$strong') <', '> 
                                  ($ Id.VSub_DollarName '$name') <")'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'hidden_def ("> ($ Id.VSub_DollarName '$name') <")'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [907 909 952 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'weak_alias ("> ($ Id.VSub_DollarName '$strong') <', '> 
                                  ($ Id.VSub_DollarName '$name') <")'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                )
                              }
                            )
                            (C {<echo>} 
                              {
                                (DQ <"\t echo 'hidden_weak ("> ($ Id.VSub_DollarName '$name') <")'; "> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\\\'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [955 956 981 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.Pipeline
      children: [
        (C {<echo>} {(DQ ($ Id.VSub_DollarName '$calls'))})
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: [
            (command.Sentence
              child: 
                (C {<read>} {<file>} {<srcfile>} {<caller>} {<syscall>} {<args>} {<strong>} {<weak>})
              terminator: <Id.Op_Semi _>
            )
          ]
          body: 
            (command.DoGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:vdso_syscall)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [1027]
                    )
                  ]
                )
                (command.Case
                  to_match: {<x> (DQ ($ Id.VSub_DollarName '$syscall'))}
                  arms: [
                    (case_arm
                      pat_list: [
                        {<Id.Lit_Star '*'> <Id.Lit_Other ':'> <Id.Lit_Star '*'> <Id.Lit_Other '@'> 
                          <Id.Lit_Star '*'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:vdso_syscall)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name syscall>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Pound
                                          arg_word: {<'*:'>}
                                        )
                                    )
                                  )
                                }
                              spids: [1048]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:syscall)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name syscall>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_Percent
                                          arg_word: {<':*'>}
                                        )
                                    )
                                  )
                                }
                              spids: [1058]
                            )
                          ]
                        )
                      ]
                      spids: [1040 1045 1068 -1]
                    )
                  ]
                )
                (command.Case
                  to_match: {<x> (DQ ($ Id.VSub_DollarName '$syscall'))}
                  arms: [
                    (case_arm
                      pat_list: [{<x->}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:callnum)
                              op: assign_op.Equal
                              rhs: {<_>}
                              spids: [1088]
                            )
                          ]
                        )
                      ]
                      spids: [1085 1086 1091 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:callnum)
                              op: assign_op.Equal
                              rhs: {<->}
                              spids: [1102]
                            )
                          ]
                        )
                        (C {<eval>} 
                          {
                            (command_sub
                              left_token: <Id.Left_Backtick '`'>
                              command_list: 
                                (command.CommandList
                                  children: [
                                    (command.Pipeline
                                      children: [
                                        (command.BraceGroup
                                          children: [
                                            (command.Sentence
                                              child: (C {<echo>} {(DQ <'#include <sysdep.h>'>)})
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (C {<echo>} 
                                                  {
                                                    (DQ <'callnum=SYS_ify ('> 
                                                      ($ Id.VSub_DollarName '$syscall') <')'>
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                        (C {($ Id.VSub_DollarName '$asm_CPP')} {<-D__OPTIMIZE__>} {<->})
                                        (C {<sed>} {<-n>} {<-e>} 
                                          {
                                            (DQ <'/^callnum=.*'> ($ Id.VSub_DollarName '$syscall') </d>)
                                          } {<-e>} 
                                          {
                                            (DQ <'/^'> <Id.Lit_Other '\\'> <'(callnum='> 
                                              <Id.Lit_Other '\\'> <')[ \t]*'> <Id.Lit_Other '\\'> <'(.*'> <Id.Lit_Other '\\'> <')/s//'> <Id.Lit_Other '\\'> <"1'"> 
                                              <Id.Lit_Other '\\'> <"2'/p">
                                            )
                                          }
                                        )
                                      ]
                                      negated: F
                                    )
                                  ]
                                )
                            )
                          }
                        )
                      ]
                      spids: [1094 1095 1196 -1]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:cancellable)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [1203]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:noerrno)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [1207]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:errval)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [1211]
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$args')}
                  arms: [
                    (case_arm
                      pat_list: [{<C> <Id.Lit_Star '*'>}]
                      action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:cancellable)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1226]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {($ Id.VSub_DollarName '$args')})
                                              (C {<sed>} {(SQ <'s/C:\\?//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [1230]
                            )
                          ]
                        )
                      ]
                      spids: [1222 1224 1248 -1]
                    )
                    (case_arm
                      pat_list: [{<E> <Id.Lit_Star '*'>}]
                      action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:noerrno)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1255]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {($ Id.VSub_DollarName '$args')})
                                              (C {<sed>} {(SQ <'s/E:\\?//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [1259]
                            )
                          ]
                        )
                      ]
                      spids: [1251 1253 1277 -1]
                    )
                    (case_arm
                      pat_list: [{<V> <Id.Lit_Star '*'>}]
                      action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:errval)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [1284]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    command_list: 
                                      (command.CommandList
                                        children: [
                                          (command.Pipeline
                                            children: [
                                              (C {<echo>} {($ Id.VSub_DollarName '$args')})
                                              (C {<sed>} {(SQ <'s/V:\\?//'>)})
                                            ]
                                            negated: F
                                          )
                                        ]
                                      )
                                  )
                                }
                              spids: [1288]
                            )
                          ]
                        )
                      ]
                      spids: [1280 1282 1306 -1]
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$args')}
                  arms: [
                    (case_arm
                      pat_list: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$args')}
                              spids: [1329]
                            )
                          ]
                        )
                      ]
                      spids: [1324 1327 1331 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_QMark '?'> <Id.Lit_Other ':'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<0>}
                              spids: [1338]
                            )
                          ]
                        )
                      ]
                      spids: [1334 1336 1340 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [1348]
                            )
                          ]
                        )
                      ]
                      spids: [1343 1346 1350 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>}
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<2>}
                              spids: [1359]
                            )
                          ]
                        )
                      ]
                      spids: [1353 1357 1361 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<3>}
                              spids: [1371]
                            )
                          ]
                        )
                      ]
                      spids: [1364 1369 1373 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<4>}
                              spids: [1384]
                            )
                          ]
                        )
                      ]
                      spids: [1376 1382 1386 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<5>}
                              spids: [1398]
                            )
                          ]
                        )
                      ]
                      spids: [1389 1396 1400 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<6>}
                              spids: [1413]
                            )
                          ]
                        )
                      ]
                      spids: [1403 1411 1415 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<7>}
                              spids: [1429]
                            )
                          ]
                        )
                      ]
                      spids: [1418 1427 1431 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<8>}
                              spids: [1446]
                            )
                          ]
                        )
                      ]
                      spids: [1434 1444 1448 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<Id.Lit_QMark '?'> <Id.Lit_Other ':'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> 
                          <Id.Lit_QMark '?'>
                        }
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nargs)
                              op: assign_op.Equal
                              rhs: {<9>}
                              spids: [1464]
                            )
                          ]
                        )
                      ]
                      spids: [1451 1462 1466 -1]
                    )
                  ]
                )
                (C {<echo>} {(SQ )})
                (C {<echo>} 
                  {
                    (DQ <'#### CALL='> ($ Id.VSub_DollarName '$file') <' NUMBER='> 
                      ($ Id.VSub_DollarName '$callnum') <' ARGS='> ($ Id.VSub_DollarName '$args') <' SOURCE='> ($ Id.VSub_DollarName '$srcfile')
                    )
                  }
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:any_versioned)
                      op: assign_op.Equal
                      rhs: {<f>}
                      spids: [1510]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:shared_only)
                      op: assign_op.Equal
                      rhs: {<f>}
                      spids: [1514]
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$weak')}
                  arms: [
                    (case_arm
                      pat_list: [
                        {<Id.Lit_Star '*'> <Id.Lit_Other '@'> <Id.Lit_Other '@'> <Id.Lit_Star '*'>}
                      ]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:any_versioned)
                              op: assign_op.Equal
                              rhs: {<t>}
                              spids: [1531]
                            )
                          ]
                        )
                      ]
                      spids: [1525 1529 1534 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Other '@'> <Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:any_versioned)
                              op: assign_op.Equal
                              rhs: {<t>}
                              spids: [1542]
                            )
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:shared_only)
                              op: assign_op.Equal
                              rhs: {<t>}
                              spids: [1545]
                            )
                          ]
                        )
                      ]
                      spids: [1537 1540 1548 -1]
                    )
                  ]
                )
                (command.Case
                  to_match: 
                    {<x> ($ Id.VSub_DollarName '$srcfile') (DQ ($ Id.VSub_DollarName '$callnum'))}
                  arms: [
                    (case_arm
                      pat_list: [{<x-->}]
                      action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<x> ($ Id.VSub_DollarName '$caller')} 
                                      {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<x->} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {($ Id.VSub_DollarName '$noerrno')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.Simple
                                          words: [
                                            {<echo>}
                                            {
                                              (DQ ($ Id.VSub_Number '$0') <': no number for '> 
                                                ($ Id.VSub_DollarName '$fileno') <', no-error syscall ('> ($ Id.VSub_DollarName '$strong') <' '> ($ Id.VSub_DollarName '$weak') <')'>
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir.Redir
                                              op: <Id.Redir_GreatAnd '>&'>
                                              fd: -1
                                              arg_word: {<2>}
                                            )
                                          ]
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {<2>}
                                        )
                                      ]
                                      spids: [1592 1606]
                                    )
                                  ]
                                )
                                (C {<echo>} 
                                  {
                                    (DQ <'unix-stub-syscalls += '> ($ Id.VSub_DollarName '$strong') 
                                      <' '> ($ Id.VSub_DollarName '$weak')
                                    )
                                  }
                                )
                              ]
                              spids: [1574 1589]
                            )
                          ]
                        )
                      ]
                      spids: [1566 1567 1647 -1]
                    )
                    (case_arm
                      pat_list: [{<x> <Id.Lit_Star '*'> <->}]
                      spids: [1650 1653 1655 -1]
                    )
                    (case_arm
                      pat_list: [{<x-> <Id.Lit_Star '*'>}]
                      action: [
                        (C {<echo>} 
                          {
                            (DQ <'ifeq (,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                              <'(filter '> ($ Id.VSub_DollarName '$file') <','> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                              <'(unix-syscalls)))'>
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {($ Id.VSub_DollarName '$shared_only')} 
                                      {<Id.Lit_Equals '='>} {<t>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<echo>} 
                                  {
                                    (DQ <'ifneq (,'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <'(filter .os,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(object-suffixes)))'>
                                    )
                                  }
                                )
                              ]
                              spids: [1680 1691]
                            )
                          ]
                        )
                        (C {<echo>} {(DQ <'unix-syscalls += '> ($ Id.VSub_DollarName '$file'))})
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (C {<test>} {<x> ($ Id.VSub_DollarName '$caller')} {<Id.Lit_Equals '='>} 
                              {<x->}
                            )
                            (C {<echo>} 
                              {(DQ <'unix-extra-syscalls += '> ($ Id.VSub_DollarName '$file'))}
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {($ Id.VSub_DollarName '$shared_only')} 
                                      {<Id.Lit_Equals '='>} {<t>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (C {<echo>} 
                                  {(DQ <'shared-only-routines += '> ($ Id.VSub_DollarName '$file'))}
                                )
                                (command.AndOr
                                  ops: [Id.Op_DPipe]
                                  children: [
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vdso_syscall'))})
                                    (C {<echo>} 
                                      {
                                        (DQ 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                          ) <'(objpfx)'> (${ Id.VSub_Name file) <'.os: '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\\\'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [1748 1759]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:object_suffixes)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'$(object-suffixes)'>)}
                                  spids: [1800]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$vdso_syscall'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:object_suffixes)
                                      op: assign_op.Equal
                                      rhs: {(SQ <'$(object-suffixes-noshared)'>)}
                                      spids: [1816]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<echo>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                  <'(foreach p,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(sysd-rules-targets),'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'(foreach o,'> (${ Id.VSub_Name object_suffixes) <','> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'(objpfx)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(patsubst %,'> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'p,'> ($ Id.VSub_DollarName '$file') <')'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                  <'o)): '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>)
                                )
                              }
                            )
                          ]
                        )
                        (C {<echo>} 
                          {
                            (DQ <'\t\t'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                              <'(..)sysdeps/unix/make-syscalls.sh'>
                            )
                          }
                        )
                        (command.Case
                          to_match: {<x> (DQ ($ Id.VSub_DollarName '$callnum'))}
                          arms: [
                            (case_arm
                              pat_list: [{<x_>}]
                              action: [
                                (C {<echo>} 
                                  {
                                    (DQ <'\t'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <'(make-target-directory)\n'> <"\t(echo '/* Dummy module requested by syscalls.list */'; "> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      )
                                    )
                                  }
                                )
                              ]
                              spids: [1874 1875 1890 -1]
                            )
                            (case_arm
                              pat_list: [{<x> <Id.Lit_Star '*'>}]
                              action: [
                                (C {<echo>} 
                                  {
                                    (DQ <'\t'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <'(make-target-directory)\n'> <"\t(echo '#define SYSCALL_NAME "> ($ Id.VSub_DollarName '$syscall') 
                                      <"'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'\n'> <"\t echo '#define SYSCALL_NARGS "> 
                                      ($ Id.VSub_DollarName '$nargs') <"'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'\n'> 
                                      <"\t echo '#define SYSCALL_SYMBOL "> ($ Id.VSub_DollarName '$strong') <"'; "> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                      <'\n'> <"\t echo '#define SYSCALL_CANCELLABLE "> ($ Id.VSub_DollarName '$cancellable') <"'; "> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'\n'> <"\t echo '#define SYSCALL_NOERRNO "> ($ Id.VSub_DollarName '$noerrno') <"'; "> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'\n'> <"\t echo '#define SYSCALL_ERRVAL "> ($ Id.VSub_DollarName '$errval') <"'; "> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'\n'> <"\t echo '#include <syscall-template.S>'; "> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      )
                                    )
                                  }
                                )
                              ]
                              spids: [1893 1895 1940 -1]
                            )
                          ]
                        )
                        (C {<emit_weak_aliases>})
                        (C {<echo>} 
                          {(SQ <'\t) | $(compile-syscall) '>) 
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                              <'(foreach p,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(patsubst %'> 
                              ($ Id.VSub_DollarName '$file') <',%,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'(basename '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) <'(@F))),'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'('> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) <'(p)CPPFLAGS))'>
                            )
                          }
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$vdso_syscall'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vdso_symbol)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: <Id.VSub_Name vdso_syscall>
                                              suffix_op: 
                                                (suffix_op.Unary
                                                  op_id: Id.VOp1_Percent
                                                  arg_word: {<'@*'>}
                                                )
                                            )
                                          )
                                        }
                                      spids: [2010]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vdso_symver)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: <Id.VSub_Name vdso_syscall>
                                              suffix_op: 
                                                (suffix_op.Unary
                                                  op_id: Id.VOp1_Pound
                                                  arg_word: {<'*@'>}
                                                )
                                            )
                                          )
                                        }
                                      spids: [2020]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vdso_symver)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<echo>} 
                                                        {(DQ ($ Id.VSub_DollarName '$vdso_symver'))}
                                                      )
                                                      (C {<sed>} {(SQ <'s/\\./_/g'>)})
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [2030]
                                    )
                                  ]
                                )
                                (command.Simple
                                  words: [{<cat>}]
                                  redirects: [
                                    (redir.HereDoc
                                      op: <Id.Redir_DLess '<<'>
                                      fd: -1
                                      here_begin: {<EOF>}
                                      here_end_span_id: 2138
                                      stdin_parts: [
                                        <'\n'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(foreach p,'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(sysd-rules-targets),'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(objpfx)'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(patsubst %,'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'p,'>
                                        ($ Id.VSub_DollarName '$file')
                                        <').os): '>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <'\t\t'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(..)sysdeps/unix/make-syscalls.sh\n'>
                                        <'\t'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(make-target-directory)\n'>
                                        <"\t(echo '#include <dl-vdso.h>'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo 'extern void *">
                                        (${ Id.VSub_Name strong)
                                        <'_ifunc (void) __asm ('>
                                        <Id.Right_DoubleQuote '"'>
                                        (${ Id.VSub_Name strong)
                                        <Id.Right_DoubleQuote '"'>
                                        <");'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo 'void *'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo '">
                                        (${ Id.VSub_Name strong)
                                        <"_ifunc (void)'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo '{'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo '  PREPARE_VERSION_KNOWN (symver, ">
                                        (${ Id.VSub_Name vdso_symver)
                                        <");'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo '  return _dl_vdso_vsym (">
                                        <Id.Right_DoubleQuote '"'>
                                        (${ Id.VSub_Name vdso_symbol)
                                        <Id.Right_DoubleQuote '"'>
                                        <", &symver);'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo '}'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo 'asm (">
                                        <Id.Right_DoubleQuote '"'>
                                        <'.type '>
                                        (${ Id.VSub_Name strong)
                                        <', %gnu_indirect_function'>
                                        <Id.Right_DoubleQuote '"'>
                                        <");'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                      ]
                                    )
                                  ]
                                )
                                (command.Simple
                                  words: [{<cat>}]
                                  redirects: [
                                    (redir.HereDoc
                                      op: <Id.Redir_DLess '<<'>
                                      fd: -1
                                      here_begin: {<EOF>}
                                      here_end_span_id: 2182
                                      stdin_parts: [
                                        <"\t echo 'asm (">
                                        <Id.Right_DoubleQuote '"'>
                                        <'.globl __GI_'>
                                        (${ Id.VSub_Name strong)
                                        <Id.Right_DoubleQuote '"'>
                                        <");'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                        <"\t echo 'asm (">
                                        <Id.Right_DoubleQuote '"'>
                                        <__GI_>
                                        (${ Id.VSub_Name strong)
                                        <' = '>
                                        (${ Id.VSub_Name strong)
                                        <Id.Right_DoubleQuote '"'>
                                        <");'; ">
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\\\'>
                                        )
                                        <'\n'>
                                      ]
                                    )
                                  ]
                                )
                                (C {<emit_weak_aliases>})
                                (command.Simple
                                  words: [{<cat>}]
                                  redirects: [
                                    (redir.HereDoc
                                      op: <Id.Redir_DLess '<<'>
                                      fd: -1
                                      here_begin: {<EOF>}
                                      here_end_span_id: 2211
                                      stdin_parts: [
                                        <'\t) | '>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(compile-stdin.c) '>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(foreach p,'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(patsubst %'>
                                        ($ Id.VSub_DollarName '$file')
                                        <',%,'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(basename '>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(@F))),'>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'('>
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        )
                                        <'(p)CPPFLAGS))\n'>
                                      ]
                                    )
                                  ]
                                )
                              ]
                              spids: [1984 1995]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (C {<test>} {($ Id.VSub_DollarName '$shared_only')} 
                                      {<Id.Lit_Equals '='>} {<t>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [(C {<echo>} {<endif>})]
                              spids: [2217 2228]
                            )
                          ]
                        )
                        (C {<echo>} {<endif>})
                      ]
                      spids: [1661 1663 2249 -1]
                    )
                  ]
                )
              ]
            )
        )
      ]
      negated: F
    )
  ]
)