[MinGW-Notify] [mingw] #41070: Please include libgccjit with MinGW GCC distribution

Back to archive index
MinGW Notification List mingw****@lists*****
Sun Jan 10 21:40:52 JST 2021


#41070: Please include libgccjit with MinGW GCC distribution

  Open Date: 2020-12-23 17:28
Last Update: 2021-01-10 12:40

URL for this Ticket:
    https://osdn.net//projects/mingw/ticket/41070
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41070

---------------------------------------------------------------------

Last Changes/Comment on this Ticket:
2021-01-10 12:40 Updated by: keith

Comment:

Reply To eliz

    Reply To keith

        Our DLL version numbering scheme, like that also used by Cygwin, is
        based on the libtool interface version numbering conventions; like
        Cygwin, we compute the number, included within the DLL file name, as
        the libtool current version number minus the libtool age. In this case,
        current would appear to be 10, but, as David has indicated, ABI 10 is
        backwardly compatible with ABI 0, and every version between. Thus, age
        would also be 10, and the appropriate current - age result is, indeed,
        0.

    I'm aware of the numbering scheme, I just wasn't sure that libtool was
    involved in the build and applied the scheme. From your description I
    deduced, perhaps incorrectly, that building libgccjit for MinGW was not yet
    supported, and that led me to the conclusion that perhaps the 0 part was
    some kind of default, not a number correctly calculated from the ABI data.

In the case of libgccjit, to get infrastructure appropriate to MinGW, I did
have to patch the build system. Libtool isn't used, (and wasn't for the
original ELF configuration either. However, that does not prevent us from
adopting the libtool versioning convention; I simply deduced, from the original
soname attributes, that the appropriate current - age value would be zero, and
assigned it manually.

    It is also a certain surprise for me to read that adding entry points is
    still considered to be a "compatible" ABI. I always thought that if the DLL
    name remains the same, then any program linked against any version with
    that name will be able to run with any other version of that DLL that has
    the same name. I guess there's something new to learn every day...

Depends on how you define "compatible". In the MinGW ecosystem, (as it is in
Cygwin's), the version number encoded within the DLL name, (equivalent to
current - age in libtool parlance), represents the oldest current version of
the ABI, with which a particular release of the DLL remains backwardly
compatible. However, there is absolutely no guarantee of forward compatibility;
the most recent release of any particularly named version of a given DLL should
be fully compatible with any application requiring (and possibly working with
an older release of) a similarly named DLL, but older releases of that DLL may
not support a newer application.

The original reference no longer appears to be accessible, but this Wayback
Machine archived reference may help to explain it.

    Is libgccjit indeed fully backward compatible, btw?

I don't know for sure, but on the basis of David Malcolm's statement, (and,
AIUI, he is the developer and maintainer of libgccjit), I must assume that it
is.



---------------------------------------------------------------------
Ticket Status:

      Reporter: eliz
         Owner: keith
          Type: Feature Request
        Status: Open [Owner assigned]
      Priority: 5 - Medium
     MileStone: (None)
     Component: GCC
      Severity: 5 - Medium
    Resolution: None
---------------------------------------------------------------------

Ticket details:

Please add libgccjit to the binaries included in the MinGW GCC distributions.
This is required to be able to build projects that use libgccjit for JIT
compilation of code. One example of this is "gccemacs", a branch of GNU Emacs
development (soon to land on the master branch of Emacs) that compiles Emacs
Lisp programs into native x86 code for faster runtime performance.

Thank you.



-- 
Ticket information of MinGW - Minimalist GNU for Windows project
MinGW - Minimalist GNU for Windows Project is hosted on OSDN

Project URL: https://osdn.net/projects/mingw/
OSDN: https://osdn.net

URL for this Ticket:
    https://osdn.net/projects/mingw/ticket/41070
RSS feed for this Ticket:
    https://osdn.net/ticket/ticket_rss.php?group_id=3917&tid=41070



More information about the MinGW-Notify mailing list
Back to archive index