Re: Anything changed on rawhide builders recently? Can't build ladvd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 7, 2012 at 10:05 AM, Tomasz Torcz <tomek@xxxxxxxxxxxxxx> wrote:
> Hi,
>
>   Today I tried to build ladvd 1.0.4 package for rawhide, but it failed with
> some strange message http://koji.fedoraproject.org/koji/getfile?taskID=4662562&name=build.log&offset=-4000 ,
> which is pasted below.  So I rolled back to 1.0.2 and it failed to build, too.
> It was building fine previously.
>   Then I tried to build for F18, it was built succesfuly (although it packaging ultimately
> failed because of unrelated reason).
>
>   So the question is: what's broken with rawhide builders?

The kernel-headers package is newer and includes the UAPI split done by
David Howells.

>   The message on rawhide builder is:
> #v+
> libtool: compile:  gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Wall -Werror -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fno-delete-null-pointer-checks -fstack-protector -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c child.c  -fPIC -DPIC -o .libs/child.o
> In file included from cli.c:20:0:
> common.h:152:8: error: redefinition of 'struct sysinfo'
> In file included from /usr/include/linux/kernel.h:4:0,
>                  from /usr/include/linux/sysctl.h:25,
>                  from /usr/include/sys/sysctl.h:43,
>                  from common.h:50,
>                  from cli.c:20:
> /usr/include/linux/sysinfo.h:7:8: note: originally defined here
> make[2]: *** [cli.lo] Error 1

So it seems ladvd has carried a redefinition of struct sysinfo basically
forever.  They could have very well named it ladvd_sysinfo or something
and that might work as a temporary patch, but I think there is a bigger
issue going on here.

It seems that /usr/include/sys/sysctl.h has been doing a bit of ifdefery
to prevent inclusion of certain header files from the kernel.  That
header file is provided by glibc.  In it, you can see things like:

	#include <stddef.h>
	/* Prevent more kernel headers than necessary to be included.  */
	#ifndef _LINUX_KERNEL_H
	# define _LINUX_KERNEL_H        1
	# define __undef_LINUX_KERNEL_H
	#endif

	...

	#include <linux/sysctl.h>

	#ifdef __undef_LINUX_KERNEL_H
	# undef _LINUX_KERNEL_H
	# undef __undef_LINUX_KERNEL_H
	#endif

That works with kernel-headers from <= the 3.6 kernel, but the UAPI
rework has redefined the header guards for a number of files, including
<linux/kernel.h>.  That file is now specifically guarded by:

	#ifndef _UAPI_LINUX_KERNEL_H
	#define _UAPI_LINUX_KERNEL_H

which means the tests glibc is doing above are failing.

David, any thoughts on what the general solution to that would be?

josh
-- 
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux