msys2 / MINGW-packages

Package scripts for MinGW-w64 targets to build under MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
2.25k stars 1.21k forks source link

GCC libitm and libvtv status; documentation needed for reason installation was disabled. #17774

Open stahta01 opened 1 year ago

stahta01 commented 1 year ago

GCC libitm and libvtv status

libitm: GNU Transactional Memory Library

libvtv: vtable verification library

The comment below is from gcc-libs package section libitm and libvtv are disbled until fixed

I am building old GCC versions and these libs have been disable for a very long time; but, I see no reported reason for why they are disabled. Is it an run-time issue? If yes, has anyone tried them lately to see if the issue has been fixed?

I have no idea if these libraries are worth installing; but, I do think their status needs documented.

Tim S.

revelator commented 1 year ago

hmm if i remember correctly libitm does not work on windows. libvtv can be built but its massively hard to do on windows (the windows gcc packages i know of including libvtv are crossbuilt from linux to windows) something to do with weak symbols if i recall.

stahta01 commented 1 year ago

hmm if i remember correctly libitm does not work on windows. libvtv can be built but its massively hard to do on windows (the windows gcc packages i know of including libvtv are crossbuilt from linux to windows) something to do with weak symbols if i recall.

I think this is wrong; but, will check the current GCC package; the old GCC packages were building but not installing the two libs.

Tim S.

revelator commented 1 year ago

hey tim, as far as i remember that was the reason given with the different gcc release for mingw-w64 but i cant say if it is a wrong assumption ?. i tried to build a libvtv enabled gcc a few times some years ago without any luck but maybe the code is mature enough to try again.

revelator commented 1 year ago

libitm does indeed build but was disabled in our builds due to the same opinion that it did not work on windows (cant remember the exact problem reported but might be searchable on github).

revelator commented 1 year ago

https://github.com/msys2/MINGW-packages/issues/1580

this seems to be the one. weak references indeed (hey my memory must be better than i thought xD) wrong library though it was not libvtv causing trouble with builds but libitm. libvtv might actually work now since the last time i tried building it on windows was with gcc-6.3

revelator commented 1 year ago

https://github.com/msys2/MINGW-packages/issues/1374

this was the one where libvtv was disabled it seems, also seemed to have some problems with weak references though atleast one user managed to build the dll it had no exports (maybe more luck nowadays).

stahta01 commented 1 year ago

revelator: thanks for the replies; I just built the current GCC package, and libvtv is still being built; but, it is not likely being installed. libitm is not being built. So, from the links libvtv had a run-time issue, and, the issue might be related to missing DLL exports.

Tim S.

revelator commented 1 year ago

np m8 :). so no progress i reckon ?, libitm needed a small patch to enable it for windows builds but i guess even so it is still broken. libvtv would have been nice though.

stahta01 commented 1 year ago

My current guess is the makefiles is missing the make install part; but, it is just an guess.

Tim S.

revelator commented 1 year ago

well we could definatly have a look at it :)

revelator commented 1 year ago

so i been trying to get libvtv going on msys2/mingw and it is still not possible it seems, so i tried cross building it on ubuntu and that does indeed work. problem seems to be with binutils not handling weak symbols correctly on windows. the windows build does create a dll but it is empty and install fails, the ubuntu cross build creates a working dll though.

stahta01 commented 1 year ago

Thank you for the information.

revelator commented 1 year ago

np tbh our discussion made me a little curious to see if it was possible now :)

revelator commented 1 year ago

guess we need some workaround for weak symbol references in the libvtv source, i think qt is using something we could use for doing just that if i remember correctly.