(command.CommandList
  children: [
    (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 '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 '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: {<spuelf>}
        )
      ]
      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-spu>)}
        )
      ]
      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 '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: {<spu>}
        )
      ]
      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 'ALIGNMENT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ALIGNMENT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ALIGNMENT='> name:ALIGNMENT)
          op: assign_op.Equal
          rhs: {<16>}
        )
      ]
      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: {<0>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INITIAL_READONLY_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INITIAL_READONLY_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'INITIAL_READONLY_SECTIONS='>
              name: INITIAL_READONLY_SECTIONS
            )
          op: assign_op.Equal
          rhs: {(SQ <'.interrupt : { KEEP(*(.interrupt)) }'>)}
        )
      ]
      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 'INITIAL_READONLY_SECTIONS='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'INITIAL_READONLY_SECTIONS='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'INITIAL_READONLY_SECTIONS='>
                      name: INITIAL_READONLY_SECTIONS
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name INITIAL_READONLY_SECTIONS) <'\n'> <'  .interp       '> 
                        (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 '}'>
                        ) <' : { *(.interp) }'>
                      )
                    }
                )
              ]
              redirects: []
            )
          ]
          spids: [33 46]
        )
      ]
      else_action: []
      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: {(SQ <'PROVIDE (__stack = 0x3fff0);'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'NO_SMALL_DATA='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'NO_SMALL_DATA='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NO_SMALL_DATA='> name:NO_SMALL_DATA)
          op: assign_op.Equal
          rhs: {<true>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'EMBEDDED='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'EMBEDDED='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMBEDDED='> name:EMBEDDED)
          op: assign_op.Equal
          rhs: {<true>}
        )
      ]
      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: {<0x80>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DATA_ADDR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DATA_ADDR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ADDR='> name:DATA_ADDR)
          op: assign_op.Equal
          rhs: {(DQ <'ALIGN('> (${ Id.VSub_Name MAXPAGESIZE) <')'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_BSS_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_BSS_SECTIONS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_BSS_SECTIONS='> name:OTHER_BSS_SECTIONS)
          op: assign_op.Equal
          rhs: {(DQ <'.toe ALIGN(128) : { *(.toe) } = 0'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_SECTIONS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_SECTIONS='> name:OTHER_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.note.spu_name 0 : { KEEP(*(.note.spu_name)) }\n'> 
                <'  ._ea 0 : { KEEP(*(._ea)) KEEP(*(._ea.*)) }'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_READONLY_SECTIONS='>
              name: OTHER_READONLY_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 '}'>
                ) <' : {\n'> <'    PROVIDE (__fixup_start = .);\n'> <'    KEEP(*(.fixup))\n'> <'  }'>
              )
            }
        )
      ]
      redirects: []
    )
  ]
)