|
From: Felipe S. <fsa...@gm...> - 2014-02-04 13:00:15
|
On Tue, Feb 4, 2014 at 4:42 AM, Stephen Sinclair <rad...@gm...> wrote: > Hi Felipe, > > Hm, that is unexpected. Since it is already #ifdef'd out, why is it > causing a problem? I'm not sure I understand the mechanism behind the > build network. Is it being built on an old kernel, but against > headers for a newer kernel? That's the only reason I could think this > would cause a problem.. Indeed, that is the problem, as already mentioned by IOhannes. The buildd network consists of machines running debian stable (that is, a 3.2 kernel) in which a chroot with debian unstable is created. The package is built in the chroot, so that means we have new libc and kernel headers, but old runtime kernel. As mentioned in the original mail, the problem is during the testsuite run, not at build time. > > That said, perhaps it would actually be better to detect the existence > of SO_REUSEPORT at configure time instead of compile time, not sure if > that would fix the problem or not. It wouldn't really fix it, because the fundamental problem is that kernel features can only be detected at runtime, because there is no guarantee that the running kernel is the same as the one with which the package was built. It would make it easier to disable it, though. Maybe on lo_server_new a test could be made to check if SO_REUSEPORT is supported by the kernel (AFAICT SO_REUSEPORT is only used on the server?). I'm a bit confused as to how lo_throw works, but that seems to be the proximate cause of the problem. Alternative solution: perhaps liblo can just ignore the setsockopts(SO_REUSEPORT) errors? > Yes, technically you could just take out those sections of the code, > but I was hoping you wouldn't need to repack the archive. I don't > understand why SO_REUSEPORT is defined if it is not supported. Ok, I'm commenting out the code section to prevent build failures for now. If SO_REUSEPORT can be detected at runtime or the errors can be safely ignored, I can replace the patch with one that does the right thing. -- Saludos, Felipe Sateler |