Bug #1661
Microsoft: cannot compile with signal handling
Description
Bruns reported by email a problem compiling on Microsoft:
my failed attempt to compile CoCoALib under MSYS MinGW64 for a Windows binary of Normaliz. I go´t stuck at the signal handling. Can you suggest something?
Can we fix this?
Related issues
History
#1 Updated by John Abbott 2 months ago
- Related to Design #1630: Signal handler not portable? added
#2 Updated by John Abbott 2 months ago
I have added Nico Mexis as a watcher. He has successfully built CoCoA-5 for Microsoft, so may have some useful insights!
#3 Updated by Nico Mexis 2 months ago
- Status changed from New to In Progress
- % Done changed from 0 to 50
Ah, thanks for making me aware of this issue. Actually, recently I put my instructions online for exactly that.
I had also tried to build CoCoA both through MSYS 2 and MinGW, but they both failed.
It works flawlessly with CygWin, though.
What's needed to fix other installations? Don't know exactly. Most likely it is because of the near-perfect POSIX layer of CygWin that it works so great.
Anyway, TL;DR, here is my gist: https://gist.github.com/ThexXTURBOXx/b75cd2e4721904465718b6c6298333e8
#4 Updated by John Abbott 2 months ago
Winfried sent me the following message by email:
I have compiled CoCoALib for MSYS MinGW64 about two years ago. It is used in the MS-Windows version of Normaliz I also succeeded in making the other auxiliary packages available for MSYS MinGW 64. It was quite a struggle, so I don't touch what I have. If wanted I can provide more information.
I have asked him to send me the details.
#5 Updated by John Abbott about 1 month ago
- % Done changed from 50 to 60
I have been working through Nico's changes. Still undecided about several of them :-/
The 32-bit vs 64-bit problems could perhaps be circumvented by using long long int
or unsigned long long int
in some places; but I fear that may become "cancerous". Nico put in some #ifdef
macros to hide code which does not compile on 32-bit platforms. Maybe config.H
needs to define such a macro: perhaps CoCoA_32bit
and/or CoCoA_64bit
Time for a break!
#6 Updated by Nico Mexis about 1 month ago
A macro like CoCoA_32bit
and/or CoCoA_64bit
sounds good.
I also thought about converting some of the problematic values to [unsigned] long long int
, but I was unsure of possible side effects. I also think I encountered some because the values were not convertible anymore using the functions from convert.H
... But maybe I misremember that - I have tried too many things with the UCRT compiler...
#7 Updated by Anna Maria Bigatti about 1 month ago
Add the value of this flag to "VersionInfo()" in CoCoA-5 (work for me)
#8 Updated by Anna Maria Bigatti about 1 month ago
Anna Maria Bigatti wrote:
Add the value of this flag to "VersionInfo()" in CoCoA-5 (work for me)
and in BuildInfo for CoCoALib
#9 Updated by John Abbott about 1 month ago
- Status changed from In Progress to Resolved
- Assignee set to Nico Mexis
- % Done changed from 60 to 80
#10 Updated by Anna Maria Bigatti about 1 month ago
- Related to Design #1801: BuildInfo added
#11 Updated by John Abbott about 1 month ago
- Related to Design #1804: Use long long (at least sometimes)? added
#12 Updated by John Abbott 30 days ago
- Status changed from Resolved to Closed
- % Done changed from 80 to 100
I think Nico said it is OK now. Closing!
#13 Updated by Anna Maria Bigatti 17 days ago
- Description updated (diff)
#14 Updated by Anna Maria Bigatti 17 days ago
- Description updated (diff)