Thiếu tệp khi tạo kernel 4.14.51


0

Không chắc chắn những gì đã xảy ra ở đây. Tôi đang cố nâng cấp nhân Linux của mình từ 4.9.x lên 4.14.x và điều dưới đây đã xảy ra:

In file included from arch/x86/decode.c:26:0:
arch/x86/../../elf.h:22:18: fatal error: gelf.h: No such file or directory
 #include <gelf.h>
                  ^
compilation terminated.
mv: cannot stat ‘/usr/src/linux-4.14.51/tools/objtool/arch/x86/.decode.o.tmp’: No such file or directory
make[4]: *** [/usr/src/linux-4.14.51/tools/objtool/arch/x86/decode.o] Error 1
make[3]: *** [arch/x86] Error 2
make[2]: *** [/usr/src/linux-4.14.51/tools/objtool/objtool-in.o] Error 2
make[1]: *** [objtool] Error 2
make: *** [tools/objtool] Error 2

Bất kỳ ý tưởng những gì đã xảy ra ở đây (ngoài những điều hiển nhiên)? Có nên " gelf.h" đã có trên máy tính của tôi? Hoặc trong tarball hạt nhân?

Tôi đã tải xuống vanilla 4.14.51 từ kernel.org - Tôi đã biên dịch hạt nhân vanilla (chưa sửa đổi) của riêng tôi thành công, lặp đi lặp lại, trong 14 năm nay, nhưng điều này là mới.

PC của tôi là máy tính xách tay Dell có Core2 i5 (64-bit) với Slackware 14.1 - Tôi đã nâng cấp stock 3.17.x với 4.4.x vài năm trước và gần đây là 4.9.x (hiện là 4.9.109).

Tôi làm có libelf cài đặt:

me@mylaptop:~$ locate gelf.h
/usr/include/libelf/gelf.h

me@mylaptop:~$ ls /var/log/packages/*elf*
/var/log/packages/libelf-0.8.13-x86_64-2

ĐỊA CHỈ

Khi thử 4.14.55 tối qua, tôi đã lưu ý rằng thư mục trong đó tập lệnh xây dựng kernel dự kiến ​​sẽ thấy "gelf.h" nằm trong cây nguồn kernel, không phải là thông thường /usr/include.

Nói như vậy, các thư mục tương ứng trong cây (chạy) nguồn 4.9.x của tôi không không có bất kỳ .ohay .kotập tin. Rõ ràng có một mục cấu hình được kích hoạt trong 4.14.x mà tôi không kích hoạt trong 4.9.x.

Tôi đã thử cấu hình 4.14.x càng gần với 4.9.x hoạt động của tôi càng tốt; Tôi biết một số tùy chọn mới, nhưng nhìn chung tôi cố gắng giữ cấu hình giống nhau giữa các phiên bản kernel trung gian.

Điều đó đang được nói, tôi không biết tùy chọn cấu hình nào sẽ muốn xem các tệp tiêu đề trong linux-4.14.*/tools/objtool/arch/x86/... Có ý tưởng nào không?


Xác định vị trí không đảm bảo các tập tin vẫn còn đó.
Gerard H. Pille

Umm, nó có trên hệ thống của tôi. stat $(locate gelf.h)cung cấp một tệp thông thường có kích thước 5103 byte. cating tập tin đó cho thấy những gì có vẻ là một loạt mã tiền xử lý C. Copyright (C) 2000 - 2006 Michael Riepe
pr1268

Một thử khác: có vẻ như bạn không có elfutils. Nhưng sau đó một lần nữa: Tôi sẽ không kiểm tra / var / log cho các gói đã cài đặt. Chắc chắn Slackware có một số loại quản lý gói? Nó có thể là Slackware của bạn có thể làm gì với một bản cập nhật?
Gerard H. Pille

Câu trả lời:


0

Tôi đã gặp một vấn đề rất giống trong khi nâng cấp kernel của mình trong Slackware 14.1 với cùng một lỗi. Tôi rất mới đối với kinh doanh kernel, nhưng tôi tin rằng việc cài đặt thư viện libelf sẽ khắc phục vấn đề. Nó được ghi lại ở đây:

https://directory.fsf.org/wiki/Libelf

Ngoài ra, tôi tin rằng vấn đề được cho là bị bắt bởi hành vi tạo mặc định, nhưng thực tế không phải vậy. Tôi có thể hoàn toàn sai về tính đó, nhưng đây là một bản vá liên quan để làm cho Slackware 14.1 không có:

https://lore.kernel.org/patchwork/patch/670761/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.