I am trying to build this kernel for a generic netbook I have, but I am running into problems. My environment is Ubuntu 16.04 with gcc-5-arm-linux-gnueabi. When I follow the instructions in the README and I execute the command make via_obj uImage modules ARCH=arm
, I get this output:
cp -Rf ./via_obj.arm_v5t-2629.01/* ./
CHK include/linux/version.h
make[1]: 'include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CC kernel/bounds.s
GEN include/linux/bounds.h
CC arch/arm/kernel/asm-offsets.s
GEN include/asm/asm-offsets.h
CALL scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented [-Wcpp]
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented [-Wcpp]
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented [-Wcpp]
<stdin>:1325:2: warning: #warning syscall ppoll not implemented [-Wcpp]
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented [-Wcpp]
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
scripts/mod/modpost.c: In function ‘get_markers’:
scripts/mod/modpost.c:1542:4: warning: ignoring return value of ‘asprintf’, declared with attribute warn_unused_result [-Wunused-result]
asprintf(&line, "%s\t%s\t%s\n", name, mod->name, fmt);
^
scripts/mod/modpost.c: In function ‘add_marker’:
scripts/mod/modpost.c:1962:2: warning: ignoring return value of ‘asprintf’, declared with attribute
warn_unused_result [-Wunused-result]
asprintf(&line, "%s\t%s\t%s\n", name, mod->name, fmt);
^
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/ihex2fw
scripts/ihex2fw.c: In function ‘output_records’:
scripts/ihex2fw.c:261:3: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
write(outfd, &p->addr, writelen);
^
scripts/ihex2fw.c:266:2: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
write(outfd, zeroes, 6);
^
HOSTCC scripts/kallsyms
scripts/kallsyms.c: In function ‘read_symbol’:
scripts/kallsyms.c:74:4: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
fgets(str, 500, in);
^
HOSTCC scripts/conmakehash
HOSTCC scripts/bin2c
CC init/main.o
In file included from include/linux/mempolicy.h:62:0,
from init/main.c:51:
include/linux/pagemap.h: In function ‘fault_in_pages_readable’:
include/linux/pagemap.h:416:16: warning: variable ‘c’ set but not used [-Wunused-but-set-variable]
volatile char c;
^
init/main.c: In function ‘start_kernel’:
init/main.c:558:9: warning: format not a string literal and no format arguments [-Wformat-security]
printk(linux_banner);
^
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
CC init/do_mounts.o
In file included from include/linux/nfs_fs.h:45:0,
from init/do_mounts.c:18:
include/linux/pagemap.h: In function ‘fault_in_pages_readable’:
include/linux/pagemap.h:416:16: warning: variable ‘c’ set but not used [-Wunused-but-set-variable]
volatile char c;
^
CC init/do_mounts_rd.o
CC init/do_mounts_initrd.o
LD init/mounts.o
CC init/initramfs.o
init/initramfs.c: In function ‘populate_rootfs’:
init/initramfs.c:582:3: warning: format not a string literal and no format arguments [-Wformat-security]
panic(err);
^
CC init/calibrate.o
LD init/built-in.o
init/mounts.o: In function
tty_driver_kref_get':
do_mounts_initrd.c:(.text+0x0): multiple definition of tty_driver_kref_get'
init/main.o:main.c:(.text+0x0): first defined here
scripts/Makefile.build:291: recipe for target 'init/built-in.o' failed
make[1]: *** [init/built-in.o] Error 1
Makefile:869: recipe for target 'init' failed
make: *** [init] Error 2
I'm pretty sure a lot of that is ignorable, such as -Wformat-security warnings, I don't know why I'm getting multiple definitions of the function tty_driver_kref_get. The only editing I have done to the source is adding in a modern compiler-gcc5.h to include/linux.
Any help is appreciated.