J'ai un petit problème de compilation C à vous soumettre... Je viens
de me faire un voire deux noeuds au cerveau sans résultat. Un
programme que je développe utilise une libc patchée. J'aimerais que
le makefile correspondant utilise cette version de la libc, compilée
en statique. Problème, j'ai des bouts de code qui utilisent
la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques
coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne
trouvent pas stat, fstat et lstat).
2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne
pas.
Donc mon problème : soit une arboresence comme suit :
rpl
src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools
tools -> diverses bibliothèques liées à l'ancienne libc
(dynamiquement)
Comment s'en sortir ? Une idée ?
Merci d'avance,
JKB
--
En plus c'est simple, je fais ce genre de trucs en g77 depuis des années :
il suffit d'écrire un wrapper en C. Et comme ça, j'ai le meilleur des deux
mondes : la rigueur quasi-monacale du Fortran, et l'exubérance pétulante du C.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
l'indien
On Tue, 15 Mar 2005 15:26:02 +0000, JKB wrote:
Bonjour à tous,
J'ai un petit problème de compilation C à vous soumettre... Je viens de me faire un voire deux noeuds au cerveau sans résultat. Un programme que je développe utilise une libc patchée. J'aimerais que le makefile correspondant utilise cette version de la libc, compilée en statique. Problème, j'ai des bouts de code qui utilisent la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne trouvent pas stat, fstat et lstat). 2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne pas.
Donc mon problème : soit une arboresence comme suit :
rpl src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools tools -> diverses bibliothèques liées à l'ancienne libc (dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld n'esaiera pas de résoudre les symboles inexistants. Tu linkes le résultat avec la libc dynamique... Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur entre les 2 libc....
On Tue, 15 Mar 2005 15:26:02 +0000, JKB wrote:
Bonjour à tous,
J'ai un petit problème de compilation C à vous soumettre... Je viens
de me faire un voire deux noeuds au cerveau sans résultat. Un
programme que je développe utilise une libc patchée. J'aimerais que
le makefile correspondant utilise cette version de la libc, compilée
en statique. Problème, j'ai des bouts de code qui utilisent
la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques
coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne
trouvent pas stat, fstat et lstat).
2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne
pas.
Donc mon problème : soit une arboresence comme suit :
rpl
src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools
tools -> diverses bibliothèques liées à l'ancienne libc
(dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld
n'esaiera pas de résoudre les symboles inexistants.
Tu linkes le résultat avec la libc dynamique...
Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur
entre les 2 libc....
J'ai un petit problème de compilation C à vous soumettre... Je viens de me faire un voire deux noeuds au cerveau sans résultat. Un programme que je développe utilise une libc patchée. J'aimerais que le makefile correspondant utilise cette version de la libc, compilée en statique. Problème, j'ai des bouts de code qui utilisent la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne trouvent pas stat, fstat et lstat). 2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne pas.
Donc mon problème : soit une arboresence comme suit :
rpl src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools tools -> diverses bibliothèques liées à l'ancienne libc (dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld n'esaiera pas de résoudre les symboles inexistants. Tu linkes le résultat avec la libc dynamique... Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur entre les 2 libc....
JKB
Le 15-03-2005, à propos de Re: libc en statique (compilation C), l'indien écrivait dans fr.comp.os.linux.configuration :
On Tue, 15 Mar 2005 15:26:02 +0000, JKB wrote:
Bonjour à tous,
J'ai un petit problème de compilation C à vous soumettre... Je viens de me faire un voire deux noeuds au cerveau sans résultat. Un programme que je développe utilise une libc patchée. J'aimerais que le makefile correspondant utilise cette version de la libc, compilée en statique. Problème, j'ai des bouts de code qui utilisent la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne trouvent pas stat, fstat et lstat). 2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne pas.
Donc mon problème : soit une arboresence comme suit :
rpl src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools tools -> diverses bibliothèques liées à l'ancienne libc (dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld n'esaiera pas de résoudre les symboles inexistants. Tu linkes le résultat avec la libc dynamique... Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur entre les 2 libc....
C'est bien le problème... J'avais déjà essayé. J'ai trouvé une solution un peu batarde qui consiste à ressortir un bout de code d'un noyau BSD me permettant de générer mon checkpoint... Et en plus, ça a le bon goût d'être portable ;-)
JKB
-- En plus c'est simple, je fais ce genre de trucs en g77 depuis des années : il suffit d'écrire un wrapper en C. Et comme ça, j'ai le meilleur des deux mondes : la rigueur quasi-monacale du Fortran, et l'exubérance pétulante du C.
Le 15-03-2005, à propos de
Re: libc en statique (compilation C),
l'indien écrivait dans fr.comp.os.linux.configuration :
On Tue, 15 Mar 2005 15:26:02 +0000, JKB wrote:
Bonjour à tous,
J'ai un petit problème de compilation C à vous soumettre... Je viens
de me faire un voire deux noeuds au cerveau sans résultat. Un
programme que je développe utilise une libc patchée. J'aimerais que
le makefile correspondant utilise cette version de la libc, compilée
en statique. Problème, j'ai des bouts de code qui utilisent
la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques
coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne
trouvent pas stat, fstat et lstat).
2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne
pas.
Donc mon problème : soit une arboresence comme suit :
rpl
src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools
tools -> diverses bibliothèques liées à l'ancienne libc
(dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld
n'esaiera pas de résoudre les symboles inexistants.
Tu linkes le résultat avec la libc dynamique...
Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur
entre les 2 libc....
C'est bien le problème... J'avais déjà essayé. J'ai trouvé une
solution un peu batarde qui consiste à ressortir un bout de code
d'un noyau BSD me permettant de générer mon checkpoint... Et en
plus, ça a le bon goût d'être portable ;-)
JKB
--
En plus c'est simple, je fais ce genre de trucs en g77 depuis des années :
il suffit d'écrire un wrapper en C. Et comme ça, j'ai le meilleur des deux
mondes : la rigueur quasi-monacale du Fortran, et l'exubérance pétulante du C.
Le 15-03-2005, à propos de Re: libc en statique (compilation C), l'indien écrivait dans fr.comp.os.linux.configuration :
On Tue, 15 Mar 2005 15:26:02 +0000, JKB wrote:
Bonjour à tous,
J'ai un petit problème de compilation C à vous soumettre... Je viens de me faire un voire deux noeuds au cerveau sans résultat. Un programme que je développe utilise une libc patchée. J'aimerais que le makefile correspondant utilise cette version de la libc, compilée en statique. Problème, j'ai des bouts de code qui utilisent la version standard liée dynamiquement
1/ J'ai essayé l'option -nostdlib, mais certaines biblithèques coimpilées avec la _vraie_ libc provoquent des problèmes (elles ne trouvent pas stat, fstat et lstat). 2/ J'ai essayé de la lier dynamiquement, mais cela ne fonctionne pas.
Donc mon problème : soit une arboresence comme suit :
rpl src -> lié avec ma nouvelle libc et tout ce qui se trouve dans tools tools -> diverses bibliothèques liées à l'ancienne libc (dynamiquement)
Tu linkes d'abord avec ta libc statique, avec l'option -r comme celà ld n'esaiera pas de résoudre les symboles inexistants. Tu linkes le résultat avec la libc dynamique... Avec tous les risques que ça comporte en cas d'incompatibilité d'humeur entre les 2 libc....
C'est bien le problème... J'avais déjà essayé. J'ai trouvé une solution un peu batarde qui consiste à ressortir un bout de code d'un noyau BSD me permettant de générer mon checkpoint... Et en plus, ça a le bon goût d'être portable ;-)
JKB
-- En plus c'est simple, je fais ce genre de trucs en g77 depuis des années : il suffit d'écrire un wrapper en C. Et comme ça, j'ai le meilleur des deux mondes : la rigueur quasi-monacale du Fortran, et l'exubérance pétulante du C.