Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
On Thu, Jun 13, 2013 at 03:07:26AM +0100, Ben Hutchings wrote: Control: tag -1 moreinfo On Wed, 2013-06-12 at 23:46 +, Bjarni Ingi Gislason wrote: Package: linux-source-3.2 Version: 3.2.46-1 Severity: important Dear Maintainer, * What led up to the situation? Compiling error: In file included from include/linux/mm_types.h:15:0, from include/linux/sched.h:64, from arch/x86/kernel/asm-offsets.c:9: include/linux/rcupdate.h: In function '__kfree_rcu': include/linux/rcupdate.h:834:2: error: size of unnamed array is negative make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2 Line 834 is BUILD_BUG_ON... in static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); BUILD_BUG_ON(!__builtin_constant_p(offset)); offset is declared as an unsigned long so can't be negative! This is a build-time assertion that the caller is passing a compile-time constant for offset. If the assertion fails it triggers this weird 'size of unnamed array is negative' error. But nothing in asm-offsets.c will be calling it, so this doesn't make sense to me. You forgot to attach your .config. In the main Makefile I changed -O2 to -O0: # # Automatically generated file; DO NOT EDIT. # Linux/i386 3.2.46 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT=elf32-i386 CONFIG_ARCH_DEFCONFIG=arch/x86/configs/i386_defconfig CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y # CONFIG_NEED_DMA_MAP_STATE is not set CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y # CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_32_LAZY_GS=y CONFIG_ARCH_HWEIGHT_CFLAGS=-fcall-saved-ecx -fcall-saved-edx CONFIG_KTIME_SCALAR=y CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y # # General setup # # CONFIG_EXPERIMENTAL is not set CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE= CONFIG_LOCALVERSION=-1 # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME=(none) CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_FHANDLE is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # # RCU Subsystem # CONFIG_TINY_RCU=y # CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set # CONFIG_TREE_RCU_TRACE is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EXPERT is not set CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y CONFIG_COMPAT_BRK=y #
Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
On Thu, Jun 13, 2013 at 09:10:27PM +, Bjarni Ingi Gislason wrote: On Thu, Jun 13, 2013 at 03:07:26AM +0100, Ben Hutchings wrote: Control: tag -1 moreinfo On Wed, 2013-06-12 at 23:46 +, Bjarni Ingi Gislason wrote: Package: linux-source-3.2 Version: 3.2.46-1 Severity: important Dear Maintainer, * What led up to the situation? Compiling error: In file included from include/linux/mm_types.h:15:0, from include/linux/sched.h:64, from arch/x86/kernel/asm-offsets.c:9: include/linux/rcupdate.h: In function '__kfree_rcu': include/linux/rcupdate.h:834:2: error: size of unnamed array is negative make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2 Line 834 is BUILD_BUG_ON... in static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); BUILD_BUG_ON(!__builtin_constant_p(offset)); offset is declared as an unsigned long so can't be negative! This is a build-time assertion that the caller is passing a compile-time constant for offset. If the assertion fails it triggers this weird 'size of unnamed array is negative' error. But nothing in asm-offsets.c will be calling it, so this doesn't make sense to me. You forgot to attach your .config. In the main Makefile I changed -O2 to -O0: This bug is most probably caused by the -O0 option for gcc as I got an error when compiling an older version In file included from linux-2.6.38.5/arch/x86/include/asm/alternative.h:105:0, from linux-2.6.38.5/arch/x86/include/asm/bitops.h:16, from include/linux/bitops.h:22, from include/linux/kernel.h:17, from include/linux/sched.h:55, from include/linux/stackprotector.h:5, from arch/x86/kernel/process_32.c:12: linux-2.6.38.5/arch/x86/include/asm/cpufeature.h: In function 'prepare_to_copy': linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: error: impossible constraint in 'asm' linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: error: impossible constraint in 'asm' linux-2.6.38.5/arch/x86/include/asm/cpufeature.h: In function '__switch_to': linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] make[2]: *** [arch/x86/kernel/process_32.o] Error 1 make[1]: *** [arch/x86/kernel] Error 2 make: *** [arch/x86] Error 2 The bug is thus either in the compiler gcc or assember as. I will compile 3.2.46-1 later with the -O2 (default) option. -- Bjarni I. Gislason -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20130614024454.ga13...@rhi.hi.is
Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
On Fri, 2013-06-14 at 02:44 +, Bjarni Ingi Gislason wrote: On Thu, Jun 13, 2013 at 09:10:27PM +, Bjarni Ingi Gislason wrote: On Thu, Jun 13, 2013 at 03:07:26AM +0100, Ben Hutchings wrote: Control: tag -1 moreinfo On Wed, 2013-06-12 at 23:46 +, Bjarni Ingi Gislason wrote: Package: linux-source-3.2 Version: 3.2.46-1 Severity: important Dear Maintainer, * What led up to the situation? Compiling error: In file included from include/linux/mm_types.h:15:0, from include/linux/sched.h:64, from arch/x86/kernel/asm-offsets.c:9: include/linux/rcupdate.h: In function '__kfree_rcu': include/linux/rcupdate.h:834:2: error: size of unnamed array is negative make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2 Line 834 is BUILD_BUG_ON... in static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); BUILD_BUG_ON(!__builtin_constant_p(offset)); offset is declared as an unsigned long so can't be negative! This is a build-time assertion that the caller is passing a compile-time constant for offset. If the assertion fails it triggers this weird 'size of unnamed array is negative' error. But nothing in asm-offsets.c will be calling it, so this doesn't make sense to me. You forgot to attach your .config. In the main Makefile I changed -O2 to -O0: This bug is most probably caused by the -O0 option for gcc as I got an error when compiling an older version In file included from linux-2.6.38.5/arch/x86/include/asm/alternative.h:105:0, from linux-2.6.38.5/arch/x86/include/asm/bitops.h:16, from include/linux/bitops.h:22, from include/linux/kernel.h:17, from include/linux/sched.h:55, from include/linux/stackprotector.h:5, from arch/x86/kernel/process_32.c:12: linux-2.6.38.5/arch/x86/include/asm/cpufeature.h: In function 'prepare_to_copy': linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: error: impossible constraint in 'asm' linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: error: impossible constraint in 'asm' linux-2.6.38.5/arch/x86/include/asm/cpufeature.h: In function '__switch_to': linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] linux-2.6.38.5/arch/x86/include/asm/cpufeature.h:321:4: warning: asm operand 0 probably doesn't match constraints [enabled by default] make[2]: *** [arch/x86/kernel/process_32.o] Error 1 make[1]: *** [arch/x86/kernel] Error 2 make: *** [arch/x86] Error 2 The bug is thus either in the compiler gcc or assember as. It's not a bug. The kernel code relies on the compiler doing certain optimisations, which is why the Makefile always enables them. I will compile 3.2.46-1 later with the -O2 (default) option. Ben. -- Ben Hutchings If the facts do not conform to your theory, they must be disposed of. signature.asc Description: This is a digitally signed message part
Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
Package: linux-source-3.2 Version: 3.2.46-1 Severity: important Dear Maintainer, * What led up to the situation? Compiling error: In file included from include/linux/mm_types.h:15:0, from include/linux/sched.h:64, from arch/x86/kernel/asm-offsets.c:9: include/linux/rcupdate.h: In function '__kfree_rcu': include/linux/rcupdate.h:834:2: error: size of unnamed array is negative make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2 Line 834 is BUILD_BUG_ON... in static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); BUILD_BUG_ON(!__builtin_constant_p(offset)); offset is declared as an unsigned long so can't be negative! -- System Information: Debian Release: 7.1 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500, 'stable') Architecture: i386 (i586) Kernel: Linux 2.6.32-47 Locale: LANG=is_IS, LC_CTYPE=is_IS (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/dash Versions of packages linux-source-3.2 depends on: ii binutils 2.22-8 ii bzip2 1.0.6-4 Versions of packages linux-source-3.2 recommends: ii gcc 4:4.7.2-1 ii libc6-dev [libc-dev] 2.13-38 ii make 3.81-8.2 Versions of packages linux-source-3.2 suggests: ii libncurses5-dev [ncurses-dev] 5.9-10 pn libqt4-dev none ii pkg-config 0.26-1 -- no debconf information -- Bjarni I. Gislason -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20130612234626.ga28...@rhi.hi.is
Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
Control: tag -1 moreinfo On Wed, 2013-06-12 at 23:46 +, Bjarni Ingi Gislason wrote: Package: linux-source-3.2 Version: 3.2.46-1 Severity: important Dear Maintainer, * What led up to the situation? Compiling error: In file included from include/linux/mm_types.h:15:0, from include/linux/sched.h:64, from arch/x86/kernel/asm-offsets.c:9: include/linux/rcupdate.h: In function '__kfree_rcu': include/linux/rcupdate.h:834:2: error: size of unnamed array is negative make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1 make: *** [prepare0] Error 2 Line 834 is BUILD_BUG_ON... in static __always_inline void __kfree_rcu(struct rcu_head *head, unsigned long offset) { typedef void (*rcu_callback)(struct rcu_head *); BUILD_BUG_ON(!__builtin_constant_p(offset)); offset is declared as an unsigned long so can't be negative! This is a build-time assertion that the caller is passing a compile-time constant for offset. If the assertion fails it triggers this weird 'size of unnamed array is negative' error. But nothing in asm-offsets.c will be calling it, so this doesn't make sense to me. You forgot to attach your .config. Ben. -- Ben Hutchings friends: People who know you well, but like you anyway. signature.asc Description: This is a digitally signed message part
Processed: Re: Bug#712103: linux-3.2.46-1 does not compile (rcupdate.h)
Processing control commands: tag -1 moreinfo Bug #712103 [linux-source-3.2] linux-3.2.46-1 does not compile (rcupdate.h) Added tag(s) moreinfo. -- 712103: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712103 Debian Bug Tracking System Contact ow...@bugs.debian.org with problems -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/handler.s.b712103.13710892673340.transcr...@bugs.debian.org