(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEMPLATE_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEMPLATE_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEMPLATE_NAME='> name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GENERATE_SHLIB_SCRIPT='>
              name: GENERATE_SHLIB_SCRIPT
            )
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'GENERATE_PIE_SCRIPT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'GENERATE_PIE_SCRIPT='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'GENERATE_PIE_SCRIPT='>
              name: GENERATE_PIE_SCRIPT
            )
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'SCRIPT_NAME='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'SCRIPT_NAME='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SCRIPT_NAME='> name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OUTPUT_FORMAT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OUTPUT_FORMAT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUTPUT_FORMAT='> name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-powerpc>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NO_REL_RELOCS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NO_REL_RELOCS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NO_REL_RELOCS='> name:NO_REL_RELOCS)
          op: assign_op.Equal
          rhs: {<yes>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEXT_START_ADDR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEXT_START_ADDR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXT_START_ADDR='> name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x01800000>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MAXPAGESIZE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MAXPAGESIZE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAXPAGESIZE='> name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (MAXPAGESIZE)'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'COMMONPAGESIZE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'COMMONPAGESIZE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMMONPAGESIZE='> name:COMMONPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (COMMONPAGESIZE)'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ARCH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ARCH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ARCH='> name:ARCH)
          op: assign_op.Equal
          rhs: {<powerpc> <Id.Lit_Colon ':'> <common>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'MACHINE='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'MACHINE='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MACHINE='> name:MACHINE)
          op: assign_op.Equal
          rhs: (rhs_word__Empty)
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EXECUTABLE_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EXECUTABLE_SYMBOLS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXECUTABLE_SYMBOLS='> name:EXECUTABLE_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'PROVIDE (__stack = 0); PROVIDE (___stack = 0);'>)}
        )
      ]
      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: <test>
                      more_env: []
                      words: [{<test>} {<-z>} {(DQ (${ Id.VSub_Name CREATE_SHLIB))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SBSS_START_SYMBOLS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SBSS_START_SYMBOLS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SBSS_START_SYMBOLS='>
                      name: SBSS_START_SYMBOLS
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'PROVIDE (__sbss_start = .); PROVIDE (___sbss_start = .);'>)}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'SBSS_END_SYMBOLS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'SBSS_END_SYMBOLS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'SBSS_END_SYMBOLS='>
                      name: SBSS_END_SYMBOLS
                    )
                  op: assign_op.Equal
                  rhs: {(DQ <'PROVIDE (__sbss_end = .); PROVIDE (___sbss_end = .);'>)}
                )
              ]
              redirects: []
            )
          ]
          spids: [51 64]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [{<unset>} {<SDATA_START_SYMBOLS>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [{<unset>} {<SDATA2_START_SYMBOLS>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [{<unset>} {<SBSS_START_SYMBOLS>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <unset>
          more_env: []
          words: [{<unset>} {<SBSS_END_SYMBOLS>}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_END_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_END_SYMBOLS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_END_SYMBOLS='> name:OTHER_END_SYMBOLS)
          op: assign_op.Equal
          rhs: {(DQ <'__end = .;'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_RELRO_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_RELRO_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_RELRO_SECTIONS='>
              name: OTHER_RELRO_SECTIONS
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'  .fixup        '> 
                (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 '}'>
                ) <' : { *(.fixup) }\n'> <'  .got1         '> 
                (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 '}'>
                ) <' : { *(.got1) }\n'> <'  .got2         '> 
                (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 '}'>
                ) <' : { *(.got2) }\n'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_GOT_RELOC_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_GOT_RELOC_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_GOT_RELOC_SECTIONS='>
              name: OTHER_GOT_RELOC_SECTIONS
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'  .rela.got1         '> 
                (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 '}'>
                ) <' : { *(.rela.got1) }\n'> <'  .rela.got2         '> 
                (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 '}'>
                ) <' : { *(.rela.got2) }\n'>
              )
            }
        )
      ]
      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: <test>
                      more_env: []
                      words: [
                        {<test>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(DQ ($ Id.VSub_DollarName host))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {<-e>} {<'s/64//'>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                        {<Id.Lit_Equals '='>}
                        {
                          (CommandSub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    blame_tok: <echo>
                                    more_env: []
                                    words: [{<echo>} {(DQ ($ Id.VSub_DollarName target))}]
                                    redirects: []
                                    do_fork: T
                                  )
                                  (command.Simple
                                    blame_tok: <sed>
                                    more_env: []
                                    words: [{<sed>} {<-e>} {<'s/64//'>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                ]
                                ops: [<Id.Op_Pipe _>]
                              )
                            right: <Id.Backtick_Right '`'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Case
              case_kw: <Id.KW_Case case>
              to_match: (case_arg.Word w:{(DQ <' '> ($ Id.VSub_DollarName EMULATION_LIBPATH) <' '>)})
              arms_start: <Id.KW_In in>
              arms: [
                (CaseArm
                  left: <Id.Lit_Star '*'>
                  pattern: 
                    (pat.Words
                      words: [
                        {<Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name EMULATION_NAME) <' '>) 
                          <Id.Lit_Star '*'>
                        }
                      ]
                    )
                  middle: <Id.Right_CasePat _>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'NATIVE='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'NATIVE='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NATIVE='> name:NATIVE)
                          op: assign_op.Equal
                          rhs: {<yes>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  right: <Id.Op_DSemi _>
                )
              ]
              arms_end: <Id.KW_Esac esac>
              redirects: []
            )
          ]
          spids: [159 202]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: 
            {(DQ ($ Id.VSub_DollarName host)) <Id.Lit_Colon ':'> 
              (DQ ($ Id.VSub_DollarName EMULATION_NAME))
            }
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <le-> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <64lppc> 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<64>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <le-> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <32lppc> 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<32>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <le-> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <64> 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<64be>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <le-> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <32> 
                  <Id.Lit_Star '*'>
                }
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<32be>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <64lppc> <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<64le>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [
                {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <32lppc> <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<32le>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <64> <Id.Lit_Star '*'>}]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<64>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: 
            (pat.Words
              words: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <32> <Id.Lit_Star '*'>}]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'LIBPATH_SUFFIX='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIBPATH_SUFFIX='> name:LIBPATH_SUFFIX)
                  op: assign_op.Equal
                  rhs: {<32>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
  ]
)