ELFI@@GF '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 with relocatable #!byt_default_sh_always with fallback #!byt_default_sh_enable with absolute #!byt_default_sh_disable 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_staticwith relocatable tenderbyt_default_exe_always with fallback tenderbyt_default_exe_enable with absolute tenderbyt_default_exe_disable  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  -wheretest_install_script -verboseR ocamlcommon +compiler-libs# try Sys.is_directory dir with Sys_error _ -> false unix+unix-I-o stublibs -dllpath-set-runtime-defaultstandard_library_default=.new-runtime-varianttest_install_ocaml ocamloptocamlc -output-complete-exe -output-complete-objpower  -lunixbyt riscvs390x  -output-obj  -lunixnat -lcomprmarsh -custom -runtime-searchalwaysenabledisable exe -launch-method  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 1 1 1"c Ha Hpc(Ha(HPc 0H8a 0Hdc(0Ha(0H<c 0Ha 0Hc(0Ha(0H,c 0Ha 0Htc(0HHa(0Hlc 0Ha 0Hc(0H(a(0Hc 0Ha 0Hc(0Ha(0Hc 0Ha 0Hc(0Ha(0Hc 0HHa 0Hc(0Ha(0Hc 0Ha 0Hc(0Ha(0Hc 0Ha 0H<c0HTa0HcHpa@HPta (08@HPTa 0@HP`a0@HP$c0@HP a0@HPa (0@HPa0@HP|A A08A (@B (HP` HPX`hp HPX`hp ((8HPX`hpx (8HPX`hpx 8HPX`hpx %8HPX`hpxL%8HPX`hpx h 8HPX`hpx \  8HPX`hpx 8HPX`hpx0L0  8HPX`hpx 8HPX`hpx   8HPX`hpx | 8HPX`hpx  8HPX`hpx  8HPX`hpx` 4  8HPX`hpx  8HPX`hpx(  8HPX`hpx8HPX`hpxT h 8HPX`hpx  8HPX`hx 8HPX`h 8HPX`h  %')+-HP   HP HP  HP  HPp  (HP <  (HPh  HPh  HP  HP  HP  (HP  (HPh  HP HPt  HP8  +HP`l HP|q (08PX`h rC A<A(0A(0C(0 D A(0#  p| S  S #@S 0 S 0@DS 8@\S 0@S 8@Q 08@S LS (08@(D ,dd$ t0$4 < Q (08@1 (82 (#Xa4 a aPhc@P8a@Ppa8@Pa 8@Pc08@Pa0@Pc(0@Pc(0@P a(0@Pa(0@PQ XQ(8Q (8Q8hS8S8S8DS8|#A 0B# U0 (p X@ U0 H!P `N@L [4Pl(x0.-p@ @i hXAP ڐ ` | 80/P. xU A  8 `| P aJ+l X`D(p/ xU ( YB < 91 , !$ X*8a @Y p X $9P`. PB p@tF8, xU% xU ( xU ) xU ,1XP(-< / >8| 9L@XD61T X! 0P/D Xb`  } xUt Ș 1Ix  U xUL pIE xU<  XeP` L!% xU i` x) @ uX hX! xU p9 `v| ixt P"l  1 8L DYJa xU H, uD Zx  @2xXf)0  xep!8 9@  ! )1 (!T. 4(  )pP. XA) xU PX>| 18t (@ xU Ș\ 8V! @0yYl8X  !Dz , E\ 0 hU xUL ! b` 0 4 a- xU$ Y@8pY ppxH.X@0)P$ |8~Xtlx)4P8tY lZ  *<4@9}xUt(yh4 xY`"@D@H  Php.Y H(@jxX`v`xU(X.]&x PxQa dqHPXX LH!xU(|$xaXMxUD(@/XH XPIX8@h  !@Y 4I8testsuite/tools/environment.mltestsuite/tools/testLinkModes.mlprintf.mltestsuite/tools/harness.mlTestLinkModes.runAKKTestLinkModes.link_with_main_in_cgTestLinkModes.make_test_runnerC)TestLinkModes.write_test_program.(fun)Environment.display_outputTestLinkModes.link_with_main_in_c.summarise.ppTestLinkModes.runlTestLinkModes.run{TestLinkModes.run.(fun)_nTestLinkModes.run?'TestLinkModes.run_program.(fun)TestLinkModes.runTestLinkModes.test_runsTestLinkModes.make_test_runner.run.executeEnvironment.in_test_root`Environment.bindirgTestLinkModes.runG*TestLinkModes.run'TestLinkModes.main_in_c TestLinkModes.compiler_whereTestLinkModes.test_runs9)2TestLinkModes.write_test_program.(fun)TestLinkModes.test_runssTestLinkModes.test_runsOTestLinkModes.link_with_main_in_c.summariseTestLinkModes.rune TestLinkModes.test_runs.test_with_outcomeTestLinkModes.runTestLinkModes.link_with_main_in_c`Environment.libdirgTestLinkModes.runG$ TestLinkModes.make_test_runner.runTestLinkModes.run_program.(fun)TestLinkModes.runTestLinkModes.runStdlib__Printf.printf+TestLinkModes.test_runssTestLinkModes.compile_test.fzHarness.erase_file7TestLinkModes.make_test_runner.runTestLinkModes.runEnvironment.format_line#TestLinkModes.make_test_runner.run.executeTestLinkModes.compile_test{TestLinkModes.test_runs.test_with_outcomeKTestLinkModes.runL<B8!8|0(A%,A< H<;@?|iA8==@9Ee (b=kk<=}0ah} !8 NA=} N(`;H`HL<B8(~xk9@X!|@!8|PHA@?|A%,A<8H<8$ 0),AB=J(AHB=J(A(< H`HA80(xg| a=}Pah}@!8 NA=} NL<B8!8|0(A@0;@?|YA90ah}B>R">1>9.Nn (0xs} !8 NA=} N*`;H`HL<B8(~k9@X!|@!8|`XA0xC}H9x+|8A0a@xST}xK1}x;|x3|x#|xx|9,A$H 099,&|T9k:{9;@?|A;`8;|0888(/,A"=) H"=);@?|A99/xD~x#~x <|@>H`x#, A9$H;@?|aA9 ;..;@?|AA?;@;09;Y:@;T4 ;9/"?9/3,&|T9k9{90xJ~x88x~x~H`XAb<c( H`XA H`XA0a(!9|`A@a;, A9,LA8b<c (aH`XA(xe| a=}`ah}P!8 N`ah}`8P!8 NA=} N,`;H`HL<B8(~k9@X!|@!8|phA@!P( H0a$,A< H<&,@b<cH`hAHb<cH`hA $,4@;@?| A8>:d0H;@?|A8?:d(aH`hA8a;@?|A_;0<?`;z<@P8( (0zb<c AH`hA(xe| aH`hA8b<cH`hAxf|;@?|A999b=k P8`: :.e@`8H`hAH!#|HA ab<c(!H`hA(xe| a=}pah}`!8 N#,Apah}`8`!8 NP=`8H`hApah}`8`!8 NA=} NL<B8!8|0(A;@?|A8"=)=8H8&E99Ffb=k N:0%`:.r 8:(x3|D=}0ah} !8 NA=} N&`;H`HL<B8(~hk9@X!|@!8|@8A( a@?|MAA8dx+|H`8A( /oP=}@ah}0!8 NA=} N*`;H`HL<B8(~k9@X!|@!8|`XA0x+| H@8(ab=kkH`XA;@?|EA99.:::6; ;8`;@;;::`:@::9nQq4Yy88'99O::898%:6;;8(A9 ::`::@9Iio/r2T8;:V@;G9b?{ :Yy0a`88|<<8 99`: :99'gj0Pd@8d8>?>:c (H0=}`ah}P!8 NA=} N*`;H`HL<B8(~k9@X!|@!8|`XA(%HI a*,PA0.,0A;@?|A9:%//8H08(@H08(@eH`XA`pA#,|Ab=k5,4A;@?| A9@8:H;@?|A90 ;/G@O|Hb=kk;,LA(!),A=PH;@?|yA9@8A8O H;@?|IA908@H(,4A;@?| A90!@9OH(A2,$Ab=k 0,A=Hb=kK2,$A0a s4,A=PHb=k6, A8 H0;@?|UA9@ ;/;@?|-A8`ah} 8P!8 NA=} NL<B8!8|0(A&,<A',4@0, AH/1,&|TSz:H:H:X;@?|A?;0ah}<?b?{0@;@9;Yyy (08f88@9HYP9"=)=88cn=)9X&& !8 NA=} N(`;H`HL<B8(~xk9@X!|@!8|PHAH%x#|(@PX0 a8exK%}H`HAxd|;@?|QA8B>R">10:#C0Ab>sc a ( ((00@8P2@#XRHCPcXH`HA`8H`HA(H<,4A0=`8@H`HAPah}g`<}c8@!8 N0`8;@?|aA8Pah}=<88ee8cn=)9@9C@!8 NA=} N.`;H`HL<B8(~k9@X!|@!8|xAx#|@?|A&),A0e3,A(4,tAb=k5,`AH6,A@8,D@P%9,$@XEHz;,(A@$,@=xC} 8$H8H=xC}0e3,PA(4,DAb=k5,0@@7,AH8,@P%H ;H ;Hh 8#XXeP@!0` (!8@HH`xAh`XAP!H@80(xp| a=}ah}p!8 NA=} NL<B8xf|dx3|=} NL<B8xf|dx3|=} N6`;H`HL<B8(~k9@X!|@P!8|A PHap4A:">1:9 9888`88Hb=k9dyb | | | N(,A0$),(@< H0.,A<H8b=kK'| @8<H;@?| A8',&|Tjz::b=k"?9dxYz'|@HH;@?|} A88c8c88<d: ::9 98<`8Hf#,8A: :>9 9888`8<pH8`8H`A;@?| A9>8n`88x~ : 988< H<,Af#,<A:">1:9 9888b<c<Hb<c<H`A8(a`8H`A;@?| A8(8'9">1@99Iib<cx5~:988< H&,8A: ::9 9888b<c<H8`8H`A;@?|- A?99 ib<c> ::9888<xH%,$A&,|Ab<c<x <|@>H`x;@?| A?99ib<c9:">1:888<Hb<c<H`A8(a`8H`A;@?| A8(8'9">1:@:Gib<cx5~:988<LH0,8A: ::9 9888b<c< H8`8H`A;@?|Y A?9@:Iib<c> ::9888<H/,8A: :>9 9888`8<dH8`8H`A;@?|A9> :.n`8 :x~ 9888<r A`;Hu r A ;H1rA9,&|Tz:Hq A`:Hn q A@:HIp A;Hp A:HpAA(H#,&|TZkZ{8`p A`8HcAH&, A7,A;@?|mA?9(@9Ii) i(I0 8@Hi`!) h!1,A0,@X2,A 8i8aXP zH`A<<aaH`AXxa<,,Ab<cb=kH`Apa Hapa!8HXi&,&|Thx8( 0a@H`Ah&,\A;@?| A99.:b>s@:>9Qq ! H! !!H4,(@A5,@0i<H`A@H`Axd|b<cH`A;@?|EA8 8$:<88d !0,|A!@0qH`A<H`A;@?|A: A ::00:>`:pPqH;@?|uA:0:6;@pay;b<c;@;?:6Yy{; a4,Aa<H`A;@?|A8089 h;>9B=J 98f(H aH aa<H`A;@?|aA: 0s:::s; ;>:u8(!B?ZX9,PA;@?|A;b<c;{;{;<8x0A:,4A;@?|A9=8Hx8a;,&| T)i*y 9<,$@a0,@  :p|H`8xA85,&|Tz8!988H`AC(ab<c AH`A H`A(8!0|LA(!x!b<c !H`A(xe| a=}ah}!8 N0,Aah}g`<}c8!8 N<8`8H`Axd|b=kkH`AX!1,PA`A!H(phaH`A#,@ah}g`<}c8!8 Nn;,$@H<,&|Tdxd8$HH&,&|Thxh8`!PA@0!H@=}ah}!8 Nah}g`<}c8!8 NA=} NL<B8$,A N`8 NL<B8`p A`8Hc=} N(`;H`HL<B8(~xk9@X!|@!8|PHA x+|(a@?|A<<H`HA xj|0Ap A`8Hd(!9=98888H`HA6,0@r$@sAPah}w@!8 N0Ab<c AH`HAxd| a|x+|Pah}@!8 NA=} N,`;H`HL<B8(~k9@X!|@!8|phAPH0P8@a0eH`hA0A(ab<c AH`hA(xe| aH`hAP0,@ 4@:q~H`:;@?|A8:dHa8H`hAP aV:, AHa88H`hA Hb<c 0(0 8ab<cH`hA80(xg| aH`hAb=k8+@PH;@?|A_:>>>`:r (02( r<<=0AH`hA;@?|YA80!88d<(i<= H`hA;@?|A?:0! @:Qq=( i<<(!H`hA;@?|A_;0(A`;zzZ( n<<= AH`hA;@?|9A?90 @9Ii( p8<=(!H`hA;@?|A:0A(!:u5( r<<= H`hA;@?|}A80 a8dd(t<<=( H`hA;@?|A:0( :0p( v<<= H`hA;@?|A?;0 @;Yy( x<<=(!H`hA;@?|]A90A(! 9(h(( z<< =H`hA;@?|A:0 a:tt( |<<=(H`hA;@?|A88d(a0!d(i<<= H`hA;@?|=A90! :o( i<<=(H`hA;@?|A;0!( ;8x<( i<= H`hA;@?|}A80A !9g'( j=<(<H`hA;@?|A:0(:s( o<<= aH`hA;@?|A;0! 8|( q<<=(H`hA;@?|]A90a(A9nN( s<<= H`hA;@?|A:0 ;w( u<<=(H`hA;@?|A8(8fb=k0k< H`hA;@?|QA8H>= 9 =}pah}`!8 NA=} NL<B8xi|fx+|(x#| xK&}=} NL<B8!8|0(A@?|MA`pA0ah}g`<}c8 !8 Nx+||x;|0ah} !8 NA=} N&`;H`HL<B8(~hk9@X!|@!8|@8A<<e8x <|@>H`x<<g8x <|@>H`xb=kb<cH`8A ab=kkb=kh$)~x,~!N8A H`8Axd|>t8x <|@>H`x<> w8x <|@>H`x<B?Z(z8x <|@>H`x<b<c0c8x <|@>H`x<<8f8x <|@>H`x<"=)@i8x <|@>H`x<b<cx <|@>H`x`8@ah}0!8 N  testsuite/toolstestLinkModes.mlout_channel.mlenvironment.mlharness.mloption.mlprintf.ml ' wX  4JJ  J   J !f<򮓄f&&&X&;&S&&&"&" &X(&0&T8&0@&hH&P&@X&h&%p&x&`&-&U& &&D&h&P&8&&&&!&(%&&`&&&&V&" &(& 8&P@&8%H&#P&)X&H`&h&p&8x&6&(&&&p&&&&W&!&&&$&&&&p&&p!&X&p& &(&0&8&@&H&P&P%X&`&Yh&p&x&9& "&&Z&&&#&&[&&`&H&\&&&$&!&&p&&& && ,& W&s& & & &0& `& && &! &#(&$<&% [&& F&'[&(u&    !n#z*&2&,;B&J&SZ&b&kr&z& &&5&&V&&4~&&&!&!8&" &"x &'"&'+2&):&)CJ&5R&5[9b&6j&6sRz&9&9{&;&;&=&=&>&>(&?&?(&E&E4 &F&F!"&J*&J & &0&@&P&`&p&&&&&&&& &!&#&$ &%0&&@&'P&(`&&& &(&0&8&@&H&P&X&`&h&p&x&&&&&&&4&&&&&&(& & (&!&!&#&#&$&$, &%(&%P0&&8&& @&'H&'4P&(X&(`&h&4 Ld |      $ <P d! #$% & '( .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_1564.rela.text.caml.camlTestLinkModes.run_program_363.rela.text.caml.camlTestLinkModes.fun_1581.rela.text.caml.camlTestLinkModes.link_with_main_in_c_688.rela.text.caml.camlTestLinkModes.summarise_702.rela.text.caml.camlTestLinkModes.pp_705.rela.text.caml.camlTestLinkModes.test_runs_1130.rela.text.caml.camlTestLinkModes.test_with_outcome_1140.rela.text.caml.camlTestLinkModes.make_test_runner_1150.rela.text.caml.camlTestLinkModes.run_1163.rela.text.caml.camlTestLinkModes.execute_1167.rela.text.caml.camlTestLinkModes.fun_1717.rela.text.caml.camlTestLinkModes.fun_1728.rela.text.caml.camlTestLinkModes.compile_test_1193.rela.rodata.rela.text.caml.camlTestLinkModes.fails_if_inner_1738.rela.text.caml.camlTestLinkModes.fails_if_1264.rela.text.caml.camlTestLinkModes.compiler_where_1308.rela.text.caml.camlTestLinkModes.run_1315.rela.text.caml.camlTestLinkModes.fun_1788.rela.text.caml.camlTestLinkModes.fun_1791.rela.text.caml.camlTestLinkModes.entry.text.caml.camlTestLinkModes.code_end.rela.toc.note.GNU-stack.rela.debug_line.rela.debug_info.debug_abbrev.rela.debug_aranges.debug_str.rela.debug_ranges.rela.eh_frame@&@ G!@D,`G1`G^`GY@XDH@D I@D I@D L@DYlOT@ DPP@DQ@DS@hDV4@xPDT$XO@D Zz@D\(@`DD\(@p`D l\@D"8|k3@ xD$Ek@@ 0D&{k,v@( `D(kP@ D*(m @D, v4@`D.7v2@(`D0blw]@@D2yy@$D5~~@3D8(4@5D:\&@h<(D= 09P@> D@,Ќ'@BDB E !D6