#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