(List (FunctionDef log_error_and_exit [] (List (Com {[LIT_CHARS echo]} {[VarSub 0] [LIT_OTHER ":"]} {[VarSub @]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (FunctionDef process_entry [] (List (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 2]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (Com {[LIT_CHARS log_error_and_exit]} {[DQ [LIT_CHARS "bad arguments to process_entry()"]]} ) ) (= scope= flags=0 words=[] bindings=[('root', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('localpath', {[DQ [VarSub 2]]})]) (Pipeline (Com {[LIT_CHARS echo]} {[VarSub localpath]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -qs]} {[SQ ]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS log_error_and_exit]} {[VarSub localpath]} {[LIT_CHARS does]} {[LIT_CHARS not]} {[LIT_CHARS start]} {[LIT_CHARS with]} {[LIT_CHARS /]} ) ) (= scope= flags=0 words=[] bindings=[('entry', {[DQ [VarSub root][VarSub localpath]]})]) (Com {[LIT_CHARS echo]} {[LIT_CHARS -L] [VarSub entry]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -Wl] [LIT_COMMA ","] [LIT_CHARS -rpath-link] [LIT_DBRACKET_LIKE "="] [VarSub entry]} ) ) ) (FunctionDef process_ld_so_conf [] (List (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 1]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub 2]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (Com {[LIT_CHARS log_error_and_exit]} {[DQ [LIT_CHARS "bad arguments to process_ld_so_conf()"]]} ) ) (= scope= flags=0 words=[] bindings=[('root', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('ld_so_conf', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('saved_pwd', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (Com {[LIT_CHARS cd]} {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub ld_so_conf]]})]} ) (Pipeline (Com {[LIT_CHARS cat]} {[DQ [VarSub ld_so_conf]]} ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS ENTRY]} ) (List (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENTRY]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -qs]} {[LIT_OTHER "^"] [LIT_CHARS include]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('included_files', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENTRY]]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub included_files]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -qs]} {[LIT_OTHER "^"] [LIT_CHARS /]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_CHARS ls]} {[VarSub root] [VarSub included_files]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (For inc_file [{[VarSub root] [VarSub included_files]}]) (Com {[LIT_CHARS process_ld_so_conf]} {[DQ [VarSub root]]} {[DQ [VarSub inc_file]]} ) ) ) (ElseTrue) (If (Com {[LIT_CHARS ls]} {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub included_files]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (For inc_file [{[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub included_files]}]) (Com {[LIT_CHARS process_ld_so_conf]} {[DQ [VarSub root]]} {[DQ [VarSub inc_file]]} ) ) ) ) (Com {[LIT_CHARS continue]} ) ) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub ENTRY]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -qs]} {[LIT_OTHER "^"] [LIT_CHARS /]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS process_entry]} {[DQ [VarSub root]]} {[DQ [VarSub ENTRY]]} ) ) ) ) ) (Com {[LIT_CHARS cd]} {[DQ [VarSub saved_pwd]]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -ne]} {[LIT_CHARS 1]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS Usage]} {[VarSub 0]} {[LIT_CHARS /abspath/to/sysroot]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -qs]} {[SQ ]} ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS log_error_and_exit]} {[VarSub 1]} {[LIT_CHARS contains]} {[LIT_CHARS whitespace.]} ) ) (= scope= flags=0 words=[] bindings=[('LD_SO_CONF', {[DQ [VarSub 1][LIT_CHARS /etc/ld.so.conf]]})]) (= scope= flags=0 words=[] bindings=[('LD_SO_CONF_D', {[DQ [VarSub 1][LIT_CHARS /etc/ld.so.conf.d]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[DQ [VarSub LD_SO_CONF]]} {[LIT_DBRACKET_LIKE "]"]} ) (Pipeline (Com {[LIT_CHARS process_ld_so_conf]} {[DQ [VarSub 1]]} {[DQ [VarSub LD_SO_CONF]]} ) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]} ) ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -e]} {[DQ [VarSub LD_SO_CONF_D]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS find]} {[DQ [VarSub LD_SO_CONF_D]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_CHARS -name]} {[SQ ]} {[LIT_CHARS -print]} {[LIT_CHARS -quit]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub ?]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Pipeline (For entry [{[VarSub LD_SO_CONF_D] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .conf]}]) (Com {[LIT_CHARS process_ld_so_conf]} {[DQ [VarSub 1]]} {[DQ [VarSub entry]]} ) ) (Com {[LIT_CHARS xargs]} {[LIT_CHARS echo]} ) ) ) ) ) )