Fehlende Datei beim Kernel 4.14.51

492
pr1268

Nicht sicher, was hier passiert ist. Ich versuche, meinen Linux-Kernel von 4.9.x auf 4.14.x zu aktualisieren. Folgendes ist passiert:

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 

Irgendwelche Ideen, was hier passiert ist (außer dem offensichtlichen)? Sollte sich " gelf.h" bereits auf meinem Computer befinden? Oder im Kernel-Tarball?

Ich habe Vanilla 4.14.51 von kernel.org heruntergeladen. Ich habe meinen eigenen (unveränderten) Vanilla-Kernel seit nunmehr 14 Jahren erfolgreich wiederholt, aber das ist neu.

Mein PC ist ein Dell-Laptop mit Core2 i5 (64-Bit) mit Slackware 14.1. Ich habe vor einigen Jahren die Version 3.17.x mit 4.4.x und kürzlich auf 4.9.x (derzeit 4.9.109) aufgerüstet.

Ich tun haben libelf installiert:

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 

NACHTRAG

Als ich gestern Abend 4.14.55 versuchte, habe ich festgestellt, dass das Verzeichnis, in dem das Kernel-Build-Skript erwartet, "gelf.h" zu sehen, sich im Kernel-Quellbaum befindet, nicht im regulären Verzeichnis /usr/include.

Davon abgesehen, wird das entsprechende Verzeichnis in meinem (Laufen) 4.9.x Quellbaum nicht jeder haben .onoch .koDateien. Offensichtlich gibt es in 4.14.x ein Konfigurationselement, das ich in 4.9.x nicht aktiviert habe.

Ich habe versucht 4.14.x so nahe wie möglich an meine funktionierende 4.9.x zu konfigurieren; Ich kenne einige neue Optionen, aber im Allgemeinen versuche ich, die Konfigurationen zwischen den Kernel-Versionen gleich zu halten.

Davon abgesehen weiß ich nicht, welche Konfigurationsoption die Header-Dateien in sehen möchte linux-4.14.*/tools/objtool/arch/x86/... Irgendwelche Ideen?

0
Locate garantiert nicht, dass die Datei noch vorhanden ist. Gerard H. Pille vor 5 Jahren 0
Ähm, es ist da auf meinem System. `stat $ (locate gelf.h)` liefert eine reguläre Datei der Größe 5103 Bytes. `cat`ing diese Datei zeigt, dass es sich um eine Menge C-Prozessor handelt. `Copyright (C) 2000 - 2006 Michael Riepe` pr1268 vor 5 Jahren 0
Noch ein Versuch: Es sieht so aus, als hätten Sie keine Elfutils. Andererseits: Ich würde nicht nach / var / log nach installierten Paketen suchen. Sicher hat Slackware eine Art Paketverwaltung? Könnte es sein, dass Ihre Slackware selbst mit einem Update auskommt? Gerard H. Pille vor 5 Jahren 0

0 Antworten auf die Frage