Re: [vserver] 4.1.35 vserver patched kernel compile fails

From: Tor Rune Skoglund <trs_at_swi.no>
Date: Wed 16 Nov 2016 - 14:00:16 GMT
Message-ID: <ca5c895a-afdd-6741-585a-8eba92ef645e@swi.no>

Den 12. nov. 2016 18:34, skrev Herbert Poetzl:
> On Tue, Nov 08, 2016 at 07:52:58PM +0100, Herbert Poetzl wrote:
>> On Tue, Nov 08, 2016 at 07:13:12PM +0100, Tor Rune Skoglund wrote:
>>> Hi list and Herbert,
>
>>> In the process of upgrading our systems to new kernels with the new and
>>> shiny 4.1.35 patch, I run into the following gcc error when compiling
>>> the patched kernel.
>
>>> I *presume* that this is since implicit function declaration in the
>>> vserver code raise an error due to the
>>> -Werror=implicit-function-declaration parameter for gcc. However, this
>>> is with default gcc settings on Gentoo, so in principle (and to increase
>>> "user-friendliness" for those that want to use vserver), maybe it should
>>> just work out of the box?
>
>>> Anyway, if someone care to comment before I start diggin further, I
>>> would be glad. :)
>
>>> gcc is version 4.9.3 (Gentoo 4.9.3 p1.5, pie-0.6.4), on amd64.
>
>>> make output:
>>> [...]
>>> CC kernel/vserver/limit.o
>>> kernel/vserver/limit.c: In function ‘vx_vsi_meminfo’:
>>> kernel/vserver/limit.c:264:2: error: implicit declaration of function
>>> ‘mem_cgroup_from_task’ [-Werror=implicit-function-declaration]
>>> mcg = mem_cgroup_from_task(current);
>>> ^
>>> kernel/vserver/limit.c:264:6: warning: assignment makes pointer from
>>> integer without a cast
>>> mcg = mem_cgroup_from_task(current);
>>> ^
>>> kernel/vserver/limit.c:269:2: error: implicit declaration of function
>>> ‘mem_cgroup_mem_limit_pages’ [-Werror=implicit-function-declaration]
>>> res_limit = mem_cgroup_mem_limit_pages(mcg);
>>> ^
>>> kernel/vserver/limit.c:270:2: error: implicit declaration of function
>>> ‘mem_cgroup_mem_usage_pages’ [-Werror=implicit-function-declaration]
>>> res_usage = mem_cgroup_mem_usage_pages(mcg);
>>> ^
>>> cc1: some warnings being treated as errors
>>> scripts/Makefile.build:258: recipe for target 'kernel/vserver/limit.o'
>>> failed
>>> make[2]: *** [kernel/vserver/limit.o] Error 1
>>> scripts/Makefile.build:403: recipe for target 'kernel/vserver' failed
>>> make[1]: *** [kernel/vserver] Error 2
>>> Makefile:948: recipe for target 'kernel' failed
>>> make: *** [kernel] Error 2
>
>> That is actually a bug (probably missing include) in the patch
>> but I wonder why I didn't catch that one on my test compiles.
>
>> Will check shortly.
>
> As promised, here is a patch you want to apply if you are
> building your kernel with memory cgroups disabled:
>
> http://vserver.13thfloor.at/Experimental/delta-memcg-fix09.diff
>
> While I was going through the code, I also found the following
> missing initializer which I fixed (only relevant if memory
> cgroups are enabled):
>
> http://vserver.13thfloor.at/Experimental/delta-memcg-fix10.diff
>
> Please let me know if that fixes it for you.

I can confirm that with these patches, the kernel compiles fine! (Both
with and w/o MEMCG enabled.)

I have not tested them yet, though. As the lack on MEMCG on one system
was due to short-sigh from me, I will neither test that one. The MEMCG
one will go in prototype testing asap.

Thanks a lot! :)

BR, Tor Rune Skoglund
Received on Thu Nov 17 22:19:14 2016

[Next/Previous Months] [Main vserver Project Homepage] [Howto Subscribe/Unsubscribe] [Paul Sladen's vserver stuff]
Generated on Thu 17 Nov 2016 - 22:19:14 GMT by hypermail 2.1.8