(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(source)} {(sources/include.sh)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:36) arg_word: {(1)} ) ] ) (C {(load_target)} {(DQ ($ Id.VSub_Number '$1'))}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(check_for_base_arch)}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:60) arg_word: {(0)} ) ] ) (C {(export)} {(Id.Lit_VarLike 'TOOLCHAIN_PREFIX=') (DQ (${ Id.VSub_Name ARCH) (-))}) (C {(build_section)} {(binutils)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$ELF2FLT'))} {(Id.Lit_RBracket ']')} ) (C {(build_section)} {(elf2flt)}) ] ) (C {(build_section)} {(gcc)}) (C {(build_section)} {(ccwrap)}) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$KARCH'))} {(Id.Lit_RBracket ']')} ) ] action: [ (C {(build_section)} {(linux-headers)}) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$UCLIBC_CONFIG'))} {(Id.Lit_RBracket ']')} ) (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$MUSL'))} {(Id.Lit_RBracket ']')} ) ] ) ] action: [(C {(build_section)} {(musl)})] spids: [140 167] ) ] else_action: [(C {(build_section)} {(uClibc)})] ) ] spids: [111 125] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$KARCH'))} {(Id.Lit_RBracket ']')} ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:204) fd: -1 arg_word: {(DQ (${ Id.VSub_Name STAGE_DIR)) (/README)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:213) fd: -1 here_begin: {(EOF)} here_end_span_id: 248 stdin_parts: [ ('Cross compiler for ') ($ Id.VSub_DollarName '$ARCH') (' from http://landley.net/aboriginal\n') ('\n') ('To use: Add the ') (Id.Right_DoubleQuote '"') (bin) (Id.Right_DoubleQuote '"') (' subdirectory to your ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:226) ) ('PATH, and use ') (Id.Right_DoubleQuote '"') ($ Id.VSub_DollarName '$ARCH') (-cc) (Id.Right_DoubleQuote '"') (' as\n') ('your compiler.\n') ('\n') ('The syntax used to build the Linux kernel is:\n') ('\n') (' make ARCH=') (${ Id.VSub_Name KARCH) (' CROSS_COMPILE=') (${ Id.VSub_Name ARCH) ('-\n') ('\n') ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$SKIP_STRIP'))} {(Id.Lit_RBracket ']')} ) ] action: [ (C {(cd)} {(DQ ($ Id.VSub_DollarName '$STAGE_DIR'))}) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:282) command_list: (command.CommandList children: [(C {(find)} {(bin)} {(-type)} {(f)})] ) ) } { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:294) command_list: (command.CommandList children: [ (C {(find)} {(DQ ($ Id.VSub_DollarName '$CROSS_TARGET'))} {(-type)} {(f)}) ] ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Simple words: [{(strip)} {(DQ ($ Id.VSub_DollarName '$i'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:318) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ] spids: [254 266] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$KARCH'))} {(Id.Lit_RBracket ']')} ) ] action: [ (C {(echo)} {(DQ ('Sanity test: building Hello World.'))}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {(DQ (${ Id.VSub_Name ARCH) (-gcc))} {(-Os)} {(DQ (${ Id.VSub_Name SOURCES) (/root-filesystem/src/hello.c))} {(-o)} {(DQ ($ Id.VSub_DollarName '$WORK')) (/hello)} ) (C {(DQ (${ Id.VSub_Name ARCH) (-gcc))} {(-Os)} {(-static)} {(DQ (${ Id.VSub_Name SOURCES) (/root-filesystem/src/hello.c))} {(-o)} {(DQ ($ Id.VSub_DollarName '$WORK')) (/hello)} ) (C {(dienow)}) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$CROSS_SMOKE_TEST'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(more/cross-smoke-test.sh)} {(DQ ($ Id.VSub_DollarName '$ARCH'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:452) arg_word: {(1)} ) ] ) ] spids: [426 441] ) ] ) ] spids: [328 342] ) ] ) (C {(create_stage_tarball)}) (C {(echo)} {(-e)} { (DQ (Id.Lit_Other '\\') ('e[32mCross compiler toolchain build complete.') (Id.Lit_Other '\\') ('e[0m') ) } ) ] )