(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
          spids: [10]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-bigmips>)}
          spids: [13]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BIG_OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-bigmips>)}
          spids: [18]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LITTLE_OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf32-littlemips>)}
          spids: [23]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x0400000>}
          spids: [28]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-n>} {(DQ (${ Id.VSub_Name EMBEDDED))})
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:DATA_ADDR)
              op: assign_op.Equal
              rhs: {<0x10000000>}
              spids: [43]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (MAXPAGESIZE)'>)}
          spids: [46]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COMMONPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (COMMONPAGESIZE)'>)}
          spids: [51]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SHLIB_TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x5ffe0000>}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_DYNAMIC)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [59]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INITIAL_READONLY_SECTIONS)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [61]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<-z>} {(DQ (${ Id.VSub_Name CREATE_SHLIB))})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INITIAL_READONLY_SECTIONS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'.interp       '> 
                        (braced_var_sub
                          token: <Id.VSub_Name RELOCATING>
                          suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                        ) <' : { *(.interp) }'>
                      )
                    }
                  spids: [79]
                )
              ]
            )
          ]
          spids: [63 76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INITIAL_READONLY_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ (${ Id.VSub_Name INITIAL_READONLY_SECTIONS) <'\n'> <'  .MIPS.abiflags '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.MIPS.abiflags) }\n'> <'  .reginfo       '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.reginfo) }\n'>
              )
            }
          spids: [92]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_TEXT_SECTIONS)
          op: assign_op.Equal
          rhs: {(SQ <'*(.mips16.fn.*) *(.mips16.call.*)'>)}
          spids: [114]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_GOT_RELOC_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'  .rel.dyn      '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.rel.dyn) }\n'>
              )
            }
          spids: [131]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_GOT_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'\n'> <'  . = .;\n'> <'  HIDDEN (_gp = ALIGN (16) + 0x7ff0);\n'>)}
          spids: [155]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GOT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.got          '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.got) }'>
              )
            }
          spids: [192]
        )
      ]
    )
    (C {<unset>} {<OTHER_READWRITE_SECTIONS>})
    (C {<unset>} {<OTHER_RELRO_SECTIONS>})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$RELRO_NOW'))})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:OTHER_RELRO_SECTIONS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'.got.plt      '> 
                        (braced_var_sub
                          token: <Id.VSub_Name RELOCATING>
                          suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                        ) <' : { *(.got.plt) }'>
                      )
                    }
                  spids: [225]
                )
              ]
            )
          ]
          spids: [211 222]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:OTHER_READWRITE_SECTIONS)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ <'.got.plt      '> 
                    (braced_var_sub
                      token: <Id.VSub_Name RELOCATING>
                      suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                    ) <' : { *(.got.plt) }'>
                  )
                }
              spids: [239]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_SDATA_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'  .lit8         '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.lit8) }\n'> <'  .lit4         '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : { *(.lit4) }\n'>
              )
            }
          spids: [253]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_START_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'_ftext = . ;'>)}
          spids: [272]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:DATA_START_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'_fdata = . ;'>)}
          spids: [277]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_BSS_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'_fbss = .;'>)}
          spids: [282]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_SECTIONS)
          op: assign_op.Equal
          rhs: 
            {
              (SQ <'\n'> <'  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }\n'> 
                <'  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }\n'> <'  .mdebug.abi32 0 : { KEEP(*(.mdebug.abi32)) }\n'> 
                <'  .mdebug.abiN32 0 : { KEEP(*(.mdebug.abiN32)) }\n'> <'  .mdebug.abi64 0 : { KEEP(*(.mdebug.abi64)) }\n'> 
                <'  .mdebug.abiO64 0 : { KEEP(*(.mdebug.abiO64)) }\n'> <'  .mdebug.eabi32 0 : { KEEP(*(.mdebug.eabi32)) }\n'> 
                <'  .mdebug.eabi64 0 : { KEEP(*(.mdebug.eabi64)) }\n'> <'  .gcc_compiled_long32 0 : { KEEP(*(.gcc_compiled_long32)) }\n'> 
                <'  .gcc_compiled_long64 0 : { KEEP(*(.gcc_compiled_long64)) }\n'>
              )
            }
          spids: [287]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ARCH)
          op: assign_op.Equal
          rhs: {<mips>}
          spids: [302]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MACHINE)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [305]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
          spids: [307]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXTRA_EM_FILE)
          op: assign_op.Equal
          rhs: {<mipself>}
          spids: [310]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_SHLIB_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [313]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_PIE_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [316]
        )
      ]
    )
  ]
)