2017-05-17 1 views
0

VPP compilation croisée tout en étant intégré dans le projet buildroot échoue avec l'erreur suivante:ERREUR: chemin tête/bibliothèque dangereuse utilisée dans la compilation croisée: « -I/usr/include

ERROR: unsafe header/library path used in cross-compilation: '-I/usr/include 

il est apparu avoir oldincludedir Exportation pour la chaîne d'outils non-gnu activée et donc produisant cette inclusion lors du processus de configuration.

le problème semble être tout à fait commun une fois le projet buildroot Ajout d'une option pour le chemin dangereux paranoïaque vérification comme décrit here:

>> >> This error appear if one of the following paths is used during the 
>> >> cross-compilation: 
>> >> "/lib" 
>> >> "/usr/include" 
>> >> "/usr/lib" 
>> >> "/usr/local/include" 
>> >> "/usr/local/lib" 

comment exclure oldincludedir génération à l'intérieur configurer ou comment modifier sa valeur au lieu de

oldincludedir='/usr/include' 

à configurer similaire à la variable includedir:

includedir='${prefix}/include' 

?

+0

pour la mise à jour rapide, le fichier responsable de l'inclusion du chemin d'accès codé en dur semblait être: https://github.com/vpp-dev/vpp/blob/master/build-data/packages/vpp.mk où le dangereux le chemin est codé en dur sur la ligne 24 –

Répondre

1

explication détaillée sur les parcours dangereux paranoïaque vérification se trouve here mais le lien semble être très temporaire pour la copie sera affichée dans cette réponse aussi:

toolchain-externe: emballage de l'appareil pour avertir sur les chemins dangereux

les toolchains CodeSourcery ont une caractéristique très intéressante: ils mettent en garde l'utilisateur quand un en-tête dangereux ou chemin de la bibliothèque est utilisée, à savoir un chemin qui conduira les en-têtes d'hôte ou les bibliothèques à fuir dans la construction. Ce commit ajoute une fonctionnalité similaire dans notre wrapper externe toolchain , de sorte qu'il peut être utilisé avec toutes les chaînes d'outils externes, et peut également être réglé selon les besoins. Par défaut, l'emballage toolchain externe donne maintenant des avertissements tels que:

arm-linux-gcc: WARNING: unsafe header/library path used in cross-compilation: '-I /usr/foo' 
    arm-linux-gcc: WARNING: unsafe header/library path used in cross-compilation: '-L /usr/bleh' 

mais la compilation se poursuit avec succès. On peut alors facilement grep dans son journal de construction pour rechercher les occurrences de ce message.

En option, si BR_COMPILER_PARANOID_UNSAFE_PATH est défini dans l'environnement à une valeur non vide, l'emballage externe à la place erreur sur la compilation et interrompra.