(command.CommandList
  children: [
    (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 '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 '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-us-cris>)}
        )
      ]
      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: {<cris>}
        )
      ]
      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: {<32>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'ENTRY='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'ENTRY='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ENTRY='> name:ENTRY)
          op: assign_op.Equal
          rhs: {<__start>}
        )
      ]
      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: {<yes>}
        )
      ]
      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: {<32>}
        )
      ]
      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: (rhs_word__Empty)
        )
      ]
      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 <'.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: [47 60]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      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: 
            {
              (DQ (${ Id.VSub_Name INITIAL_READONLY_SECTIONS) <'\n'> 
                <'  .startup : { KEEP(*(.startup)) }'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'TEXT_START_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'TEXT_START_SYMBOLS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXT_START_SYMBOLS='> name:TEXT_START_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'__Stext = ADDR (.startup);'>)}
        )
      ]
      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 <'\n'> <'__start = DEFINED(__start) ? __start :\n'> 
                <'  DEFINED(_start) ? _start :\n'> <'    DEFINED(start) ? start :\n'> <'      DEFINED(.startup) ? .startup + 2 : 2;\n'>
              )
            }
        )
      ]
      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 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name RELOCATING>
                  var_name: RELOCATING
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_Plus _>
                      arg_word: {<'PROVIDE (__Etext = .);'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (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: {(SQ <'PROVIDE (__Sdata = .);'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_SDATA_SECTIONS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_SDATA_SECTIONS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_SDATA_SECTIONS='>
              name: OTHER_SDATA_SECTIONS
            )
          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: {<'PROVIDE (__Edata = .);'>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_BSS_END_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_BSS_END_SYMBOLS='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'OTHER_BSS_END_SYMBOLS='>
              name: OTHER_BSS_END_SYMBOLS
            )
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <' PROVIDE (__Ebss = .);\n'> <' __Sbss = ADDR (.bss);\n'> 
                <' PROVIDE (_bss_start = __Sbss);\n'>
              )
            }
        )
      ]
      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 (__end = .);'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INIT_ADDR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INIT_ADDR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INIT_ADDR='> name:INIT_ADDR)
          op: assign_op.Equal
          rhs: {(SQ <'ALIGN (2)'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INIT_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INIT_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INIT_START='> name:INIT_START)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' ___init__start = .;\n'> <' PROVIDE (___do_global_ctors = .);\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'INIT_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'INIT_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INIT_END='> name:INIT_END)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (__init__end = .);\n'> <' PROVIDE (___init__end = .);\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FINI_ADDR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FINI_ADDR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FINI_ADDR='> name:FINI_ADDR)
          op: assign_op.Equal
          rhs: {(SQ <'ALIGN (2)'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FINI_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FINI_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FINI_START='> name:FINI_START)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' ___fini__start = .;\n'> <' PROVIDE (___do_global_dtors = .);\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'FINI_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'FINI_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FINI_END='> name:FINI_END)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (__fini__end = .);\n'> <' ___fini__end = .;\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CTOR_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CTOR_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CTOR_START='> name:CTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (___ctors = .);\n'> <' ___elf_ctors_dtors_begin = .;\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CTOR_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CTOR_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CTOR_END='> name:CTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (___ctors_end = .);\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'DTOR_START='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'DTOR_START='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DTOR_START='> name:DTOR_START)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (___dtors = .);\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CTOR_END='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CTOR_END='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CTOR_END='> name:CTOR_END)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <' PROVIDE (___dtors_end = .);\n'> <' ___elf_ctors_dtors_end = .;\n'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OTHER_SYMBOLS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OTHER_SYMBOLS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OTHER_SYMBOLS='> name:OTHER_SYMBOLS)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'  PROVIDE (__Eall = .);\n'> <'  PROVIDE (__Endmem = 0x10000000);\n'> 
                <'  PROVIDE (__Stacksize = 0);\n'>
              )
            }
        )
      ]
      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: {<yes>}
        )
      ]
      redirects: []
    )
  ]
)