diff mbox

ubuntu-trusty master-next currently FTBFS on arm64

Message ID CALdTtnuMV0znaCEDPBLXohC234OvPzSjwpn-hSenA6WgMWD5eQ@mail.gmail.com
State New
Headers show

Commit Message

dann frazier Aug. 6, 2014, 12:37 p.m. UTC
On Tue, Jul 29, 2014 at 6:48 PM, Joseph Salisbury
<joseph.salisbury@canonical.com> wrote:
> On 07/29/2014 05:59 PM, Dann Frazier wrote:
>> I'm seeing a build failure on ubuntu-trusty master-next on arm64 that
>> I've bisected to this change:
>>
>> commit c3208d7fd18ad731a32de34b4423291ff395ad66
>> Author: Matthew Dempsky <mdempsky@chromium.org>
>> Date:   Fri Jun 6 14:36:42 2014 -0700
>>
>>     ptrace: fix fork event messages across pid namespaces
>>
>> I'm not sure if this impacts upstream 3.13.11.z or not - is there a
>> git tree I could use to verify?
>>
>> $ make ARCH=arm64 CROSS_COMPILE= KERNELVERSION=3.13.0-34-generic
>> CONFIG_DEBUG_SECTION_MISMATCH=y KBUILD_BUILD_VERSION="59"
>> LOCALVERSION= localver-extra= CFLAGS_MODULE="-DPKG_ABI=34"
>> O=/home/dannf/ubuntu-trusty/debian/build/build-generic -j8 Image
>> modules apm-mustang.dtb foundation-v8.dtb rtsm_ve-aemv8a.dtb
>>   CHK     include/config/kernel.release
>>   GEN     /home/dannf/ubuntu-trusty/debian/build/build-generic/Makefile
>>   CHK     include/generated/uapi/linux/version.h
>>   Using /home/dannf/ubuntu-trusty as source for kernel
>>   CHK     include/generated/utsrelease.h
>> make[2]: 'arch/arm64/boot/dts/apm-mustang.dtb' is up to date.
>> make[2]: 'arch/arm64/boot/dts/foundation-v8.dtb' is up to date.
>> make[2]: 'arch/arm64/boot/dts/rtsm_ve-aemv8a.dtb' is up to date.
>>   CALL    /home/dannf/ubuntu-trusty/scripts/checksyscalls.sh
>>   CC      init/main.o
>>   CC      arch/arm64/xen/../../arm/xen/enlighten.o
>>   CC      arch/arm64/mm/dma-mapping.o
>>   CC      arch/arm64/kernel/pcibios.o
>>   CC      arch/arm64/kvm/../../../arch/arm/kvm/arm.o
>>   CC      mm/filemap.o
>>   CC      fs/read_write.o
>>   CC      kernel/fork.o
>> In file included from /home/dannf/ubuntu-trusty/include/linux/mm.h:22:0,
>>                  from /home/dannf/ubuntu-trusty/include/linux/pid_namespace.h:6,
>>                  from /home/dannf/ubuntu-trusty/include/linux/ptrace.h:8,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/compat.h:26,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/stat.h:23,
>>                  from /home/dannf/ubuntu-trusty/include/linux/stat.h:5,
>>                  from /home/dannf/ubuntu-trusty/include/linux/sysfs.h:20,
>>                  from /home/dannf/ubuntu-trusty/include/linux/kobject.h:21,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slub_def.h:9,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slab.h:358,
>>                  from /home/dannf/ubuntu-trusty/arch/arm64/mm/dma-mapping.c:22:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:1582:64: warning: ‘struct
>> kstat’ declared inside parameter list [enabled by default]
>>   int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
>>                                                                 ^
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:1582:64: warning: its
>> scope is only this definition or declaration, which is probably not
>> what you want [enabled by default]
>> In file included from /home/dannf/ubuntu-trusty/include/linux/mm.h:22:0,
>>                  from /home/dannf/ubuntu-trusty/include/linux/pid_namespace.h:6,
>>                  from /home/dannf/ubuntu-trusty/include/linux/ptrace.h:8,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/compat.h:26,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/stat.h:23,
>>                  from /home/dannf/ubuntu-trusty/include/linux/stat.h:5,
>>                  from /home/dannf/ubuntu-trusty/include/linux/sysfs.h:20,
>>                  from /home/dannf/ubuntu-trusty/include/linux/kobject.h:21,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slub_def.h:9,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slab.h:358,
>>                  from /home/dannf/ubuntu-trusty/arch/arm64/mm/dma-mapping.c:22:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h: In function ‘__mandatory_lock’:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:1942:25: error: ‘S_ISGID’
>> undeclared (first use in this function)
>>   return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID;
>>                          ^
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:1942:25: note: each
>> undeclared identifier is reported only once for each function it
>> appears in
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:1942:35: error: ‘S_IXGRP’
>> undeclared (first use in this function)
>>   return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID;
>>                                    ^
>> In file included from /home/dannf/ubuntu-trusty/include/linux/mm.h:22:0,
>>                  from /home/dannf/ubuntu-trusty/include/linux/pid_namespace.h:6,
>>                  from /home/dannf/ubuntu-trusty/include/linux/ptrace.h:8,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/compat.h:26,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/stat.h:23,
>>                  from /home/dannf/ubuntu-trusty/include/linux/stat.h:5,
>>                  from /home/dannf/ubuntu-trusty/include/linux/sysfs.h:20,
>>                  from /home/dannf/ubuntu-trusty/include/linux/kobject.h:21,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slub_def.h:9,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slab.h:358,
>>                  from /home/dannf/ubuntu-trusty/arch/arm64/mm/dma-mapping.c:22:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h: In function
>> ‘invalidate_remote_inode’:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:2264:2: error: implicit
>> declaration of function ‘S_ISREG’
>> [-Werror=implicit-function-declaration]
>>   if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
>>   ^
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:2264:2: error: implicit
>> declaration of function ‘S_ISDIR’
>> [-Werror=implicit-function-declaration]
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:2265:6: error: implicit
>> declaration of function ‘S_ISLNK’
>> [-Werror=implicit-function-declaration]
>>       S_ISLNK(inode->i_mode))
>>       ^
>> /home/dannf/ubuntu-trusty/include/linux/fs.h: In function ‘execute_ok’:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:2301:26: error: ‘S_IXUGO’
>> undeclared (first use in this function)
>>   return (inode->i_mode & S_IXUGO) || S_ISDIR(inode->i_mode);
>>                           ^
>> In file included from /home/dannf/ubuntu-trusty/include/linux/mm.h:22:0,
>>                  from /home/dannf/ubuntu-trusty/include/linux/pid_namespace.h:6,
>>                  from /home/dannf/ubuntu-trusty/include/linux/ptrace.h:8,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/compat.h:26,
>>                  from
>> /home/dannf/ubuntu-trusty/arch/arm64/include/asm/stat.h:23,
>>                  from /home/dannf/ubuntu-trusty/include/linux/stat.h:5,
>>                  from /home/dannf/ubuntu-trusty/include/linux/sysfs.h:20,
>>                  from /home/dannf/ubuntu-trusty/include/linux/kobject.h:21,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slub_def.h:9,
>>                  from /home/dannf/ubuntu-trusty/include/linux/slab.h:358,
>>                  from /home/dannf/ubuntu-trusty/arch/arm64/mm/dma-mapping.c:22:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h: At top level:
>> /home/dannf/ubuntu-trusty/include/linux/fs.h:2582:53: warning: ‘struct
>> kstat’ declared inside parameter list [enabled by default]
>>  extern void generic_fillattr(struct inode *, struct kstat *);
>>
>> [...]
>>
>> -dann
>>
> You could check the linux-3.13.y branch at:
> git://kernel.ubuntu.com/ubuntu/linux.git
>
> After a quick look, I see that commit c3208d7 is in that branch as commit:
>
> Author: Matthew Dempsky <mdempsky@chromium.org>
> Date:   Fri Jun 6 14:36:42 2014 -0700
>
>     ptrace: fix fork event messages across pid namespaces
>
>     commit 4e52365f279564cef0ddd41db5237f0471381093 upstream.

Thanks Joseph. I've verified that this is *not* an issue in the
upstream branch. This appears to be a bad interaction between this fix
and the aufs patches in Ubuntu.

Smallest fix appears to be as follows, though 8646cbac from utopic
looks like it might be a proper (though more involved) solution.

Comments

Luis Henriques Aug. 6, 2014, 1:28 p.m. UTC | #1
On Wed, Aug 06, 2014 at 06:37:41AM -0600, Dann Frazier wrote:
> Thanks Joseph. I've verified that this is *not* an issue in the
> upstream branch. This appears to be a bad interaction between this fix
> and the aufs patches in Ubuntu.
>
> Smallest fix appears to be as follows, though 8646cbac from utopic
> looks like it might be a proper (though more involved) solution.
> 

Yeah, this seems to be correct: commit c9c5b652e3d8 ("UBUNTU: ubuntu:
aufs3 -- (no-up) aufs3-mmap.patch") introduced some changes into
linux/mm.h that don't play nicely with the commit c3208d7fd18a
("ptrace: fix fork event messages across pid namespaces").

Your patch seems to be an acceptable SAUCE patch to fix this build
failure.

Cheers,
--
Luís

> diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
> index cc79eff..8314249 100644
> --- a/include/linux/ptrace.h
> +++ b/include/linux/ptrace.h
> @@ -5,9 +5,10 @@
>  #include <linux/sched.h>        /* For struct task_struct.  */
>  #include <linux/err.h>            /* for IS_ERR_VALUE */
>  #include <linux/bug.h>            /* For BUG_ON.  */
> -#include <linux/pid_namespace.h>    /* For task_active_pid_ns.  */
>  #include <uapi/linux/ptrace.h>
> 
> +extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk);
> +
>  /*
>   * Ptrace flags
>   *
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
diff mbox

Patch

diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index cc79eff..8314249 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -5,9 +5,10 @@ 
 #include <linux/sched.h>        /* For struct task_struct.  */
 #include <linux/err.h>            /* for IS_ERR_VALUE */
 #include <linux/bug.h>            /* For BUG_ON.  */
-#include <linux/pid_namespace.h>    /* For task_active_pid_ns.  */
 #include <uapi/linux/ptrace.h>

+extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk);
+
 /*
  * Ptrace flags
  *