3 votes

Pourquoi les fichiers d'en-tête linux installés sont-ils vides ?

J'utilise la version 14.04, installée sur un disque dur vide. Les fichiers d'en-tête Linux sont installés, mais le fichier .h sont vides. Je peux voir que les fichiers sont tous de longueur nulle : /usr/src/linux-headers-3.13.0-37-generic/include/config .

Les fichiers d'en-tête sont installés comme suit :

> sudo apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.13.0-37-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

Comment puis-je vraiment installer les fichiers d'en-tête, de sorte qu'ils aient une longueur non nulle ?

7voto

lemonsqueeze Points 1584

Je viens de tomber sur este selon Kristof :

include/config n'est pas du tout utilisé pour les fichiers d'en-tête. Cela fait partie d'une astuce pour optimiser la construction du noyau.

La configuration du noyau (stockée dans .config) est utilisée pour générer un fichier d'en-tête qui est utilisé dans tout le noyau. Le problème est que le changement d'une option signifie que tous les fichiers qui incluent le fichier config.h devront être reconstruits, même si la plupart d'entre eux ne sont pas pas affectés par cette option.

Ce problème est résolu en supprimant la dépendance du fichier makefile sur config.h et en la remplaçant par une dépendance sur l'un des fichiers de la série td. par une dépendance sur l'un des fichiers de include/config. Chaque fichier correspond à une option de configuration. Chaque fois que cette est modifiée, le système de configuration touche ce fichier (en mettant à jour son horodatage, ce qui oblige make à reconstruire tous les fichiers dépendants.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X