<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Thank you Mr. Icaza.<br>
    <br>
    Is there more information on what uses the MapAttribute than what's
    in Syscall.cs? Even though it's internal and I won't use it, I'd
    like to understand how you solve the problem of ABI compatibility.<br>
    <br>
    I'd like to set up a solution where copying the files from one
    architecture to another simply works (assuming all dependencies from
    the runtime are present), and the runtime/mylib chooses the most
    appropriate native library (based on OSVersion and Syscall.uname)
    for all supported platforms. Something like:<br>
    * MyLib.dll (assembly)<br>
    * MyNativeLib.Linux.x86.so<br>
    * MyNativeLib.Linux.x64.so<br>
    * MyNativeLib.FreeBSD.x86.so<br>
    * MyNativeLib.Darwin.x86.so<br>
    * MyNativeLib.Win.x86.dll (windows native)<br>
    * MyNativeLib.Win.x64.dll (windows native)<br>
    * MyNativeLib.[dll|so] (backup for local builds)<br>
    <br>
    Your solution (Mono.Unix.Native) looks different, more compact, but
    I'm not sure if/how it supports side-by-side. My solution requires a
    lot of work, duplicate code with small changes in defining the
    structs/DllImports with different offsets and library names.<br>
    <br>
    I've yet to look into the Dll mapping mechanism of Mono if that's
    also suitable.<br>
    <br>
    Thank you very much and for giving me the opportunity to use Mono.<br>
    <br>
    Regards,<br>
    Jason.<br>
    <br>
    <div class="moz-cite-prefix">On 2015-12-31 02:04, Miguel de Icaza
      wrote:<br>
    </div>
    <blockquote
cite="mid:CANqeOFqoNOuHrgWh+Om_OYGRnxhCH7hPZPv-yEE0+7zKRTO-Lw@mail.gmail.com"
      type="cite">
      <div dir="ltr">For something like libc, you can use an approach
        similar to what Mono.Posix does, where an intermediate C glue
        file acts as a bridge between the API differences.
        <div><br>
        </div>
        <div>See the P/Invokes for the Mono.Posix assembly, and its
          supporting glue code in mono/support/</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, Dec 30, 2015 at 5:58 AM, Jason
          Curl <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:jcurlnews@arcor.de" target="_blank">jcurlnews@arcor.de</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
            <br>
            I'm investigating the best way on how to support
            multiplatform software especially when using P/Invokes, but
            have not found any reasonable advice on the Wiki.<br>
            <br>
            Can someone point to me on how to handle different
            architectures, especially when the underlying libc might use
            different structures or API signatures?<br>
            <br>
            Thanks,<br>
            Jason.<br>
            _______________________________________________<br>
            Mono-devel-list mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Mono-devel-list@lists.ximian.com"
              target="_blank">Mono-devel-list@lists.ximian.com</a><br>
            <a moz-do-not-send="true"
              href="http://lists.ximian.com/mailman/listinfo/mono-devel-list"
              rel="noreferrer" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>