[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: slapd fails to start up in 2.3.8 and 2.3.9

On Tuesday 11 October 2005 18:41, Howard Chu wrote:
> Buchan Milne wrote:
> > On Monday, 10 October 2005 19:34, Howard Chu wrote:
> >> errno 38 is ENOSYS, it seems the epoll_ctl system call is not
> >> implemented on your target kernel. You say that running "make test"
> >> works though?
> >
> > On the build host, which has a 2.6 kernel. The kernel on the target host
> > is 2.4 (which doesn't have epoll).
> >
> >> That's pretty strange. You'll probably have to set
> >> ac_cv_header_sys_epoll_h = no and rerun configure. The configure script
> >> checks that epoll_create() works, strange that it would succeed but
> >> epoll_ctl() fails.
> >
> > I've changed the package to set ac_cv_header_sys_epoll_h = no when
> > building for a target system with a 2.4 kernel, which has fixed that for
> > me.
> >
> > However, build-time checks on kernel features may not be the most robust
> > solution.
> Ahem. The very nature of autoconf is to perform build-time checks on the
> build machine, for library and kernel features. E.g., all the checks we
> do to see if pthreads, regex, etc. works...

Hmm, aren't most of them checks for library features (as opposed to kernel 

> The fact is that you actually have what should be treated as a
> cross-compilation setup.

The only difference is the kernel. I would prefer not to require:
-additional build hosts
-virtualisation tools (either expensive, or requiring support in the target 
kernel, or slow)

Additionally, a number of current linux distributions still support 2.4 
kernels (but default to 2.6 kernels), so by default will probably end up 
shipping openldap packages that don't run on the "supported" 2.4 kernel.

For example, the Mandriva build hosts all run 2.6 kernels, but all currently 
supported releases have both 2.6 and 2.4 kernels available.

> When cross-compiling, configure defaults most 
> of these feature tests to "no" anyway, but your problem is how to get
> configure to recognize that it should be in a cross-compile mode, since
> the host *architecture* is the same. In other words, you're trying to do
> something that autoconf isn't designed to handle automatically.

I'm just wondering if handling kernel features should be done via autoconf (or 
if run-time detection might be better, if it is possible).


Buchan Milne
ISP Systems Specialist

Attachment: pgpkkwxtCruvs.pgp
Description: PGP signature