From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 689E3BBAF for ; Thu, 24 Sep 2009 01:54:06 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AogCAIpRukrUnwdklGdsb2JhbACCIJhfAQEBAQcNCAkTBLtahBsFgVg X-IronPort-AV: E=Sophos;i="4.44,441,1249250400"; d="scan'208";a="36700385" Received: from relay.pcl-ipout02.plus.net ([212.159.7.100]) by mail1-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 24 Sep 2009 01:54:05 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvoHAPdRukrUnw6S/2dsb2JhbACCINR3hBsFgVg Received: from ptb-relay02.plus.net ([212.159.14.146]) by relay.pcl-ipout02.plus.net with ESMTP; 24 Sep 2009 00:54:05 +0100 Received: from [87.114.87.187] (helo=leper.local) by ptb-relay02.plus.net with esmtp (Exim) id 1Mqbev-0005kW-20; Thu, 24 Sep 2009 00:54:05 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: Philippe Wang , caml-list@yquem.inria.fr Subject: Re: [Caml-list] OC4MC : OCaml for Multicore architectures Date: Thu, 24 Sep 2009 01:05:18 +0100 User-Agent: KMail/1.9.9 References: <200909240121.02123.jon@ffconsultancy.com> <4d1b2df20909231615t49deff43w2c27daad1c3effda@mail.gmail.com> In-Reply-To: <4d1b2df20909231615t49deff43w2c27daad1c3effda@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200909240105.18288.jon@ffconsultancy.com> X-Plusnet-Relay: c80a6f0e26b4a40d012d15f3c8ff0843 X-Spam: no; 0.00; ocaml:01 ocamlopt:01 ocamlopt:01 lib:01 ocaml:01 lib:01 runtime:01 runtime:01 -cclib:01 -cclib:01 -thread:01 cmxa:01 cmxa:01 -verbose:01 -rectypes:01 On Thursday 24 September 2009 00:15:14 you wrote: > make program.nc uses original ocamlopt > > make program.th uses the newly built ocamlopt with the necessary > options (lib links) > > then you can compare program.nc and program.th Aha! Progress, but now I get errors: $ make matmul.th =2E./out/bin/ocamlopt -ccopt -march=3Dnative -ccopt -mtune=3Dnative -ccopt = =2DO4 -I /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/oca= ml/ -I /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/s= c_par /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc= _par/gci.o -cclib -lgc -cclib -g -thread =20 unix.cmxa threads.cmxa graphics.cmxa -verbose -compact -rectypes -inline=20 100 -fno-PIC -cclib -lunix -cclib -lpthread "matmul.ml" -o "matmul.th" =46ile "matmul.ml", line 25, characters 8-13: Warning Y: unused variable count. =46ile "matmul.ml", line 26, characters 8-16: Warning Y: unused variable last_col. + as -o matmul.o /tmp/camlasm081590.s + as -o /tmp/camlstartupdac3e2.o /tmp/camlstartup8f7152.s +=20 gcc -o 'matmul.th' -I'/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml= =2D3.10.2/../out/lib/ocaml' -march=3Dnative -mtune=3Dnative -O4 '/tmp/camls= tartupdac3e2.o' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out= /lib/ocaml/std_exit.o' 'matmul.o' '/home/jdh30/src/ocaml/parallel/oc4mc-200= 90823/tests/../out/lib/ocaml/graphics.a' '/home/jdh30/src/ocaml/parallel/oc= 4mc-20090823/ocaml-3.10.2/../out/lib/ocaml/threads/threads.a' '/home/jdh30/= src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/unix.a' '/home/jdh= 30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/stdlib.a' '-L/= home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/' '-L/h= ome/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par' '-= L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/../out/lib/ocam= l/threads' '-L/home/jdh30/src/ocaml/parallel/oc4mc-20090823/ocaml-3.10.2/..= /out/lib/ocaml' '-lgraphics' '-lX11' '-lthreadsnat' '-lunix' '-lpthread' '-= lunix' '/home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/= sc_par/gci.o' '-lgc' '-g' '-lunix' '-lpthread' '/home/jdh30/src/ocaml/paral= lel/oc4mc-20090823/tests/../out/lib/ocaml/libasmrun.a' -lm -ldl /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasm= run.a(memory.o):=20 In function `gc_end_roots': memory.c:(.text+0x10): multiple definition of `gc_end_roots' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c= :948:=20 first defined here /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasm= run.a(memory.o):=20 In function `gc_begin_roots': memory.c:(.text+0x12): multiple definition of `gc_begin_roots' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c= :947:=20 first defined here /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../out/lib/ocaml/libasm= run.a(finalise.o):=20 In function `caml_final_do_strong_roots': finalise.c:(.text+0x0): multiple definition of `caml_final_do_strong_roots' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:/home/jdh30/src/ocaml/parallel/oc4mc-20090823/runtime/gcs/sc_par/gci.c= :301:=20 first defined here /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:=20 In function `stop_the_world': gci.c:(.text+0x38e): undefined reference to `caml_all_threads' gci.c:(.text+0x403): undefined reference to `caml_all_threads' gci.c:(.text+0x410): undefined reference to `caml_all_threads' gci.c:(.text+0x48a): undefined reference to `caml_all_threads' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:=20 In function `resume_the_world': gci.c:(.text+0x4c4): undefined reference to `caml_all_threads' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:gci.c: (.text+0x57c): more undefined references to `caml_all_threads' follow /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:=20 In function `termination_action': gci.c:(.text+0x1e94): undefined reference to `remove_thread_from_list' /home/jdh30/src/ocaml/parallel/oc4mc-20090823/tests/../runtime/gcs/sc_par/g= ci.o:=20 In function `gc_terminate_local': gci.c:(.text+0x1fe5): undefined reference to `remove_thread_from_list' collect2: ld returned 1 exit status Error during linking make: *** [matmul.th] Error 2 =2D-=20 Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e