(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:exec_text_addr) op:Equal rhs:{(0x0)} spids:[20])] spids: [20] ) (FuncDef name: obj_load_addrs body: (BraceGroup children: [ (Pipeline children: [ (SimpleCommand words: [ {(setarch)} { (CommandSubPart command_list: (CommandList children:[(C {(uname)} {(-m)})]) left_token: <Left_CommandSub '$('> spids: [37 43] ) } {(-R)} {(sh)} {(-c)} {(SQ <'LD_TRACE_LOADED_OBJECTS=1 '>) (DQ ($ VSub_Number '$1'))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[58])] ) (C {(grep)} {(SQ <'=>'>)}) (C {(grep)} {(-v)} {(SQ <linux-vdso>)}) (C {(grep)} {(-v)} {(SQ <'not found'>)}) (C {(sed)} {(SQ <'s/.*=> //'>)}) (C {(tr)} {(-d)} {(SQ <'()'>)}) (C {(tr)} {(-s)} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}) ] negated: F ) (C {(/bin/echo)} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {(DQ ($ VSub_Number '$1'))})] ) left_token: <Left_CommandSub '$('> spids: [133 143] ) ) } ) (C {(/bin/echo)} {(-e)} {(SQ <'\\t'>) (DQ (${ VSub_Name exec_text_addr))}) ] spids: [32] ) spids: [27 31] ) (FuncDef name: mangle_objname body: (BraceGroup children: [ (Pipeline children: [(C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(tr)} {(SQ <'/ .-'>)} {(SQ <_>)})] negated: F ) ] spids: [168] ) spids: [163 167] ) (FuncDef name: hex_to_dec body: (BraceGroup children: [ (C {(printf)} {(DQ ('%d'))} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(SQ <'s/^[^0][^xX].*/0x&/'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [213 229] ) } ) ] spids: [204] ) spids: [199 203] ) (FuncDef name: obj_load_addrs_as_cpp_macros body: (BraceGroup children: [ (Pipeline children: [ (C {(obj_load_addrs)} {(DQ ($ VSub_Number '$1'))}) (C {(sort)}) (While cond: [(Sentence child:(C {(read)} {(obj)} {(base)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (C {(echo)} { (DQ (-D__LOAD_ADDR_) (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(mangle_objname)} {(DQ (${ VSub_Name obj))}) (C {(tr)} {(SQ <'[a-z]'>)} {(SQ <'[A-Z]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [311 333] ) ) (Lit_Other '=') (DQ (${ VSub_Name base) (ULL)) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:min_obj_load_addr) op: Equal rhs: {(0x2aaa00000000)} spids: [348] ) ] spids: [348] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [(C {(hex_to_dec)} {($ VSub_Name '$base')})] ) left_token: <Left_CommandSub '$('> spids: [356 362] ) } {(-lt)} { (CommandSubPart command_list: (CommandList children: [ (C {(hex_to_dec)} {($ VSub_Name '$min_obj_load_addr')} ) ] ) left_token: <Left_CommandSub '$('> spids: [366 372] ) } {(Lit_Other ']')} ) (Pipeline children: [ (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (C {(hex_to_dec)} {($ VSub_Name '$base')}) ] ) left_token: <Left_CommandSub '$('> spids: [382 388] ) } {(-eq)} { (CommandSubPart command_list: (CommandList children: [ (C {(hex_to_dec)} {(${ VSub_Name exec_text_addr)} ) ] ) left_token: <Left_CommandSub '$('> spids: [392 400] ) } {(Lit_Other ']')} ) ] negated: T ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Warning: library ') ($ VSub_Name '$obj') (' has a load address ') ($ VSub_Name '$base') (' less than the assumed minimum ') ($ VSub_Name '$min_obj_load_addr') ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [419] ) ] ) ] spids: [16777215 405] ) ] spids: [16777215 423] ) ] spids: [295 426] ) ) ] negated: F ) ] spids: [239] ) spids: [234 238] ) ] )