étapes de base menant à la question:GCC 4.9.4 compilateur croisé Construire (numéro limits.h)
cd linux-2.6.35.9/
make ARCH=x86 INSTALL_HDR_PATH=${PREFIX}/${TARGET} headers_install
cd ../
cd build-binutils/
sh ../binutils-2.28/configure --prefix=${PREFIX} --target=${TARGET}
make
make install
cd ../
cd build-gcc/
sh ../gcc-4.9.4/configure --prefix=${PREFIX} --target=${TARGET} --enable-languages=c,c++ --disable-multilib
make all-gcc
make install-gcc
cd ../
Le problème que je suis en cours d'exécution en est que ce qui finit par s'installer dans $ {prefix} /lib/gcc/${TARGET}/4.9.4/include-fixed/limits.h ne semble pas être correct. Plus précisément, le bit "fixincludes" dans la construction et l'installation de GCC attend un répertoire appelé "sys-include" qui n'a jamais été mis en place et quand ce n'est pas le cas, limits.h ne fait pas référence au syslimits.h associé (dans le même répertoire).
Si je regarde dans la sortie de la séquence de construction/installation, il y a une référence à la construction de ce fichier à partir des composants limitx.h, limity.h et d'autres bits. Ce test échoue et il installe juste le "generic" limits.h fourni avec GCC (qui n'inclut pas une référence à syslimits.h qui utilise la directive #include_next de GCC pour inclure $ {PREFIX}/$ {TARGET}/include/limits.h qui a réelle choses dans ce que j'ai besoin comme NAME_MAX et PATH_MAX).
Le bit qui manque à partir du fichier est:
/* This administrivia gets added to the beginning of limits.h
if the system has its own version of limits.h. */
/* We use _GCC_LIMITS_H_ because we want this not to match
any macros that the system's limits.h uses for its own purposes. */
#ifndef _GCC_LIMITS_H_ /* Terminated in limity.h. */
#define _GCC_LIMITS_H_
#ifndef _LIBC_LIMITS_H_
/* Use "..." so that we find syslimits.h only in this same directory. */
#include "syslimits.h"
#endif
Donc, il y a une option que je ne suis pas passer au script de configuration de GCC ou que je ne suis pas de passer à quelque chose avant cette étape qui créerait le répertoire sys-include correctement?
[EDIT]
TARGET=i686-redhat-linux
(un triple objectif de "-dumpmachine gcc" sur un serveur de build que nous utilisons pour le projet)
informations Peut-être plus utile (?): Les paquets étaient tout simplement « wget "tire des archives respectives. Je suis basé sur une installation Ubuntu 16.04 mise à jour où j'ai installé libgmp-dev et libmpfr-dev pour éviter d'avoir à les compiler avec le code source du compilateur.
Quelle est la valeur de $ {TARGET} '? Veuillez modifier la question pour l'améliorer. –
Mise à jour de la question avec quelques informations supplémentaires. J'espère que cela pourra aider! –