(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'exec_text_addr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'exec_text_addr='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_text_addr='> name:exec_text_addr) op: assign_op.Equal rhs: {<0x0>} ) ] redirects: [] ) (command.ShFunction name_tok: <obj_load_addrs> name: obj_load_addrs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <setarch> more_env: [] words: [ {<setarch>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <uname> more_env: [] words: [{<uname>} {<-m>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<-R>} {<sh>} {<-c>} {(SQ <'LD_TRACE_LOADED_OBJECTS=1 '>) (DQ ($ Id.VSub_Number 1))} ] redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'=>'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-v>} {(SQ <linux-vdso>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-v>} {(SQ <'not found'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/.*=> //'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-d>} {(SQ <'()'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {<-s>} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}] redirects: [] do_fork: T ) ] ops: [ <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> ] ) (command.Simple blame_tok: <'/bin/echo'> more_env: [] words: [ {<'/bin/echo'>} {<-n>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <readlink> more_env: [] words: [{<readlink>} {<-f>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <'/bin/echo'> more_env: [] words: [{<'/bin/echo'>} {<-e>} {(SQ <'\\t'>) (DQ (${ Id.VSub_Name exec_text_addr))}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <mangle_objname> name: mangle_objname body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'/ .-'>)} {(SQ <_>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <hex_to_dec> name: hex_to_dec body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%d'>)} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {(SQ <'s/^[^0][^xX].*/0x&/'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <obj_load_addrs_as_cpp_macros> name: obj_load_addrs_as_cpp_macros body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Pipeline children: [ (command.Simple blame_tok: <obj_load_addrs> more_env: [] words: [{<obj_load_addrs>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>}] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<obj>} {<base>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <-D__LOAD_ADDR_> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <mangle_objname> more_env: [] words: [{<mangle_objname>} {(DQ (${ Id.VSub_Name obj))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'[a-z]'>)} {(SQ <'[A-Z]'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name base) <ULL>) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'min_obj_load_addr='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'min_obj_load_addr='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'min_obj_load_addr='> name: min_obj_load_addr ) op: assign_op.Equal rhs: {<0x2aaa00000000>} ) ] 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 '['>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <hex_to_dec> more_env: [] words: [ {<hex_to_dec>} {($ Id.VSub_DollarName base)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<-lt>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <hex_to_dec> more_env: [] words: [ {<hex_to_dec>} {($ Id.VSub_DollarName min_obj_load_addr)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <hex_to_dec> more_env: [] words: [ {<hex_to_dec>} {($ Id.VSub_DollarName base)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<-eq>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <hex_to_dec> more_env: [] words: [ {<hex_to_dec>} {(${ Id.VSub_Name exec_text_addr)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ops: [] ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Warning: library '> ($ Id.VSub_DollarName obj) <' has a load address '> ($ Id.VSub_DollarName base) <' less than the assumed minimum '> ($ Id.VSub_DollarName min_obj_load_addr) ) } ] redirects: [ (Redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] spids: [352 405] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )