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 401D57FC86 for ; Fri, 20 Mar 2015 10:43:49 +0100 (CET) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of jdimino@janestreet.com) identity=pra; client-ip=38.105.200.112; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of jdimino@janestreet.com designates 38.105.200.112 as permitted sender) identity=mailfrom; client-ip=38.105.200.112; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="jdimino@janestreet.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@mxout1.mail.janestreet.com) identity=helo; client-ip=38.105.200.112; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="jdimino@janestreet.com"; x-sender="postmaster@mxout1.mail.janestreet.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0CBAAB76wtVnHDIaSZcg1haBIMKwzyFeQKBLgdMAQEBAQEBEQEBAQEBBhYJQoQUAQEBAwESER0BATcBBAsLCw0CAiYCAiEBEgEFARwGEyKHeQMJCAOlLz4xikFwhGIBBZAmDYUxAQEBAQEBBAEBAQEBAQEBFAYKgReJdoJEgi0HgmiBRZQ/hDOBTI4ChFwSI4EVhBBvgkMBAQE X-IPAS-Result: A0CBAAB76wtVnHDIaSZcg1haBIMKwzyFeQKBLgdMAQEBAQEBEQEBAQEBBhYJQoQUAQEBAwESER0BATcBBAsLCw0CAiYCAiEBEgEFARwGEyKHeQMJCAOlLz4xikFwhGIBBZAmDYUxAQEBAQEBBAEBAQEBAQEBFAYKgReJdoJEgi0HgmiBRZQ/hDOBTI4ChFwSI4EVhBBvgkMBAQE X-IronPort-AV: E=Sophos;i="5.11,435,1422918000"; d="scan'208";a="104099194" Received: from mxout1.mail.janestreet.com ([38.105.200.112]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 20 Mar 2015 10:43:27 +0100 Received: from tot-qpr-mailcore2.delacy.com ([172.27.56.106] helo=tot-qpr-mailcore2) by mxout1.mail.janestreet.com with smtp (Exim 4.82) (envelope-from ) id 1YYtSg-0007So-3v for caml-list@inria.fr; Fri, 20 Mar 2015 05:43:26 -0400 X-JS-Flow: external Received: by tot-qpr-mailcore2 with JS-mailcore (0.1) (envelope-from ) id BVC-u--AAACe9-DY; 2015-03-20 05:43:26.109226-04:00 Received: from mail-ie0-f178.google.com ([209.85.223.178]) by mxgoog1.mail.janestreet.com with esmtps (UNKNOWN:AES128-GCM-SHA256:128) (Exim 4.72) (envelope-from ) id 1YYtSf-0003ml-VQ for caml-list@inria.fr; Fri, 20 Mar 2015 05:43:26 -0400 Received: by iecsl2 with SMTP id sl2so87732527iec.1 for ; Fri, 20 Mar 2015 02:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=hSp4IYuMIAI/+/6GyBKG2hwV+lIr7qnq6UL1ROa+wH0=; b=k1TYS0C+L7r4FJyRvhCwiNqLl269jKcuoR1jDG3DGPv5j2u1Lvqryz3ECmQ9PW0Krb dPF9m2SVzxYvBrGPjj6bce/p7RpBYABdqbXt4GqaXuLhHem3MD8fwOaDQNBdpyijNM7z NKXRepV/EibQ7xu0oqMuzIH6TryCDdJNaKQe8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=hSp4IYuMIAI/+/6GyBKG2hwV+lIr7qnq6UL1ROa+wH0=; b=L1FmPoT50jRy2U0hAt5NbQ6cBawU/rtj/6TZsHw3+HcFwSOaHGI4gsd2GoF76fBfyE kF8+NuwOm2HxbdJcCxxpTrH/oWbPaMz+VLBHHEkMhmqvvdH8xapzBH/QUvaGOOJIKS4u 0e+iSaWaLnoxt6jEF7qKthfemggpm/ucbL/OMDqX3Iob4nf5KSU9wi+4vS5ayx0gPAZu aviZP1BSvSmuXaXqEpxkBpGlavq4zEaK/YauEC2km17dfI6fsvXtQrDG+c1ye/c47M1q M9tdfXu41iE/hLSi9xdClSWoP7c5QblW5SnLGESSQIH8uPDmxxda4na70EjATrn2HZiI 6DAg== X-Gm-Message-State: ALoCoQnbWhmZU7/TXlk6HyrR2A1lHgAkYsin5R5oZcTROJxk+NOJepcapc/wsH/PhLwZwpMYTiNXlQlXWX8V7j9/3tcvW+mPu98QWG+eXuHtUrUv68wpXIM5WuEA+RPoYqHdKYnAVEIA X-Received: by 10.50.124.73 with SMTP id mg9mr702154igb.38.1426844605644; Fri, 20 Mar 2015 02:43:25 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.50.124.73 with SMTP id mg9mr702138igb.38.1426844605554; Fri, 20 Mar 2015 02:43:25 -0700 (PDT) Received: by 10.50.252.20 with HTTP; Fri, 20 Mar 2015 02:43:25 -0700 (PDT) In-Reply-To: References: Date: Fri, 20 Mar 2015 09:43:25 +0000 Message-ID: From:Jeremie Dimino To:Kenneth Adam Miller Cc:caml users , Anton Lavrik Content-Type: text/plain; charset=UTF-8 X-JS-Processed-by: mailcore Subject: Re: [Caml-list] Utop Difficulties with C callbacks On Thu, Mar 19, 2015 at 9:36 PM, Kenneth Adam Miller wrote: > ocamlfind ocamlc -ccopt "-fPIC -DPIC -shared -DNATIVE_CODE -o > piqi_c_impl.so " piqi_c_impl.c I don't think this command will do what you expect. You can use ocamlmklib instead: ocamlfind ocamlmklib -o piqilib_stubs piqi_c_impl.o This will create dllpiqilib_stubs.so and libpiqilib_stubs.a. You can use -verbose to see what it is running. You need to install the dllpiqilib_stubs.so file with ocamlfind as well, it will put it where ocamlrun can find it. > ocamlfind ocamlc -a -custom -dllib piqilib_stubs -o > piqilib.cma piqi_version.cmo piqi_piqirun.cmo piqi_piqi.cmo piqloc.cmo > piqi_util.cmo piq_ast.cmo piqi_impl_piqi.cmo piqi_boot.cmo piqi_c.cmo > piqi_config.cmo piqi_iolist.cmo piqi_name.cmo piqi_common.cmo piqi_file.cmo > piqi_command.cmo piqi_protobuf.cmo piqi_db.cmo piq_lexer.cmo piq_parser.cmo > piq_gen.cmo piqi_objstore.cmo piqobj.cmo piqobj_common.cmo > piqobj_to_protobuf.cmo piqobj_of_protobuf.cmo piqobj_to_piq.cmo > piqobj_of_piq.cmo piq.cmo piqi.cmo piqi_pp.cmo piqi_json_parser.cmo > piqi_json_gen.cmo piqi_json.cmo piqi_base64.cmo piqobj_to_json.cmo > piqobj_of_json.cmo piqi_xml.cmo piqobj_to_xml.cmo piqobj_of_xml.cmo > piqi_convert.cmo piqi_compile.cmo piqi_light.cmo piqi_getopt.cmo > cp piqi_c_impl.so piqilib_stubs.so > utop -require mylib AFAIK the only effect of -custom on a library is to require -custom linking when linking an executable, so you probably don't want it here. You should also keep the -cclib for when you do want to link a custom executable. In the end it should look like this: ocamlfind ocamlc -a -cclib -lpiqilib_stubs -dllib -lpiqilib_stubs -o piqilib.cma -- Jeremie