-
Notifications
You must be signed in to change notification settings - Fork 145
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
fix bare configure build #4412
fix bare configure build #4412
Conversation
e7e5a11
to
5555e65
Compare
@elliefm My normal build still works fine. I tried a bare build, but mbpath.c failed to compile due to an unused function complaint. I fixed this on master. The next problem is that master.c uses pow() and therefore needs to link with libm. We should probably just add this to LIBS unconditionally and be done with it. The RelocateById failures can be fixed by removing the The Sieve.date_iana_tzid failure (when rebased on master) can probably be fixed by adding |
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 looks good after the pow() compile issue is fixed.
For my future reference: the mbpath fix Ken mentioned was 9034a59 -- I'll need to grab this when I backport to 3.8 |
It already links with libm if required, thanks to 4830785, using But The HTTPD section handles this differently, with a comment describing a similar problem. So I guess your minimal build still has CFLAGS=-Werror, and that's why it fails to detect LIBM, and fails to build master. Whereas my minimal build doesn't have CFLAGS set, because that's usually set by my wrapper script, which I'm not running. But that means in both of our usual builds, we don't get LIBM, and yet master builds fine in that case. That's weird. I have an idea for making this work (save CFLAGS, set |
5555e65
to
ed888fd
Compare
@ksmurchison: I've rebased on master, added your suggested fixes for the RelocateById and Sieve test failures, and tidied up our libm handling in the way I proposed in my previous comment. Seems to work properly for me now, in both full builds and minimal, and with and without -Werror. Can you try it out again please, and confirm whether it's fixed on your system now too? Especially the pow() bit. Thanks |
@elliefm The LIBM hack didn't work for me with -Werror in either config. If I remove -Werror, its good in both. |
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.
LIBM still not linked in for me with -Werror.
@elliefm In my script, I set CPPFLAGS rather than CFLAGS. If I do the same save/set/restore magic with CPPFLAGS, everything works fine. I suggest we do the magic with both variables.
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.
I approve once we add save/set/restore magic for CPPFLAGS around LT_LIB_M
Ahh yeah, right! |
ed888fd
to
7e0fc0a
Compare
This re-enables Cyrus builds configured with just
./configure
, mostly by detangling some header mess and adding some judicious#ifdef
s where necessary.Also annotates a bunch of Cassandane tests with their dependencies so that they won't try to run if the feature they need wasn't compiled in. I did this in the simplest way possible because my goal right now is something backportable to 3.8, but I don't really like it. (For example, lots of tests needed to be individually annotated ":needs_component_httpd", even though that test doesn't need it, just because the suite itself starts the httpd service. In the future it would be nice to handle this better, but that's a non-trivial refactor.)
Fixes #4409
Reviewers: please build and test this with both:
./configure --enable-silent-rules --prefix=/my/cass/prefix
), to make sure the fixes are adequate with your compiler/environment and not just mineIf you run Cassandane on the minimal build, you'll (probably) find a bunch of Foo.relocate_* and RelocateByID.* tests have errors. I don't know why, but I've put details in #4409. Since this PR is a prerequisite for even building like that at all, it seems sensible to get the build problem fixed first, and then investigate the relocate failures.