-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Convert buildsystem to use Makefile.gappkg instead of automake #902
Conversation
@fingolfin is there an analogue of |
Seems like at the moment this isn't picking up required information from Also previously, |
Yes, you can do |
4b45b15
to
7429015
Compare
This seems to be working now, though of course the CI tests fail until the recent fixes on the Also, I did not try all that much beyond a standard build on macOS and Linux. No OpenBSD, no attempt to use a preinstalled libsemigroups, etc. |
Thanks @fingolfin any chance you could rebase this onto |
Rebased (I don't know why you can't push, "Allow edits and access to secrets by maintainers" is enabled... huh) |
Hmm, the cygwin test still fails. Moreover, I'd feel more comfortable if there was a CI test that verified building against an installed version of libsemigroups. I can try to whip one up (but not tonight :-)). |
Thanks @fingolfin, I'll try to add a job that tests with an external libsemigroups this morning |
@fingolfin there are now checks for external libsemigroups in the CI in the |
Seems The cygwin error is a bit weird:
But it definitely built that file... I wonder if the error is just misleading and the real problem is that it can't load libsemigroups. I'll investigate later. |
c63de8f
to
205f2a1
Compare
I tried to debug this using https://github.com/mxschmitt/action-tmate but no luck: in that shell, I can access the files from the current step, but I was not able to access (or even find) GAP itself, so I could not perform any tests. |
The problem was that the libsemigroups DLL must be copied to the directory in which gap.exe resides. The old build system did just that. I added code to replicate this in the new system, and it worked in a test commit! I've now tweaked this a bit and squashed it all down in one commit. If it still works, this is good to go from my perspective. |
Makefile.in
Outdated
# resides in. The following achieves that assuming that the GAP | ||
# being used was self-compiled by the user. If the GAP build system | ||
# changes to stop using GNU libtool, this will have to be adjusted. | ||
test -f bin/bin/cygsemigroups*.dll && cp bin/bin/cygsemigroups*.dll $(GAPPATH)/.libs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a bit of a hack, but the old code didn't do it any better, I think
cp .libs/semigroups.dll $(GAPINSTALLLIB) | ||
if WITH_INCLUDED_LIBSEMIGROUPS | ||
# Cygwin will only look in this directory for dlls | ||
cp libsemigroups/.libs/cygsemigroups-*.dll $(GAPROOT)/.libs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the old code
It's really weird: this now builds fine on Cygwin, as far as I can tell, and indeed a bunch of CI test pass just fine on Windows... Until this error, which seems to hint at a failure to fork:
|
This might actually suggest a problem with gac on cygwin :-(. I am now comparing the linker flags used by the old automake based build system with those used by cygwin, and I see quite some difference. Automake passes these additional flags:
I'll try and see if adding some combination of these resolves the issues (and if so, we can use them here, but also upstream them to GAP resp. gac). |
I'm not sure the failures in the Cygwin ci job are related to this pr, there have been similar failures before, and I added some @if statements to the test file to just not run those tests on windows. |
Adding |
This should remove the problems on OpenBSD, and speed up build times.
continued feelings of regret... |
This seems to be working now. |
I'm going to take a closer look tomorrow and then merge, thanks @fingolfin |
Thanks very much @fingolfin, I very much appreciate all the effort that went into this PR. |
Not done yet, but I wanted to show what I have here, in case someone wants to help, or in case I get sidetracked and forget about it, so it won't be lost forever