-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
<sys/queue.h> portability #253
Comments
The dev branch has its own queue file, that might remedy the situation |
The dev branch queue.h works if I remove the #include <sys/cdefs.h>, which is not present on solaris either. |
Could you have a go with this on master branch? |
The queue.h seems to work. There are other issues with solaris, in particular at least the following: The bash 3.2 requirement is a problem for us, but my workarounds still work if applied. If you want a grep with -q on solaris, you need to use /usr/xpg4/bin/grep. There are new problems too: strndup() is not available on Solaris. In file included from snappy.c:56:0: include <endian.h>
|
Thanks!
|
Solaris 10 is the version I have to support. |
Ive made the necessary modifications for Solaris 10. |
All good except for the bash part (which you said you weren't changing, so OK :)) This is the change that I made to work around the bash version issue: diff -u -r old/configure new/configure BASHVER=$(expr ${BASH_VERSINFO[0]} * 1000 + ${BASH_VERSINFO[1]}) -if [ "$BASHVER" -lt 3002 ]; then
-fiMKL_CONFIGURE_ARGS="$0 $*" Load base modulediff -u -r old/mklove/modules/configure.base new/mklove/modules/configure.base
|
@rthalley Mind creating a pull-request for that? |
I'm not sure, which is why I didn't submit a pull request. I don't understand all the things that the version check is meant to be protecting against. I just removed the check and fixed what broke, and I got what looks like a good build out of it, though I haven't tested it much yet. I'm OK with leaving the check in and I can patch it out locally. |
Sorry but what's the status on this? Will current master build out of the box on your machines @rthalley, or do you still need a local patch? |
Just tried a build of the master branch. It does not build, for various reasons. First I have to fix the bash-too-old issue, but even if I do that I still have problems: The linker complains about rd_kafka_message_errstr not being defined. Since this is supposed to be inline, I suspect there's some issue with __inline :) I don't have a patch for this because I hadn't experienced the problem until today (we're using an older snapshot of the master branch). kafkatest_verifiable_client.cpp:635:35: error: 'rindex' was not declared in this scope You just need to #include <strings.h> here |
Apart from the bash issue (which you may PR if you like!) this should be fixed now. |
It now builds without any patches to .c or .h files. I still have a single "build" patch that changes things in mklove, namely
I haven't submitted that as a patch as it would break other builds the way I do it currently, and I haven't had time to dig into mklove to figure out the right way. |
Thanks! |
While working on Solaris porting, we noticed that librdkafka only builds on Solaris if the SUNWhea package (kernel headers) is installed, because librdkafka is using sys/queue.h. The header is a BSD-ism, and may cause other portability problems in the future, so I thought I'd let you know.
The text was updated successfully, but these errors were encountered: