Здравствуйте!
Ubuntu-14.04 установлена на компьютер с Intel Core 2 Quad.
Последние пакеты устанавливались в самом конце июля - начале августа.
Ядро 3.13.11.4 скомпилированное с помощью make-kpkg.
При этом в include/asm-generic/ сделана ссылка
system.h -> switch_to.h
Сейчас потребовалось перекомпилировать ядро ещё раз с HZ=1000, а было 250
и почему-то возникают ошибки.
В начале вывода есть предупреждение
kernel/irq/Kconfig:41:error: recursive dependency detected!
я не помню, было ли оно в 1-й раз.
В конце вывода идут предупреждения о конфликтах типов в include/linux/string.h,
потом другие предупреждения:
In file included from include/linux/bitmap.h:8:0,
from include/linux/cpumask.h:11,
from /usr/src/linux-source-3.13.0/linux-source-3.13.0/arch/x86/include/asm/cpumask.h:4,
from /usr/src/linux-source-3.13.0/linux-source-3.13.0/arch/x86/include/asm/msr.h:10,
from /usr/src/linux-source-3.13.0/linux-source-3.13.0/arch/x86/include/asm/processor.h:20,
from /usr/src/linux-source-3.13.0/linux-source-3.13.0/arch/x86/include/asm/thread_info.h:22,
from include/linux/thread_info.h:54,
from /usr/src/linux-source-3.13.0/linux-source-3.13.0/arch/x86/include/asm/preempt.h:6,
from include/linux/preempt.h:18,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/slab.h:14,
from fs/read_write.c:7:
include/linux/string.h:23:15: warning: conflicting types for built-in function ‘strncpy’ [enabled by default]
extern char * strncpy(char *,const char *, __kernel_size_t);
^
include/linux/string.h:32:15: warning: conflicting types for built-in function ‘strncat’ [enabled by default]
extern char * strncat(char *, const char *, __kernel_size_t);
^
include/linux/string.h:41:12: warning: conflicting types for built-in function ‘strncmp’ [enabled by default]
extern int strncmp(const char *,const char *,__kernel_size_t);
^
include/linux/string.h:50:12: warning: conflicting types for built-in function ‘strncasecmp’ [enabled by default]
extern int strncasecmp(const char *s1, const char *s2, size_t n);
^
include/linux/string.h:89:24: warning: conflicting types for built-in function ‘strspn’ [enabled by default]
extern __kernel_size_t strspn(const char *,const char *);
^
include/linux/string.h:92:24: warning: conflicting types for built-in function ‘strcspn’ [enabled by default]
extern __kernel_size_t strcspn(const char *,const char *);
^
include/linux/string.h:111:15: warning: conflicting types for built-in function ‘memchr’ [enabled by default]
extern void * memchr(const void *,int,__kernel_size_t);
^
потом ошибки:
In file included from fs/read_write.c:19:0:
include/linux/compat.h:44:18: error: conflicting types for ‘compat_sys_readv’
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^
include/linux/compat.h:35:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^
fs/read_write.c:971:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE3’
COMPAT_SYSCALL_DEFINE3(readv, compat_ulong_t, fd,
^
include/linux/compat.h:330:20: note: previous declaration of ‘compat_sys_readv’ was here
asmlinkage ssize_t compat_sys_readv(compat_ulong_t fd,
^
include/linux/compat.h:44:18: error: conflicting types for ‘compat_sys_preadv’
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^
include/linux/compat.h:39:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^
fs/read_write.c:1008:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE5’
COMPAT_SYSCALL_DEFINE5(preadv, compat_ulong_t, fd,
^
include/linux/compat.h:334:20: note: previous declaration of ‘compat_sys_preadv’ was here
asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd,
^
include/linux/compat.h:44:18: error: conflicting types for ‘compat_sys_writev’
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^
include/linux/compat.h:35:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
COMPAT_SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
^
fs/read_write.c:1038:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE3’
COMPAT_SYSCALL_DEFINE3(writev, compat_ulong_t, fd,
^
include/linux/compat.h:332:20: note: previous declaration of ‘compat_sys_writev’ was here
asmlinkage ssize_t compat_sys_writev(compat_ulong_t fd,
^
include/linux/compat.h:44:18: error: conflicting types for ‘compat_sys_pwritev’
asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\
^
include/linux/compat.h:39:2: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINEx’
COMPAT_SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
^
fs/read_write.c:1075:1: note: in expansion of macro ‘COMPAT_SYSCALL_DEFINE5’
COMPAT_SYSCALL_DEFINE5(pwritev, compat_ulong_t, fd,
^
include/linux/compat.h:337:20: note: previous declaration of ‘compat_sys_pwritev’ was here
asmlinkage ssize_t compat_sys_pwritev(compat_ulong_t fd,
^
make[2]: *** [fs/read_write.o] Error 1
make[1]: *** [fs] Error 2
make[1]: Leaving directory `/usr/src/linux-source-3.13.0/linux-source-3.13.0'
make: *** [debian/stamp/build/kernel] Error 2
В чём причина и что делать? В 1-й раз оно же скомпилировалось.
Пользователь решил продолжить мысль 10 Ноября 2014, 12:52:38:
Похоже, что не компилировалось из-за ссылки, которую я сделал руками:
system.h -> switch_to.h
Я заново разархивировал tar.bz2 с ядром и оно скомпилировалось.