(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'srcdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'srcdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'libdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libdir='> name:libdir) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'prefix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prefix='> name:prefix) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'exec_prefix='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'exec_prefix='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_prefix='> name:exec_prefix) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'host='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host='> name:host) op: assign_op.Equal rhs: {($ Id.VSub_Number 5)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'target='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'target='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target='> name:target) op: assign_op.Equal rhs: {($ Id.VSub_Number 6)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'target_alias='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'target_alias='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'target_alias='> name:target_alias) op: assign_op.Equal rhs: {($ Id.VSub_Number 7)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EMULATION_LIBPATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EMULATION_LIBPATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMULATION_LIBPATH='> name:EMULATION_LIBPATH) op: assign_op.Equal rhs: {($ Id.VSub_Number 8)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NATIVE_LIB_DIRS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NATIVE_LIB_DIRS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NATIVE_LIB_DIRS='> name:NATIVE_LIB_DIRS) op: assign_op.Equal rhs: {($ Id.VSub_Number 9)} ) ] redirects: [] ) (command.Simple blame_tok:<shift> more_env:[] words:[{<shift>} {<9>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'use_sysroot='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'use_sysroot='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'use_sysroot='> name:use_sysroot) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ENABLE_INITFINI_ARRAY='> name: ENABLE_INITFINI_ARRAY ) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EMULATION_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EMULATION_NAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EMULATION_NAME='> name:EMULATION_NAME) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TOOL_LIB='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TOOL_LIB='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TOOL_LIB='> name:TOOL_LIB) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CUSTOMIZER_SCRIPT='> name:CUSTOMIZER_SCRIPT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name srcdir) <'/emulparams/'> (${ Id.VSub_Name EMULATION_NAME) <.sh>)} ) ] redirects: [] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (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>} {<-d>} {<ldscripts>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] spids: [302 311] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<ldscripts>}] redirects: [] do_fork: T ) ] 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 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.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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name host))} {<Id.Lit_Equals '='>} {(DQ <x> (${ Id.VSub_Name target))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> 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: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'USE_LIBPATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USE_LIBPATH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'USE_LIBPATH='> name: USE_LIBPATH ) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] spids: [365 389] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name use_sysroot))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'USE_LIBPATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USE_LIBPATH='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'USE_LIBPATH='> name: USE_LIBPATH ) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] spids: [400 421] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> 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>} {(DQ <x> ($ Id.VSub_DollarName NATIVE))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'USE_LIBPATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'USE_LIBPATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USE_LIBPATH='> name:USE_LIBPATH) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] spids: [439 456] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'lib_path1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path1='> name:lib_path1) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'lib_path2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path2='> name:lib_path2) 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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name LIB_PATH))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <':'>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lib_path2='> name:lib_path2) op: assign_op.Equal rhs: {(${ Id.VSub_Name LIB_PATH)} ) ] redirects: [] ) ] spids: [509 530] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShFunction name_tok: <append_to_lib_path> name: append_to_lib_path body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [lib] iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name use_sysroot))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib='> name: lib ) op: assign_op.Equal rhs: {(DQ <'='> (${ Id.VSub_Name lib))} ) ] redirects: [] ) ] spids: [586 607] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'skip_lib='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'skip_lib='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'skip_lib='> name: skip_lib ) op: assign_op.Equal rhs: {<no>} ) ] 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>} {<-n>} {(DQ (${ Id.VSub_Name LIBPATH_SUFFIX))} ] 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_Name lib))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (${ Id.VSub_Name LIBPATH_SUFFIX)} ] ) middle: <Id.Right_CasePat _> action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path1='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path1='> name: lib_path1 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path1='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path1='> name: lib_path1 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (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>} {<-n>} { (DQ (${ Id.VSub_Name LIBPATH_SUFFIX_SKIP ) ) } ] 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_Name lib))} ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (${ Id.VSub_Name LIBPATH_SUFFIX_SKIP ) } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'skip_lib='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'skip_lib='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'skip_lib='> name: skip_lib ) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [719 732] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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>} {(DQ (${ Id.VSub_Name skip_lib))} {<Id.Lit_Equals '='>} {(DQ <no>)} ] 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: {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) (${ Id.VSub_Name LIBPATH_SUFFIX) <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words: [ {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path1='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path1='> name: lib_path1 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib) (${ Id.VSub_Name LIBPATH_SUFFIX) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [{<Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path1='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path1='> name: lib_path1 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) (${ Id.VSub_Name LIBPATH_SUFFIX) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [764 781] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [626 639] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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>} {(DQ (${ Id.VSub_Name skip_lib))} {<Id.Lit_Equals '='>} {(DQ <no>)} ] 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: {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'> } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) <Id.Lit_Colon ':'> <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path2='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path2='> name: lib_path2 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'lib_path2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lib_path2='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'lib_path2='> name: lib_path2 ) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [857 874] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] spids: [551 565] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name LIB_PATH))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <':'>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) 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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name TOOL_LIB))} {<Id.Lit_Equals '='>} {(DQ <x>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name NATIVE))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name exec_prefix) <'/'> (${ Id.VSub_Name target_alias) <'/lib'> ) } ) ] redirects: [] ) ] spids: [1003 1024] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [979 1000] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ (${ Id.VSub_Name NATIVE) <':'> (${ Id.VSub_Name LIBPATH_SUFFIX) <':'> (${ Id.VSub_Name TOOL_LIB) ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words: [ {<Id.Lit_Colon ':'> <Id.Lit_Star '*'>} {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>} {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> (${ Id.VSub_Name LIBPATH_SUFFIX) } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name exec_prefix) <'/'> (${ Id.VSub_Name target_alias) <'/lib'> (${ Id.VSub_Name LIBPATH_SUFFIX) ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name exec_prefix) <'/'> (${ Id.VSub_Name TOOL_LIB) <'/lib '> (${ Id.VSub_Name libs) ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <append_to_lib_path> more_env: [] words: [{<append_to_lib_path>} {(${ Id.VSub_Name libs)}] redirects: [] do_fork: T ) ] spids: [952 973] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name LIB_PATH))} {<Id.Lit_Equals '='>} {(DQ <x>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name USE_LIBPATH))} {<Id.Lit_Equals '='>} {<xyes>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: {(${ Id.VSub_Name NATIVE_LIB_DIRS)} ) ] 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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> (${ Id.VSub_Name NATIVE))} {<Id.Lit_Equals '='>} {(DQ <xyes>)} {<Id.Lit_RBracket ']'>} ] 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_Name libs) <' '>)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name libdir) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'libs='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'libs='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'libs='> name:libs) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name libdir) <' '> (${ Id.VSub_Name libs))} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] spids: [1209 1230] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <append_to_lib_path> more_env: [] words: [{<append_to_lib_path>} {(${ Id.VSub_Name libs)}] redirects: [] do_fork: T ) ] spids: [1162 1200] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: {<Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path2) <Id.Lit_Colon ':'> } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words: [ {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>} ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LIB_PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LIB_PATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_PATH='> name:LIB_PATH) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib_path1) (${ Id.VSub_Name lib_path2)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LIB_PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LIB_PATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_PATH='> name:LIB_PATH) op: assign_op.Equal rhs: {(${ Id.VSub_Name lib_path1) <Id.Lit_Colon ':'> (${ Id.VSub_Name lib_path2)} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LIB_SEARCH_DIRS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LIB_SEARCH_DIRS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_SEARCH_DIRS='> name:LIB_SEARCH_DIRS) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(${ Id.VSub_Name LIB_PATH)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-e>} {(SQ <'s/:/ /g'>)} {<-e>} {(SQ <'s/\\([^ ][^ ]*\\)/SEARCH_DIR(\\"\\1\\");/g'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {($ Id.VSub_DollarName EMULATION_LIBPATH)}] redirects: [] do_fork: T ) (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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_DollarName EMULATION_NAME))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <test> more_env: [] words: [{<test>} {<-d>} {<tmpdir>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<tmpdir>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {<'tmpdir/libpath.exp'>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'set libpath '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name LIB_PATH) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/:/ /g'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'tmpdir/libpath.exp'>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] spids: [1391 1410] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ <x> ($ Id.VSub_DollarName SCRIPT_NAME))} {<Id.Lit_Equals '='>} {(DQ <xelf>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GENERATE_COMBRELOC_SCRIPT='> name: GENERATE_COMBRELOC_SCRIPT ) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] spids: [1522 1540] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SEGMENT_SIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SEGMENT_SIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEGMENT_SIZE='> name:SEGMENT_SIZE) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name SEGMENT_SIZE> var_name: SEGMENT_SIZE suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MAXPAGESIZE> var_name: MAXPAGESIZE suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name TARGET_PAGE_SIZE)} ) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT_='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT_='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_='> name:DATA_ALIGNMENT_) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_> var_name: DATA_ALIGNMENT_ suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT> var_name: DATA_ALIGNMENT suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {<'ALIGN('> (${ Id.VSub_Name SEGMENT_SIZE) <')'>} ) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT_n='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT_n='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_n='> name:DATA_ALIGNMENT_n) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_n> var_name: DATA_ALIGNMENT_n suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT_N='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT_N='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_N='> name:DATA_ALIGNMENT_N) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_N> var_name: DATA_ALIGNMENT_N suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT> var_name: DATA_ALIGNMENT suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<.>}) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT_r='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT_r='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_r='> name:DATA_ALIGNMENT_r) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_r> var_name: DATA_ALIGNMENT_r suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT> var_name: DATA_ALIGNMENT suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{}) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT_u='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT_u='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT_u='> name:DATA_ALIGNMENT_u) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_u> var_name: DATA_ALIGNMENT_u suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_r)} ) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<r>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_r)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFAULT_DATA_ALIGNMENT='> name: DEFAULT_DATA_ALIGNMENT ) op: assign_op.Equal rhs: {(DQ <'ALIGN('> (${ Id.VSub_Name SEGMENT_SIZE) <')'>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'/* Script for ld -r: link without relocation */'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xr>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<u>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_u)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONSTRUCTING='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONSTRUCTING='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONSTRUCTING='> name:CONSTRUCTING) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'/* Script for ld -Ur: link w/out relocation, do create constructors */'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xu>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'RELOCATING='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'RELOCATING='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELOCATING='> name:RELOCATING) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'/* Default linker script, for normal executables */'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.x>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<n>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_n)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'/* Script for -n: mix text and data on same page */'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xn>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<N>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_N)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'/* Script for -N: mix text and data on same page; don\'t align data */'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xbn>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_c> var_name: DATA_ALIGNMENT_c suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<c>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xc.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'/* Script for -z combreloc: combine and sort reloc sections */'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xc>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<w>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'RELRO_NOW='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'RELRO_NOW='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xw.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for -z combreloc -z now -z relro: combine and sort reloc sections */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xw>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<RELRO_NOW>}] redirects: [] do_fork: T ) ] spids: [1933 1944] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_SHLIB_SCRIPT))}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<shared>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_s> var_name: DATA_ALIGNMENT_s suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CREATE_SHLIB='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CREATE_SHLIB='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CREATE_SHLIB='> name:CREATE_SHLIB) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'/* Script for ld --shared: link shared library */'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xs>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<cshared>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> name: DATA_ALIGNMENT ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_sc> var_name: DATA_ALIGNMENT_sc suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsc.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for --shared -z combreloc: shared library, combine & sort relocs */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsc>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<wshared>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'RELRO_NOW='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'RELRO_NOW='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsw.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xsw>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<RELRO_NOW>}] redirects: [] do_fork: T ) ] spids: [2197 2208] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<CREATE_SHLIB>}] redirects: [] do_fork: T ) ] spids: [2113 2124] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_PIE_SCRIPT))}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<pie>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_s> var_name: DATA_ALIGNMENT_s suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CREATE_PIE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CREATE_PIE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CREATE_PIE='> name:CREATE_PIE) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'/* Script for ld -pie: link position independent executable */'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xd>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_COMBRELOC_SCRIPT))} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<cpie>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> name: DATA_ALIGNMENT ) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DATA_ALIGNMENT_sc> var_name: DATA_ALIGNMENT_sc suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(${ Id.VSub_Name DATA_ALIGNMENT)} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdc.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdc>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<wpie>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'RELRO_NOW='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'RELRO_NOW='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RELRO_NOW='> name:RELRO_NOW) op: assign_op.Equal rhs: {(DQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdw.tmp>} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xdw>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name COMBRELOC)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'COMBRELOC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMBRELOC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMBRELOC='> name:COMBRELOC) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<RELRO_NOW>}] redirects: [] do_fork: T ) ] spids: [2469 2480] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<CREATE_PIE>}] redirects: [] do_fork: T ) ] spids: [2385 2396] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> 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>} {<-n>} {(DQ ($ Id.VSub_DollarName GENERATE_AUTO_IMPORT_SCRIPT))}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LD_FLAG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LD_FLAG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LD_FLAG='> name:LD_FLAG) op: assign_op.Equal rhs: {<auto_import>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DATA_ALIGNMENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DATA_ALIGNMENT='> name:DATA_ALIGNMENT) op: assign_op.Equal rhs: {(${ Id.VSub_Name DATA_ALIGNMENT_)} ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ < '/* Script for ld --enable-auto-import: Like the default script except read only data is placed into .data */' > ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name CUSTOMIZER_SCRIPT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name srcdir) <'/scripttempl/'> (${ Id.VSub_Name SCRIPT_NAME) <.sc> } ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'/^ *$/d;s/[ \t]*$//'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'ldscripts/'> (${ Id.VSub_Name EMULATION_NAME) <.xa>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] spids: [2657 2668] ) ] 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 COMPILE_IN) <': '> ($ Id.VSub_DollarName EMULATION_LIBPATH) <' '> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Colon ':'> pattern: (pat.Words words: [ {<Id.Lit_Colon ':'> <Id.Lit_Star '*'> (DQ <' '> (${ Id.VSub_Name EMULATION_NAME) <' '>) <Id.Lit_Star '*'> } ] ) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'COMPILE_IN='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'COMPILE_IN='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'COMPILE_IN='> name:COMPILE_IN) op: assign_op.Equal rhs: {<yes>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShFunction name_tok: <has_lineno> name: has_lineno body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <test> more_env: [] words: [ {<test>} {(DQ <x> ($ Id.VSub_DollarName BASH_LINENO))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <x>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (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: <has_lineno> more_env: [] words: [{<has_lineno>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name srcdir) <'/genscrba.sh'>}] redirects: [] do_fork: T ) ] spids: [2800 2805] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShFunction name_tok: <source_em> name: source_em body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <fragment> name: fragment body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>} ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <Id.Redir_Great '>'> more_env: [] words: [] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<e> (${ Id.VSub_Name EMULATION_NAME) <.c>} ) ] do_fork: F ) (command.Simple blame_tok: <source_em> more_env: [] words: [ {<source_em>} {(${ Id.VSub_Name srcdir) <'/emultempl/'> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TEMPLATE_NAME> var_name: TEMPLATE_NAME suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<generic>}) right: <Id.Right_DollarBrace '}'> ) <.em> } ] redirects: [] do_fork: T ) ] )