IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Les espaces dans les noms de dossier c'est encore la mort !


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut Les espaces dans les noms de dossier c'est encore la mort !
    Bonjour,

    Expérience vécue ce matin :
    je voulais compiler avec un simple make tel qu'indiqué dans le readme quelques .c pour obtenir des modules pilotant une carte IO, mais lors de la compil je me suis pris une abominable erreur
    arch/x86/Makefile:151: CONFIG_X86_X32 enabled but no binutils support
    et me voilà parti à aller voir dans le Makefile en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ifdef CONFIG_X86_X32
    	x32_ld_ok := $(call try-run,\
    			/bin/echo -e '1: .quad 1b' | \
    			$(CC) $(KBUILD_AFLAGS) -c -x assembler -o "$$TMP" - && \
    			$(OBJCOPY) -O elf32-x86-64 "$$TMP" "$$TMPO" && \
    			$(LD) -m elf32_x86_64 "$$TMPO" -o "$$TMP",y,n)
            ifeq ($(x32_ld_ok),y)
                    CONFIG_X86_X32_ABI := y
                    KBUILD_AFLAGS += -DCONFIG_X86_X32_ABI
                    KBUILD_CFLAGS += -DCONFIG_X86_X32_ABI
            else
    [151]           $(warning CONFIG_X86_X32 enabled but no binutils support)
            endif
    endif
    export CONFIG_X86_X32_ABI
    Je fais des tests :
    La commande /bin/echo -e '1: .quad 1b' | gcc -c -x assembler -o /tmp/sortie - && objcopy -O elf32-x86-64 /tmp/sortie /tmp/sortie0
    fonctionne bien, ainsi que ld -m elf32_x86_64 /tmp/sortie0 -o /tmp/sortie,y,n
    Mais $(KBUILD_AFLAGS) n'est pas testé...

    Creusons : c'est ce test ifeq ($(x32_ld_ok),y) qui échoue, je suspecte un micmac 32/64 bits alors après avoir recompilé un noyau avec l'option CONFIG_X86_X32 activée plus modif de la ligne de commande du boot sans aucun effet positif, j'installe le paquet gcc-multilib, mais make échoue toujours.

    Et d'un coup j'ai une intuition (mes anges gardiens ! -- merci à eux) : le dossier dans lequel j'ai les fichiers en cours de tentative de compil contient une espace ("install machine"), hop !, je le renomme en la remplaçant par un underscore et comme au bon vieux temps de l'informatique préhistorique, je relance la compil qui s'exécute maintenant sans l'ombre d'une erreur.
    Go figure...

    Voilà, vous êtes prévenus, bannissez les espaces sinon gare à la perte de temps avec des messages d'erreur complètement à côté de la plaque.

  2. #2
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    Oui, ça m'est encore arrivé aussi y'a pas longtemps, et c'est quand même malheureux : on ne devrait pas avoir à bannir quelque caractère que ce soit dans les noms de répertoires ou de fichiers.
    C'est le résultat d'une fainéantise au niveau de l'écriture des scripts de config
    La moindre des choses, ce serait effectivement de sortir proprement en erreur dès le départ en cas de nom de répertoire non supporté.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Et d'un coup j'ai une intuition (mes anges gardiens ! -- merci à eux) : le dossier dans lequel j'ai les fichiers en cours de tentative de compil contient une espace ("install machine"), hop !, je le renomme en la remplaçant par un underscore et comme au bon vieux temps de l'informatique préhistorique, je relance la compil qui s'exécute maintenant sans l'ombre d'une erreur.
    Go figure...

    Voilà, vous êtes prévenus, bannissez les espaces sinon gare à la perte de temps avec des messages d'erreur complètement à côté de la plaque.
    Et j'imagine que trouver la "vraie" source d'erreur, c'est-à-dire le bug, dans le makefile, afin d'envisager une éventuelle correction, est une tâche hors de portée...
    car probablement extrêmement chronophage !

  4. #4
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 117
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 117
    Par défaut
    Bonjour,

    Citation Envoyé par jack-ft Voir le message
    Et j'imagine que trouver la "vraie" source d'erreur, c'est-à-dire le bug, dans le makefile, [...]
    le problème (si c'est à moi que ta remarque s'adresse), c'est que les Makefile c'est pas trop ma tasse de thé, je suis plus à l'aise avec les hiéroglyphes égyptiens de la Basse Époque,

    Ceci étant, ayant détecté que le test échoue à cause du $(KBUILD_AFLAGS), j'arrive quand même à rechercher cette string dans le Makefile mais je ne trouve qu'une ligne intéressante, KBUILD_AFLAGS := -D__ASSEMBLY__, que je ne sais pas interpréter…

    Et à partir de là, je rends mon tablier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Suppression d'espaces dans des noms de dossiers par batch
    Par rodolphelami dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 10/07/2019, 17h30
  2. Réponses: 6
    Dernier message: 28/10/2016, 23h42
  3. Espaces dans les noms de dossiers
    Par zoscoy dans le forum Shell et commandes GNU
    Réponses: 17
    Dernier message: 03/11/2014, 17h06
  4. fontion : Gestion des espaces dans les noms de dossier
    Par _stephnane_ dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 10/11/2010, 10h56
  5. lister les noms de dossier dans un menu déroulant
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2006, 01h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo