From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 22A747EEF6 for ; Fri, 5 Jun 2015 20:37:29 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.213.179; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.213.179 as permitted sender) identity=mailfrom; client-ip=209.85.213.179; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ig0-f179.google.com) identity=helo; client-ip=209.85.213.179; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-ig0-f179.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BaAQD+6nFVm7PVVdFBGoMvNV4GgxisZpBLhXUCgS8HOxEBAQEBAQEBEQEBAQEBBgsLCSEuhCMBAQQSEQQZARsSCwEDDAYFCw0CAgkdAgIhAQERAQUBChIGEwgKEId1AQMSDTqrEz4xiz+Ba4J5mSsKGScDCleESgEBAQEBBQEBAQEYAQUOgROKIoJNgjkHgmiBRQWFSwqGCot/hQmBX4EvPo5fCYMngg8SI4EMCYItHIFUPDEBgkYBAQE X-IPAS-Result: A0BaAQD+6nFVm7PVVdFBGoMvNV4GgxisZpBLhXUCgS8HOxEBAQEBAQEBEQEBAQEBBgsLCSEuhCMBAQQSEQQZARsSCwEDDAYFCw0CAgkdAgIhAQERAQUBChIGEwgKEId1AQMSDTqrEz4xiz+Ba4J5mSsKGScDCleESgEBAQEBBQEBAQEYAQUOgROKIoJNgjkHgmiBRQWFSwqGCot/hQmBX4EvPo5fCYMngg8SI4EMCYItHIFUPDEBgkYBAQE X-IronPort-AV: E=Sophos;i="5.13,560,1427752800"; d="scan'208";a="134688676" Received: from mail-ig0-f179.google.com ([209.85.213.179]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 05 Jun 2015 20:37:28 +0200 Received: by igbpi8 with SMTP id pi8so22314772igb.1 for ; Fri, 05 Jun 2015 11:37:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=n5t3r2KdNs8Is/bkZip/mBLHhGu1lZQBa/lRXG74wDs=; b=u36SMUoNITyb8MxC++WF0cjjigr1rwW5qrSvzq2ED+pWqvOaZXEKwhu+GIIkxHEt/P CMWup/+xf6qpgep3bYlYzWdkUiRFmNPBYMzxpXjgpN6AKIsKg76dlD6V5vCPjvxzakFh /O5xOKRqdjbPnxD5vnQ6uOS7nulZu6UpVrGqe0QengfwajmLaN9HwsuS+7b6aht0IWkC qizmAhZshfJgncj7PcfSJOKTw2PRuTwJVnFLqlprZCZfLSwKChHmfK6thAuqdtHBXfHh 1DwAGvuKVAzEllCiCqzaWCcIryA58ZlkM3MVwQMSLxWUGJcy33+YxByh8af8Dj3t5e7i QIXQ== X-Received: by 10.50.78.199 with SMTP id d7mr14409851igx.18.1433529446569; Fri, 05 Jun 2015 11:37:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.92.131 with HTTP; Fri, 5 Jun 2015 11:36:46 -0700 (PDT) In-Reply-To: References: From: Gabriel Scherer Date: Fri, 5 Jun 2015 20:36:46 +0200 Message-ID: To: "Christiano F. Haesbaert" Cc: caml users Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Can't build a target with C stubs using ocamlbuild (Replying in-list as other people may be interested) On Fri, Jun 5, 2015 at 7:09 PM, Christiano F. Haesbaert wrote: > What is the common workflow to test such diff ? > > Is there a way to pin the compiler in opam ? My personal workflow is to use my script https://github.com/gasche/opam-compiler-conf which creates an opam switch from a compiler directory, using the compiler version and git branch name to choose the switch name. Steps are: - install the opam-compiler-conf script in your $PATH *outside* opam (otherwise you will need to install it in all switches, pain) - clone the compiler somewhere (and go to the branch you want to test) - apply the patch you want to test - opam compiler-conf configure (instead of "./configure" as suggested by README) - make world.opt - opam compiler-conf install (instead of "make install" as suggested by README) This will create a switch with the compiler you installed named, for example, 4.02.2+local-git-4.02 (more generally $OCAMLVER+local-git-$BRANCHNAME). You can install opam packages and test them as in any switch. Then, if you modify the compiler again and make world.opt again, you can use - make install from the compiler directory to install the compiler without reinstalling the OPAM packages (if the binary interface didn't change and recompilation is not needed) or - opam compiler-conf reinstall to also recompile all the OPAM packages of the script (Another common way to get a switch: pull-request made against github/ocaml/ocaml automatically create a corresponding switch.) On Fri, Jun 5, 2015 at 7:09 PM, Christiano F. Haesbaert wrote: > Thanks, off list, > > What is the common workflow to test such diff ? > > Is there a way to pin the compiler in opam ? > > On 5 June 2015 at 18:47, Gabriel Scherer wrote: >> I reported and proposed a fix at >> http://caml.inria.fr/mantis/view.php?id=6893 >> >> On Fri, Jun 5, 2015 at 4:24 PM, Gabriel Scherer >> wrote: >>> This seems to be an ocamlbuild bug that should be reported on the bugtracker: >>> http://caml.inria.fr/mantis/ >>> >>> On Fri, Jun 5, 2015 at 3:55 PM, Christiano F. Haesbaert >>> wrote: >>>> Just one more question, now with the real code, I was able to move >>>> everything to myocamlbuild, but I'm getting a warning: >>>> File "_tags", line 10, characters 12-28: >>>> Warning: the tag "linkdep(stubs.o)" is not used in any flag >>>> declaration, so it will have no effect; it may be a typo. Otherwise >>>> use `mark_tag_used` in your myocamlbuild.ml to disable this warning. >>>> >>>> ## build.sh ## >>>> ocamlbuild -use-ocamlfind all.otarget $@ >>>> >>>> ## _tags line ## >>>> <*.native>: linkdep(stubs.o) >>>> >>>> ## myocamlbuild.ml ## >>>> open Ocamlbuild_plugin;; >>>> dispatch begin function >>>> | After_rules -> >>>> pflag ["ocaml";"compile";] "ppopt" (fun s -> S [A"-ppopt"; A s]); >>>> pflag ["ocaml";"ocamldep";] "ppopt" (fun s -> S [A"-ppopt"; A s]); >>>> pdep ["link"] "linkdep" (fun param -> [param]) >>>> | _ -> () >>>> end;; >>>> >>>> It seems to be the same case as >>>> http://stackoverflow.com/questions/25585813/mark-tag-used-warning-with-ocaml-4-02-0 >>>> >>>> Should I just use mark_tag_used ? It seems something else is wrong >>>> since the tag is actually used. >>>> >>>> >>>> On 5 June 2015 at 12:47, Christiano F. Haesbaert >>>> wrote: >>>>> On 5 June 2015 at 12:38, Jeremy Yallop wrote: >>>>>> On 5 June 2015 at 11:29, Christiano F. Haesbaert >>>>>> wrote: >>>>>>> ### toto_c.c ### >>>>>>> ### toto_c.ml ### >>>>>> >>>>>> Both of these files will be compiled to object files called >>>>>> 'toto_c.o'. Renaming one of them (e.g. toto_c.c to toto_c_stubs.c) >>>>>> should fix the problem. >>>>> >>>>> Hooray, great, that did the trick, thanks a lot :D. >>>> >>>> -- >>>> Caml-list mailing list. Subscription management and archives: >>>> https://sympa.inria.fr/sympa/arc/caml-list >>>> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >>>> Bug reports: http://caml.inria.fr/bin/caml-bugs