2016-06-13 1 views
0

J'essayais de construire apache2 sur yocto. Mais je recevais des erreurs ci-dessous.apache2 build échoue dans yocto - "/ usr/local/include" est dangereux pour la compilation croisée [-Wpoison-system-directories]

ERROR: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. Rerun configure task after fixing this.

googling m'a conduit à https://lists.yoctoproject.org/pipermail/yocto/2012-March/005125.html

Je regardais dans conf.log et découvrez ces lignes:

cc1: warning: include location "/usr/local/include" is unsafe for 
cross-compilation [-Wpoison-system-directories] 

arm-poky-linux-gnueabi/4.9.2/ld: warning: library search path "/usr/local/lib" 
is unsafe for cross-compilation 

Je googlé à nouveau, mais je ne comprenais pas encore 3 choses:

  1. Pourquoi le chemin a-t-il été défini sur le chemin local?
  2. Pourquoi cette erreur ne viennent que lors de la construction apache2 [je peux construire ngnix, cryptsetup, etc ..]
  3. Comment puis-je résoudre ce problème?
+0

Mais ce n'est pas une erreur est un avertissement. Quelle branche utilise Yocto? Vous mettez sur pastebin le journal entier de la construction et du lien apache2 ici. –

Répondre

0

Habituellement, ces types d'erreurs proviennent de scripts configure qui ont des chemins (comme /usr/local/include, /usr/include et toutes sortes d'autres variations) en les codées en dur. Donc, la façon de le réparer est de corriger configure.ac (s'il y en a un dans le paquet, bien sûr, configure sinon) en supprimant ces chemins.

Par exemple, jetez un oeil à patch for pure-ftpd de méta-oe courant, il résout le même problème:

--- a/configure.ac 
+++ b/configure.ac 
@@ -100,18 +100,6 @@ AC_ARG_VAR(PYTHON,local path to the python interpreter) 
python_possible_path="/usr/bin:/usr/local/bin:/bin:/opt/python/bin:/opt/python/usr/bin:/opt/python/usr/local/bin" 
AC_PATH_PROG(PYTHON,python,/usr/bin/env python,$python_possible_path) 

-if test -d /usr/local/include; then 
- CPPFLAGS="$CPPFLAGS -I/usr/local/include" 
-fi 
- 
-if test -d /usr/kerberos/include; then 
- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include" 
-fi 
- 
-if test -d /usr/local/lib; then 
- LDFLAGS="$LDFLAGS -L/usr/local/lib" 
-fi 
- 
CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2" 

dnl Checks for header files