ELF@@>= 'not i  let expected_executable_name = Sys.argv.(2) let expected_argv0 = Sys.argv.(3) let state = bool_of_string Sys.argv.(4) let prefix = Sys.argv.(5) let libdir_suffix = Sys.argv.(6) let is_directory dir =%s let display_lib = let dir = Config.standard_library in let f = function '\\' when Sys.win32 -> '/' | c -> c in let canonical_dir = String.map f dir in let dir = if String.starts_with ~prefix canonical_dir then let l = String.length prefix in "$prefix" ^ String.sub dir l (String.length dir - l) else dir in if String.ends_with ~suffix:libdir_suffix canonical_dir then let l = String.length libdir_suffix in String.sub dir 0 (String.length dir - l) ^ "$libdir" else dir let () = let kind = if Filename.is_implicit Sys.executable_name then "implicit (" ^ Sys.executable_name ^ ")" else if Filename.is_relative Sys.executable_name then "relative (" ^ Sys.executable_name ^ ")" else "absolute" in Printf.%sfprintf stdout "%s: %%s\n\ Sys.executable_name is %%s\n\ Sys.argv.(0) = %%s\n%%!" display_lib kind Sys.argv.(0); let is_randomized = Hashtbl.is_randomized () in if %sis_randomized then begin Printf.eprintf " *** Hashtbl.is_randomized () should be returning %%b\n" (not is_randomized); exit 1 end else if is_directory Config.standard_library <> state then begin Printf.eprintf " *** Directory %%sfound!\n" (if state then "not " else ""); exit 1 end else if Sys.executable_name <> expected_executable_name then begin Printf.eprintf " *** Sys.executable_name should be %%s but is %%s\n" expected_executable_name Sys.executable_name; exit 1 end else if Sys.argv.(0) <> expected_argv0 then begin Printf.eprintf " *** Sys.argv.(0) should be %%s but is %%s\n" expected_argv0 Sys.argv.(0); exit 1 end        K K K K   K K K K K K 's\n" expected_argv0 Sys.argv.(0); exit 1 end cs\n" expected_executable_name Sys.executable_name; exit 1 end else if Sys.argv.(0) <> expected_argv0 then begin Printf.eprintf " *** Sys.argv.(0) should be  s but is _sfound!\n" (if state then "not " else ""); exit 1 end else if Sys.executable_name <> expected_executable_name then begin Printf.eprintf " *** Sys.executable_name should be Wb\n" (not is_randomized); exit 1 end else if is_directory Config.standard_library <> state then begin Printf.eprintf " *** Directory 7is_randomized then begin Printf.eprintf " *** Hashtbl.is_randomized () should be returning 3!" display_lib kind Sys.argv.(0); let is_randomized = Hashtbl.is_randomized () in if s\ns\n\ Sys.argv.(0) = s\n\ Sys.executable_name is : fprintf stdout " let display_lib = let dir = Config.standard_library in let f = function '\\' when Sys.win32 -> '/' | c -> c in let canonical_dir = String.map f dir in let dir = if String.starts_with ~prefix canonical_dir then let l = String.length prefix in "$prefix" ^ String.sub dir l (String.length dir - l) else dir in if String.ends_with ~suffix:libdir_suffix canonical_dir then let l = String.length libdir_suffix in String.sub dir 0 (String.length dir - l) ^ "$libdir" else dir let () = let kind = if Filename.is_implicit Sys.executable_name then "implicit (" ^ Sys.executable_name ^ ")" else if Filename.is_relative Sys.executable_name then "relative (" ^ Sys.executable_name ^ ")" else "absolute" in Printf.k let expected_executable_name = Sys.argv.(2) let expected_argv0 = Sys.argv.(3) let state = bool_of_string Sys.argv.(4) let prefix = Sys.argv.(5) let libdir_suffix = Sys.argv.(6) let is_directory dir =test_install_script.ml Running programs %! Running programs nat_complete_obj_shared nat_complete_obj_static  nat_obj_shared  nat_obj_static  static runtime nat_default-output-complete-exe shared runtimebyt_complete_exe_shared-output-complete-exe static runtimebyt_complete_exe_static-output-complete-obj shared runtimebyt_complete_obj_shared -output-complete-obj static runtimebyt_complete_obj_static -output-obj shared runtime byt_obj_shared -output-obj static runtime byt_obj_static -custom shared runtime custom_shared-custom static runtime custom_static with tender byt_default ocamlc -where: %a ocamlopt -where: %a %!   ocamlopt -where:  ocamlc -where: n/a  Testing compilation mechanisms for %a %!  Testing compilation mechanisms for  Unexpected response from %s -where    -whereUnexpected response from  -where# try Sys.is_directory dir with Sys_error _ -> false test_install_script -verbose ocamlcommon +compiler-libsunix+unix-I-o-runtime-varianttest_install_ocaml ocamloptocamlc -output-complete-exe macosx  -cclib -noautolink-output-complete-objpower  -lunixbyt riscvs390x  -output-obj  -lunixnat -lcomprmarsh -custom sh   test-prog Linker returned with exit code %d instead of %d  instead of Linker returned with exit code   @{$CC -o%a@} %!    $CC -o     -lcamlrun -lasmrun_shared main_in_c %s is expected to return with exit code %d   is expected to return with exit code skip7 try (Unix.stat dir).Unix.st_kind = Unix.S_DIR with Unix.(Unix_error(ENOENT, _, _)) -> false C(A(hC(A(0C(XA(<C(A(DC(A(,C(A(C(A(C(A(DC(A(dC(A( C(A(|C(A($C(A(LC(A($C( A(C((A (0 A (0 A (0H A (0C (0`A (0TA (08A (0 !X !! " 0Xpx  (08@X`px  (08@X`pxL  (08@HX`px (08@HX`px  (08@HX`px@ (08@HX`px$  (08@HX`px P  (08@HX`px  (08@HX`pxP L  (08@HX`px`  (08@HX`px  (08@HX`hpx  (08@HX`hpx  (08HX`hpx  (08X`hpx  (08X`hx4  !#%'-x x x  x0  xH< x  x`  x4  xP  x x  x  x  xp x x\  xa08@Hb#`!! !# !  333| 3 ,3 43 3 3 1 33<4@XlhT1!"pdAAA0C 0P A 0 A 0lA 0TC 0A 0 C 08C 0A 0\A 0<AA(8A(A(C#%()+C#%'()+ C%'()+C%'()+L01(2@, bx  H (D !(- 8V@  @* 4 ( 0  aPD ,  PB  H*t  xU (q pY T 4hm xUd pD61 t), DYJy  *hx   P X X> `vH5 @YL uX8 hXA x  XP hX! ) xU P`*  xU (QDHT P" L u-< )T  ڐ ,h*xY``$  XX$ Y  Z t!8 xU (A@X@q @ xU ( xU p| X!@9T8@YX T ` D !8] xUT (, 4xD `h  1P- xU$ 1Dz!HaJ+h b F8\IX@h` lX@* >\$ d(@\8 mxUdȘ$$9"8$pa4 I   H!,XA) xX @8*|H XE0 PXf0yYX@ Pp)IX|)t(!p(+ ePbP <48U!04H!MxUD!X@5xU,(ahL!` * xUl +h0*xUxQa xUȘ9@ IxE1Ua0(h!L\x)XT5LPl `N@p testsuite/tools/environment.mltestsuite/tools/testLinkModes.mlprintf.mltestsuite/tools/harness.mlAKKTestLinkModes.link_with_main_in_cTestLinkModes.rungTestLinkModes.make_test_runnerC)TestLinkModes.write_test_program.(fun)Environment.display_outputTestLinkModes.runR TestLinkModes.test_runs.test_with_outcomeTestLinkModes.run.(fun){lTestLinkModes.run[TestLinkModes.link_with_main_in_c.summarise.pp'aTestLinkModes.make_test_runner.runTestLinkModes.test_runsTestLinkModes.make_test_runner.run.executeEnvironment.in_test_rootdEnvironment.bindirk*TestLinkModes.runKTestLinkModes.main_in_c/TestLinkModes.compiler_where TestLinkModes.test_runs9)2TestLinkModes.write_test_program.(fun)'TestLinkModes.run_program.(fun)TestLinkModes.link_with_main_in_c.summarise_TestLinkModes.test_runs;TestLinkModes.test_runsTestLinkModes.runTestLinkModes.link_with_main_in_cTestLinkModes.runTestLinkModes.runTestLinkModes.run_program.(fun)kTestLinkModes.runKTestLinkModes.runLStdlib__Printf.printfTestLinkModes.run+TestLinkModes.test_runsTestLinkModes.make_test_runner.runHarness.erase_fileTestLinkModes.compile_test.fgTestLinkModes.run(Environment.format_line+#+TestLinkModes.make_test_runner.run.executeTestLinkModes.compile_testTestLinkModes.runTestLinkModes.test_runs.test_with_outcomeC_T@@@{Tb#G@H I@A CD!@ k@`@C_{{@c0#Tѐ@T" @_Tc@c@%@ &@T@@)@!@@@ @@_C@ @@{Th#  J@  @  @ C__{{@c0#T  @%@AT@@{Ty#9cu @ @  cu@?TB@B@@{c Tt#u#@`T@ @{C Tj#vGV@{#Th#u  aul@nhiau, @-+@@@@ @@@@ @@@@@@ @T@?`T^T@@@@_@__{{@c0#T ?T!@!@ T@@@? T@{cTa#u. @/ @{c Ta#u4 @5@@{ Tw#9@@!@ @@@@@@@@@@{Th#au  J@K @ @ auN@IH@@@T@@@_T@__֠@@__Cѐ@{Tc#c d@e fG @g` h`u  J@K @ L@  auO@au4U@5-C_{{@bc0#T@T" @@@ @& @(@_{{@c0#T @@@{cCTi#)u*@+ ,au@@auau@bu@bu"#@"#`udawe`u`u@`uK@@LMauauau@@bu9@bu`uC@D@E`u@ @`u @  aulheaau.+" @'G@ @@_v{{@c0#T#@$@@F@$@ TH@T@{ccTi#**K @++  @ @ 6T@ @T@{ccTi#55@8@9`@{cTi#77 @ @8@!S9@ @`T@_T )@H@{cc Ti###@#@$<@T@{cC Ti#%%@&@'-@{cTi#'' @ @(@*  @_T@{cCTi#,, @M @--@T )@ @{cTi#44@,,@{cCT`#u@ __}]CT~K@@{Tn#aρs@  !%)au7œW̭C__{{@bc0#T%(@#$@" @&@ @@{T`#鞅  J@ 'G  @ @@ @@@@$@ (@$@(@@$@AT@@ __֐@{cT`#u!œA̭@ __{{@bc0#Tѐ@IT&_8%@@#@@$@V@`TW@@A @'A@#@@G@ I$@A @@(@@@ @@@@@@#@'@_P{{@"c0#TCC?6@@@@@@@@ J@@8a_8p 6 @@@c@@@@@@@#y@?T!@@@@@@@@@@@@{CQTf#v!@@@@@@@@x@Ty@?T!@@@@@@@@ J@@!@@@@{KTd#@v@@v!@@@@@@ J@ b@_T!@@@@@@@@@@@@{CETe#v!@@@@@@@@ @a@?@Tb@_T!@@#@@{C@Te#v!@@@@@@@ J@@y@@{C=Tf#vȀ!@@@@@@@ J@ ae@T!@@@@@@@@@@Q!@@#@@@{6Te#@v@v΀@!@@@@@@@ @'j@_T!@@@@@@@@@@@@{C0Tf#v̀!@@@@@@@@m6@@j6@T@6@ @f6@@e6@@d6@@c6@n@6C@ @I@@`6@@?@&@ aT T@{c(Tf#ǀ  $@3@ T_ TC@,@"T@/@ @@7@@;c@B@?@3@'@ T9@!@@#;@#@+?@,@@@@T@{Tf#`uǀ@7@`u* k@+&7@@{#Tl#u@au#@au@+@T!@3@@{##Ty#9u! @-!cu"c@#94`u@!@3@@{#Ti#)u* @/+aul @minauρs@@T@{c#Ti#u4@5. @@3@!TC@@?T@~ @+@`T/@@@@@@?@'@@@@@X@ @T'@@@@C_T C__@@B@3@c@` @@ T@$%@"@?@@3@#@;@T C__@!@@@+@/@@;@@C@?@C_ C__iG$ yJq?@T_@_`6@{{@bc0#T@Tc@B@ @a6@ @@@@@@ )@@@@!T@7@6@__ @@"@@_@{{@c0#TC(@ A@@@ @@@@@@_T@~ @@{C5Ta#v4-@@@@T@@@@ @ @@@@ @@@@@ @@@{#0Tm#Ү@`@ U@ @@c@@@ @@{c+Tc#ud`@e@@c@@"@!@ @@{c(Tm#u@@@c@@b@a@` @@{c%Ty#u! @,@@c@@@@ @@{c"Th#u @@@@@@@ @@{cTt#u@@@c@@@@@@{cTc#ud`@u@@c@@@@@@{cTl#u@@@c@@@@@@{cTx#u@@@c@@@@ @@{cTg#u@@@c@@@@ @@{cTs#ut`@c@@c@@@@ @@{c Tb#uC@@E@@c@@@@ @@{c Tk#ul`@g@@c@@@@ @@{Tw#Bu@Bv` @j@@@b@a@` @@{ccTg#u@!@ J@@@@{T`#힁 @ @ @_yaI1Qb@a@` @Cѐ@T6 C__"@@$@C_P{{@"c0#TC!@B@@ #@!@@@#@@@@ J@@@ @5@.@?@@b#@!@@#@!@@#@!@c@`#@!@@#@!@ )@ #@!@@#@@C__֧ testsuite/toolstestLinkModes.mlout_channel.mlenvironment.mlharness.mloption.mlprintf.ml ' wJ  4J.f .!   XXtȮXXf<.J.}J kLO1JL-XJ~  .Xft g~X    XetXdefXVefXVstUrsfVX; u ~.fM+f=mZ?  X   0 /}.ff J.?/.I< 9tP#!<<MM!XZwy !0J<tt Xk"FkgfvL ^ "  `   b   d  f   h   j   l   n   p   r   t   v  Xr x '{  % t . . H@XAh<xCEFHIKLHNPQ(P8STp x           0 8 P ` h            ( @ P X p           P X    (8@@H  !"#$ %@ H&X"`'p$x()*$+,-8%H.x/0123,4 )(-8567 8 9 :0 :` ;h < = > ? @ AX!B`!C!D!E!F!G!H!! ("I8"J@"KP"K"L"M#O#P`#Qp#Rx#Ap$-$-$-$+L$'$'$'%'L %'@%'X%'x%'%'%'4%'%'&' &'8&'X&',p&' &'&'(&'|&'0''$''88''P''@p''x''H'' ''P''''X(',(('H('h('('`('p('`('H(%)% )%T8)%P) p)` )L ) ) * 8* h* * *+ H+x+ + +0,H,x,,$ ,, ,-4 8-LX-<x-< -x-D -L -.T @.`..\ ....T/ /8/P/\h/P/////0000H0`0x001P(1L@1pX11D111X11x2h(2`H2`2h2p22p2 42 3 3 03 ``3 h3 p3 x3 p3 3 47V8V7W 8W@7XD8Xh7Yl8Yp7Zt8Z[\]@7^D8^P7_T8_p7_t8_7`8`7a8abc\,7K08KD7dH8dl\]7e8e7f8fg7h8hi7j8jkl(7m,8m0nHo\\d\l\t\]H7pL8pT7_X8_d7qh8qlrt7sx8s|r7t8t7u8uv7<8<(7w,8w\7x`8xdktox7y|8yz7T8T{7|8|no@}T\\\d\l\(7~,8~X7T\8Tl\]Hhol\]@7D8L7878D7H8X7\8\]780748P7T8D7H8\\\\\\\\\D7H8\]LIp7t878l}P\X\]L7_P8_C\]`7d8787878 >0748L7P8x7|878787878> 7878,708H7L8P7T8>7878787878g87<8@7D8\7`8t>7878787878 7878(8>H>7878787878> 7$8<7@878787878r,A\7p`8p|787Y8Y787 8P7T8p7t8787878$ 7( 8 i 7j 8j k l 7m 8m n o< 7@ 8H P 7T 8\ l F L \ \ \ \ \ \( \0 \8 \@ \H \P \X \>]@7D8H7L8P78i78n\]DT7X8\kloQQ787 8k(c87T<8Td7Ph8P|78787878N787878NL7P8T7X8\7`8tN787878N7878 NP7T8X7\8`7d8xN787878N787 878(NX7\8`7d8h7l8N787878N7 878780N`7d8h7l8p7t8N787878N(7,80748HNx7|87Z8Zb78\\\\\\ \\\$\,\4\<\D\L\T\\\NH\](7?,8?07T48THTP7BT8BX7T\8TpTx7|87N8Nr7U8U787T8TT7D8D7T8TT7G 8G7T8T(T07J48J87T<8TPTX7M\8M`7Td8TxT7O8O7T8TT7R8R7T8TT   )TpFeJ!^#r%'e)z+-2 3566!6a1  0 @ P`p!#%' )0+@-  ( 0 8 t@ H |PXt`hpxt`` !!##%%''d )() 0+8+P@-H-< \ | 4Tt!#,%P'p)+-.symtab.strtab.shstrtab.text.rela.data.bss.text.caml.camlTestLinkModes.code_begin.rela.text.caml.camlTestLinkModes.write_test_program_288.rela.text.caml.camlTestLinkModes.fun_1529.rela.text.caml.camlTestLinkModes.run_program_363.rela.text.caml.camlTestLinkModes.fun_1546.rela.text.caml.camlTestLinkModes.link_with_main_in_c_671.rela.text.caml.camlTestLinkModes.summarise_685.rela.text.caml.camlTestLinkModes.pp_688.rela.text.caml.camlTestLinkModes.test_runs_1114.rela.text.caml.camlTestLinkModes.test_with_outcome_1124.rela.text.caml.camlTestLinkModes.make_test_runner_1133.rela.text.caml.camlTestLinkModes.run_1146.rela.text.caml.camlTestLinkModes.execute_1149.rela.text.caml.camlTestLinkModes.compile_test_1175.text.caml.camlTestLinkModes.fails_if_inner_1671.rela.text.caml.camlTestLinkModes.fails_if_1246.rela.text.caml.camlTestLinkModes.compiler_where_1280.rela.text.caml.camlTestLinkModes.run_1287.rela.text.caml.camlTestLinkModes.fun_1723.rela.text.caml.camlTestLinkModes.fun_1727.rela.text.caml.camlTestLinkModes.entry.text.caml.camlTestLinkModes.code_end.note.GNU-stack.rela.debug_line.rela.debug_info.debug_abbrev.rela.debug_aranges.debug_str.rela.debug_ranges.rela.eh_frame@&@@!@@;,@1@^@Y@ ;XA@P; Bt@Px; B|@; Et@;YGT@h;HHt@`;H@XP;PK@;HN@pH;TN`O@;XPz@;XQ` @PX;\\@;!C\>@8;#y]dt@ ;%He @;'heP@;)e@0;+gCgXgS@@;/i?l"d@ ;1uall`@;40mmPn`@;7o@h;9rX <9 @H