Tôi đã cố gắng biên dịch kernel Linux v4.8.9 mới nhất trên Ubuntu 16.10 và lỗi này vẫn xuất hiện sau khi tôi tạo .config mặc định, sửa đổi nó bằng menuconfig và tự chạy. Tôi cũng đã chạy make mrproper ngay khi tôi gỡ bỏ tệp. Đây là đầu ra ngay sau khi tôi chạy make:
scripts/kconfig/conf --silentoldconfig Kconfig
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_64.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
HOSTCC arch/x86/tools/relocs_32.o
HOSTCC arch/x86/tools/relocs_64.o
HOSTCC arch/x86/tools/relocs_common.o
HOSTLD arch/x86/tools/relocs
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/x86/include/generated/asm/clkdev.h
WRAP arch/x86/include/generated/asm/cputime.h
WRAP arch/x86/include/generated/asm/dma-contiguous.h
WRAP arch/x86/include/generated/asm/early_ioremap.h
WRAP arch/x86/include/generated/asm/mcs_spinlock.h
WRAP arch/x86/include/generated/asm/mm-arch-hooks.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CC kernel/bounds.s
kernel/bounds.c:1:0: error: code model kernel does not support PIC mode
/*
Kbuild:45: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 1
Makefile:1015: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
Tôi cũng đã thử biên dịch với tùy chọn -no-pie sau lệnh make nhưng nó lại xuất hiện một tập hợp các lỗi mới, liên tục nói rằng có "các mục tiêu bị thiếu". Tôi có phiên bản gcc 6.2.0. Tôi cũng đã cài đặt gcc-5 vì tôi cho rằng ngay từ đầu có thể là do gcc còn quá mới nhưng vấn đề tương tự vẫn tồn tại ở gcc-5. Một người nào đó trong danh sách gửi thư hoặc diễn đàn khác đã đề cập rằng vấn đề đã được giải quyết bằng cách nhân bản trực tiếp từ git nhưng điều đó cũng không giúp ích gì trong kịch bản của tôi.
Tôi tò mò liệu có ai khác gặp phải vấn đề này không và nếu có thì cách khắc phục có thể là gì?
LƯU Ý: Tôi đang chạy Ubuntu trong Virtualbox trên máy Mac nếu đó có thể là một vấn đề có thể xảy ra.