logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 15-12-2016 11:50:25

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

[resolu] compilation-32bit sur pc64, exemple zygrib

Bonjour,
venant de là
https://debian-facile.org/viewtopic.php?id=16201
le message d'erreur :

/usr/include/features.h:374:25: fatal error: sys/cdefs.h: Aucun fichier ou dossier de ce type
#  include <sys/cdefs.h>


le 'cdefs.h' est ici:

find / -name 'cdefs.h'
 



/usr/include/i386-linux-gnu/sys/cdefs.h



dans le features.h:

/* This is here only because every header file already includes this one.  */
#ifndef __ASSEMBLER__
# ifndef _SYS_CDEFS_H
#  include <sys/cdefs.h>
# endif



peut-on modifier 'features.h' en adaptant la ligne 'cdefs' ou en ajoutant une ligne telle que :

/* This is here only because every header file already includes this one.  */
#ifndef __ASSEMBLER__
# ifndef _SYS_CDEFS_H
#  include <sys/cdefs.h>
#  include <i386-linux-gnu/sys/cdefs.h>
# endif



sans 'tout casser' ? smile

merci d'avance.
cordialement.
debianux

ps: la même compilation sur une jessie-64bits s'est faite toute seule...

Dernière modification par debianux (20-12-2016 11:05:16)

Hors ligne

#2 15-12-2016 12:17:49

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Installe plutôt la bilbiothèque adaptée, je suppose que tu es en 64 bits et que tu n'a que le paquet compatible 32. Supposition, hein.

implijer@jo_lap:~$ apt-file search sys/cdefs.h


dietlibc-dev: /usr/include/diet/sys/cdefs.h
elks-libc: /usr/lib/bcc/include/sys/cdefs.h
freebsd-glue: /usr/include/freebsd/sys/cdefs.h
libbsd-dev: /usr/include/bsd/sys/cdefs.h
libc6-dev: /usr/include/i386-linux-gnu/sys/cdefs.h
libc6-dev-amd64: /usr/include/sys/cdefs.h

libnewlib-dev: /usr/include/newlib/sys/cdefs.h
libroot-core5.34: /usr/lib/i386-linux-gnu/root5.34/cint/include/sys/cdefs.h
mingw-w64-common: /usr/share/mingw-w64/include/sys/cdefs.h
mingw-w64-i686-dev: /usr/i686-w64-mingw32/include/sys/cdefs.h
mingw-w64-x86-64-dev: /usr/x86_64-w64-mingw32/include/sys/cdefs.h
msp430-libc: /usr/msp430/include/sys/cdefs.h


virtue_signaling.pngpalestine.png

En ligne

#3 15-12-2016 12:30:37

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Bonjour otyugh et merci de t'intéresser à cette question smile
malheureusement je suis bien en 32 bits
donc après installation de 'apt-file' et son 'apt-file update' :

apt-file search sys/cdefs.h
 



dietlibc-dev: /usr/include/diet/sys/cdefs.h
elks-libc: /usr/lib/bcc/include/sys/cdefs.h
freebsd-glue: /usr/include/freebsd/sys/cdefs.h
libbsd-dev: /usr/include/bsd/sys/cdefs.h
libc6-dev: /usr/include/i386-linux-gnu/sys/cdefs.h
libc6-dev-amd64: /usr/include/sys/cdefs.h
libnewlib-dev: /usr/include/newlib/sys/cdefs.h
libroot-core5.34: /usr/lib/i386-linux-gnu/root5.34/cint/include/sys/cdefs.h
mingw-w64-common: /usr/share/mingw-w64/include/sys/cdefs.h
mingw-w64-i686-dev: /usr/i686-w64-mingw32/include/sys/cdefs.h
mingw-w64-x86-64-dev: /usr/x86_64-w64-mingw32/include/sys/cdefs.h
msp430-libc: /usr/msp430/include/sys/cdefs.h
 

Hors ligne

#4 15-12-2016 12:36:00

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Hum, tu n'avais pas besoin d'installer apt-file (bien que ce soit utile hein, mais il regarde pas dans tes fichiers, mais dans tous ceux qui existent des paquets debian, donc forcément tu as la même chose que moi) >.>

Alors. Moi à ta place je ferai une commande bénine.

ln -s /usr/include/i386-linux-gnu/sys/cdefs.h  /usr/include/sys/cdefs.h



Si ça ne marche pas, supression : rm /usr/include/sys/cdefs.h


virtue_signaling.pngpalestine.png

En ligne

#5 15-12-2016 15:43:31

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

sans doute pas tout compris smile
à partir de la racine

ln -s /usr/include/i386-linux-gnu/sys/cdefs.h  /usr/include/sys/cdefs.h
 



ln: impossible de créer le lien symbolique « /usr/include/sys/cdefs.h »: Aucun fichier ou dossier de ce type
 

Dernière modification par debianux (15-12-2016 15:44:23)

Hors ligne

#6 15-12-2016 16:09:56

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Gâk.
C'est parce que /usr/include/sys/ n'existe pas. C'est sans danger de le créer.

mkdir -p /usr/include/sys/




Cependant je ne metterai pas trop d'espoir là-dessus quand même. L'avantage c'est qu'on casse rien au pire tongue


virtue_signaling.pngpalestine.png

En ligne

#7 15-12-2016 16:17:56

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

c'est pas faux ! smile
nous changeons d'erreur au re-lancement de la compil de zygrib:

In file included from /usr/include/features.h:374:0,
                 from /usr/include/stdlib.h:24,
                 from gridtemplates.c:1:
/usr/include/sys/cdefs.h:385:27: fatal error: bits/wordsize.h: Aucun fichier ou dossier de ce type
#include <bits/wordsize.h>

Hors ligne

#8 15-12-2016 16:27:02

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

locate 'wordsize.h'
 



/usr/include/i386-linux-gnu/bits/wordsize.h


est-ce que ce ne serait pas tout le répertoire 'sys' à lier à 'i386/sys' ?
possible ?
dangereux ? smile

Hors ligne

#9 15-12-2016 16:37:37

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

C'est possible. Pas dangereux, pourquoi ça le serait ? Au pire, erreurs et rien ne compile. Puis c'est facile de revenir sur ce qu'on a fait. Gogo test.

rm -r /usr/include/sys/
ln -s /usr/include/i386-linux-gnu/sys/  /usr/include/sys/


virtue_signaling.pngpalestine.png

En ligne

#10 15-12-2016 16:42:00

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

entre-temps, je me suis lancé (même pas peur, enfin un peu quand même ! smile)
et là on retombe sur l'erreur initiale

Hors ligne

#11 15-12-2016 16:49:49

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Hé. Ben du coup, game over pour moi. Ce truc cherche à se compiler en 64 bits, ça semble assez clair. Après je n'ai jamais écrit de code C spécifique à une architecture ou une autre, donc le comment ça marche m'échappe également. Tu peux essayer de modifier les librairies une à une vers les versions équivalentes 32 bit, mais le petit bidule qu'on a fait ensemble devait faire la même chose. Du coup. Gué né sééé pas.

Dernière modification par otyugh (15-12-2016 16:50:57)


virtue_signaling.pngpalestine.png

En ligne

#12 15-12-2016 16:52:19

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

en fait j'avais lié à 'i386-linux-gnu' car l'erreur suivante était lié au répertoire 'bits', extérieur à 'sys'
le contenu du '/usr/include/i386-linux-gnu' :

 ls -l
 



total 148
-rw-r--r--  1 root root  4350 sept.  5 08:12 a.out.h
drwxr-xr-x  2 root root  4096 déc.  14 12:24 asm
drwxr-xr-x  2 root root  4096 déc.  14 12:24 bits
drwxr-xr-x  3 root root  4096 déc.  14 12:24 c++
-rw-r--r--  1 root root  3583 sept.  5 08:12 fpu_control.h
-rw-r--r--  1 root root 83136 août  17  2014 gmp.h
drwxr-xr-x  2 root root  4096 déc.  14 12:24 gnu
-rw-r--r--  1 root root  4910 sept.  5 08:12 ieee754.h
-rw-r--r--  1 root root  1691 mars   8  2015 jconfig.h
drwxr-xr-x 14 root root  4096 déc.  14 12:25 qt5
drwxr-xr-x  2 root root  4096 déc.  14 12:24 sys
-rw-r--r--  1 root root 15472 nov.  27  2014 zconf.h
 


faudrait-il faire un lien pour toutes les erreurs rencontrées, donc suivant les répertoires sollicités ?

Hors ligne

#13 15-12-2016 16:55:15

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Je pensais que tu avais essayé ça. Du coup essaye ça. x)

rm -r /usr/include/sys/
ln -s /usr/include/i386-linux-gnu/sys/  /usr/include/sys/


virtue_signaling.pngpalestine.png

En ligne

#14 15-12-2016 16:56:37

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

j'ai essayé après mais comme l'erreur suivante est relative au répertoire 'bits'...

Hors ligne

#15 15-12-2016 17:07:37

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

ce qui m'étonne c'est que la même version (les mêmes sources) de zygrib se compile sans erreur avec le pc64bits et pourtant il n'y a pas non plus de ''/usr/include/sys'
mais un '/usr/include/x86_64-linux-gnu' contenant:

ls
 



a.out.h  bits  fpu_control.h  gnu  jconfig.h  sys
asm  c++   gmp.h        ieee754.h  qt5      zconf.h

Dernière modification par debianux (15-12-2016 17:08:13)

Hors ligne

#16 16-12-2016 15:52:33

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

toujours patinant dans la chouc... smile, j'ai ré-essayé, (pas de 'sys' dans 'include'):

ln -s /usr/include/i386-linux-gnu/sys/  /usr/include/sys/
 



ln: la cible « /usr/include/sys/ » n'est pas un répertoire: Aucun fichier ou dossier de ce type
 


raté quelque chose ?

Hors ligne

#17 16-12-2016 15:54:42

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

bon, j'ai créé 'include/sys' avant et là le lien est accepté smile

Hors ligne

#18 16-12-2016 15:59:08

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

après relance de la compilation, même erreur

make[1]: Entering directory '/home/jlg/zyGrib-8.0.1/src/g2clib'
gcc -c -O3 -g -m64 -I/nwprod/lib/include/ -DUSE_JPEG2000 -DUSE_PNG -D__64BIT__ gridtemplates.c
In file included from /usr/include/stdlib.h:24:0,
                 from gridtemplates.c:1:
/usr/include/features.h:374:25: fatal error: sys/cdefs.h: Aucun fichier ou dossier de ce type
#  include <sys/cdefs.h>
                         ^
compilation terminated.
makefile:89: recipe for target 'libg2c.a(gridtemplates.o)' failed
make[1]: *** [libg2c.a(gridtemplates.o)] Error 1

Hors ligne

#19 16-12-2016 16:09:33

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

file /usr/include/sys/cdefs.h


Si ça dit que ça trouve pas le fichier, c'est que ton problème est là >.>

Mais sinon tu adapte les #include, hein. Mais franchement, à ta place je serai un pewal pessimiste sur le résultat >.>

Dernière modification par otyugh (16-12-2016 16:16:37)


virtue_signaling.pngpalestine.png

En ligne

#20 16-12-2016 16:37:22

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

explorant la voie des liens 'successifs', je 'ligote' les suivants apparaissant à chaque essai de 'make' :

ln -s /usr/include/i386-linux-gnu/bits/wordsize.h /usr/include/bits/wordsize.h



ln -s /usr/include/i386-linux-gnu/gnu/stubs.h /usr/include/gnu/stubs.h



l'erreur suivante :

fatal error: gnu/stubs-64.h: Aucun fichier ou dossier de ce type
# include <gnu/stubs-64.h>



locate 'stubs-64.h'


qui n'a pas de réponse puisque le pc est en 32bit

à partir de '/usr/include/i386-linux-gnu/gnu' :

ls
 



libc-version.h  lib-names.h  stubs-32.h  stubs.h



cat stubs.h


/* This file is automatically generated.
   This file selects the right generated file of `__stub_FUNCTION' macros
   based on the architecture being compiled for.  */


#if !defined __x86_64__
# include <gnu/stubs-32.h>
#endif
#if defined __x86_64__ && defined __LP64__
# include <gnu/stubs-64.h>
#endif
#if defined __x86_64__ && defined __ILP32__
# include <gnu/stubs-x32.h>
#endif
 



cat stubs-32.h


/* This file is automatically generated.
   It defines a symbol `__stub_FUNCTION' for each function
   in the C library which is a stub, meaning it will fail
   every time called, usually setting errno to ENOSYS.  */

#ifdef _LIBC
# error Applications may not define the macro _LIBC
#endif

#define __stub_chflags
#define __stub_fattach
#define __stub_fchflags
#define __stub_fdetach
#define __stub_gtty
#define __stub_lchmod
#define __stub_revoke
#define __stub_setlogin
#define __stub_sigreturn
#define __stub_sstk
#define __stub_stty
 



y a-t-il quelque chose à faire avec tout ça ? smile

Hors ligne

#21 16-12-2016 16:41:31

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

bonjour otyugh !
'pessimiste' : donc l'application est censée être 'multiarch' mais en fait ne peut pas, en l'état, s'installer sur un 32 bits ?
serait-il possible de compiler sur un pc64bits pour fabriquer un '.deb'-32 bits ?

Hors ligne

#22 16-12-2016 17:27:54

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

Je ne sais pas trop ce que tu essaies de faire et à partir de quoi, hein, mais en général quand c'est le bordel comme ça, moi j'abandonne (ou pas si je souhaite vraiment aller jusqu'au bout yikes). Mais tu pourrais bien entendu continuer à linker des substitus de 32bit à ce qu'il demande en 64, tu n'a pas besoin de moi pour faire ça. Ptéte que ça marchera. Ptéte.
Là tu vois bien ce qu'il y a linker... Non ? Parce que si tu vois pas, tu faisais du chinois tout à l'heure tongue

Dernière modification par otyugh (16-12-2016 17:29:52)


virtue_signaling.pngpalestine.png

En ligne

#23 16-12-2016 17:49:54

raleur
Membre
Inscription : 03-10-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

debianux a écrit :

ln: la cible « /usr/include/sys/ » n'est pas un répertoire: Aucun fichier ou dossier de ce type


raté quelque chose ?


Oui : en mettant un / à la fin du chemin de la cible, tu indiques que c'est un répertoire dans lequel ln doit créer le lien, et non le nom du lien à créer.

debianux a écrit :

bon, j'ai créé 'include/sys' avant et là le lien est accepté


Si tu as créé /usr/include/sys en tant que répertoire, alors la commande a créé le lien /usr/include/sys/sys et non /usr/include/sys. Normal que l'erreur persiste.


Il vaut mieux montrer que raconter.

Hors ligne

#24 16-12-2016 19:20:59

debianux
Membre
Distrib. : debian-stretch-9.7_LVM-chiffré_dual-boot-uefi-w10
Noyau : Linux 4.9.0-8-amd64
(G)UI : Xfce 4.12
Inscription : 19-05-2014

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

@otyugh

ce que tu essaies de faire


j'essaie des 'trucs'
smile
j'ai repris chaque erreur l'une après l'autre et ai créé un 'ln' renvoyant vers le bon emplacement
jusqu'à la dernière erreur indiquée :

fatal error: gnu/stubs-64.h: Aucun fichier ou dossier de ce type
# include <gnu/stubs-64.h>


car là je ne peux plus continuer puisque je n'ai pas de 'stubs-64.h' sur le pc32bits...

. est-ce possible de l'y installer ?
. si, comme je le suppose, ce n'est pas possible et dans la mesure où je n'ai pas de réponse sur le site 'zygrib', est-il possible de 'fabriquer', sur le pc64bit puisque là l'installation se fait bien, un '.deb-32', installable sur le pc32 ?

@bonsoir raleur !
merci je n'avais pas compris le mode d'emploi smile

Hors ligne

#25 16-12-2016 19:25:05

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [resolu] compilation-32bit sur pc64, exemple zygrib

debianux a écrit :

car là je ne peux plus continuer puisque je n'ai pas de 'stubs-64.h' sur le pc32bits...


Ben si ? Un lien nommé stubs-64.h qui dirige vers stubs-32.h ; tu peux modifier la source directement aussi, le truc c'est si y a plein de référence à cette bilbiothèque ailleurs.


virtue_signaling.pngpalestine.png

En ligne

Pied de page des forums