(command.CommandList
  children: [
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(${ Id.VSub_Name srcdir) <'/emulparams/elf32ppccommon.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {(${ Id.VSub_Name srcdir) <'/emulparams/plt_unwind.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_GOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_GOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_GOT='> name:DATA_GOT)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SDATA_GOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SDATA_GOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SDATA_GOT='> name:SDATA_GOT)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SEPARATE_GOTPLT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SEPARATE_GOTPLT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEPARATE_GOTPLT='> name:SEPARATE_GOTPLT)
          op: assign_op.Equal
          rhs: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'BSS_PLT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'BSS_PLT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BSS_PLT='> name:BSS_PLT)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GOT='> name:GOT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.got          '> 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name RELOCATING>
                  var_name: RELOCATING
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                ) <' : SPECIAL { *(.got) }'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GOTPLT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GOTPLT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GOTPLT='> name:GOTPLT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.plt          '> 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name RELOCATING>
                  var_name: RELOCATING
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                ) <' : SPECIAL { *(.plt) }'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'PLT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'PLT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PLT='> name:PLT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.plt          '> 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name RELOCATING>
                  var_name: RELOCATING
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                ) <' : SPECIAL { *(.plt) }\n'> <'  .iplt         '> 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name RELOCATING>
                  var_name: RELOCATING
                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<0>})
                  right: <Id.Right_DollarBrace '}'>
                ) <' : { *(.iplt) }'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_TEXT_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_TEXT_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_TEXT_SECTIONS='>
              name: OTHER_TEXT_SECTIONS
            )
          op: assign_op.Equal
          rhs: {(DQ <'*(.glink)'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXTRA_EM_FILE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXTRA_EM_FILE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXTRA_EM_FILE='> name:EXTRA_EM_FILE)
          op: assign_op.Equal
          rhs: {<ppc32elf>}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <grep>
                      more_env: []
                      words: [{<grep>} {<-q>} {(SQ <ld_elf32_spu_emulation>)} {<ldemul-list.h>}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'DATA_START_SYMBOLS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'DATA_START_SYMBOLS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'DATA_START_SYMBOLS='>
                      name: DATA_START_SYMBOLS
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          left: <Id.Left_DollarBrace '${'>
                          token: <Id.VSub_Name RELOCATING>
                          var_name: RELOCATING
                          suffix_op: 
                            (suffix_op.Unary
                              op: <Id.VTest_Plus _>
                              arg_word: 
                                {<'*crt1.o(.data .data.* .gnu.linkonce.d.*)\n'> 
                                  <'    PROVIDE (__spe_handle = .);\n'> <'    *(.data.spehandle)\n'> <'    . += 4 * (DEFINED (__spe_handle) || . != 0);'>
                                }
                            )
                          right: <Id.Right_DollarBrace '}'>
                        )
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [87 100]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
  ]
)