Venant de la banquise, je cherche à comprendre le signification des
numéros de version sur les != BSD. Sachant qu'il ont tous leur origine
à peut près à la même époque( mis à part OpenBSD ) pour qui ont ils des
numéros de version si différents? Cela indique t'il l'état advancement
des != projets les uns par rapport aux autres ou s'agit il de politiques
de numérotation différentes?
Venant de la banquise, je cherche à comprendre le signification des
numéros de version sur les != BSD. Sachant qu'il ont tous leur origine
à peut près à la même époque( mis à part OpenBSD ) pour qui ont ils des
numéros de version si différents? Cela indique t'il l'état advancement
des != projets les uns par rapport aux autres ou s'agit il de politiques
de numérotation différentes?
Venant de la banquise, je cherche à comprendre le signification des
numéros de version sur les != BSD. Sachant qu'il ont tous leur origine
à peut près à la même époque( mis à part OpenBSD ) pour qui ont ils des
numéros de version si différents? Cela indique t'il l'état advancement
des != projets les uns par rapport aux autres ou s'agit il de politiques
de numérotation différentes?
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
Coté FreeBSD, le numero de majeur est incrémenté pour chaque release
majeure, c'est encore la numerotation la plus logique des 3. Donc,
FreeBSD 1.0, 2.0, 3.0, 4.0, 5.0
En résumé, dans le cas de FreeBSD, on discerne une association fine
entre le numéro de version de l'OS (qui est essentiellement un concept
de marketing) et le numéro de version de la libc, qui est une donnée
technique indispensable au bon fonctionnement. On ne voit pas la même
association dans le cas de NetBSD et OpenBSD.
En résumé, dans le cas de FreeBSD, on discerne une association fine
entre le numéro de version de l'OS (qui est essentiellement un concept
de marketing) et le numéro de version de la libc, qui est une donnée
technique indispensable au bon fonctionnement. On ne voit pas la même
association dans le cas de NetBSD et OpenBSD.
En résumé, dans le cas de FreeBSD, on discerne une association fine
entre le numéro de version de l'OS (qui est essentiellement un concept
de marketing) et le numéro de version de la libc, qui est une donnée
technique indispensable au bon fonctionnement. On ne voit pas la même
association dans le cas de NetBSD et OpenBSD.
"Donnée technique indispensable", est ce que tu n'y vas pas un peu fort?
"Donnée technique indispensable", est ce que tu n'y vas pas un peu fort?
"Donnée technique indispensable", est ce que tu n'y vas pas un peu fort?
Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
According to Manuel Bouyer :Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
Ceci est typiquement du "symbol versioning" géré au niveau source, donc
implémenté par le compilateur C (dont fait partie le préprocesseur, qui
fait probablement une bonne partie du boulot de renommage). Le "symbol
versioning" de Linux et Solaris est géré par le linker (le statique,
pour produire les entrées de tables de symbole qui vont bien, et le
dynamique, pour retrouver les bons morceaux lors de l'exécution).
Si NetBSD a choisi cette solution, alors il est bien possible qu'ils
résistent longtemps au "symbol versioning" du linker.
According to Manuel Bouyer <bouyer@nerim.net>:
Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
Ceci est typiquement du "symbol versioning" géré au niveau source, donc
implémenté par le compilateur C (dont fait partie le préprocesseur, qui
fait probablement une bonne partie du boulot de renommage). Le "symbol
versioning" de Linux et Solaris est géré par le linker (le statique,
pour produire les entrées de tables de symbole qui vont bien, et le
dynamique, pour retrouver les bons morceaux lors de l'exécution).
Si NetBSD a choisi cette solution, alors il est bien possible qu'ils
résistent longtemps au "symbol versioning" du linker.
According to Manuel Bouyer :Les changements incompatibles d'interfaces sont maintenant
traites par des renomage de symboles.
Par exemple, quand fstat a change, le symbole fstat de la libc utilise
toujours l'ancienne interface, et la nouvelle a ete apellee __fstat13.
/usr/include/sys/stat.h contient un alias pour que les programmes
compiles utilisent __fstat13 et non pas fstat:
int fstat __P((int, struct stat *)) __RENAME(__fstat13);
Ceci est typiquement du "symbol versioning" géré au niveau source, donc
implémenté par le compilateur C (dont fait partie le préprocesseur, qui
fait probablement une bonne partie du boulot de renommage). Le "symbol
versioning" de Linux et Solaris est géré par le linker (le statique,
pour produire les entrées de tables de symbole qui vont bien, et le
dynamique, pour retrouver les bons morceaux lors de l'exécution).
Si NetBSD a choisi cette solution, alors il est bien possible qu'ils
résistent longtemps au "symbol versioning" du linker.
C'est pas trop mon domaine, mais je pense que cette solution a ete choisie
parce qu'a l'epoque presque toute les plateformes etaient a.out.
En plus, je soupsonne que le faire comme ca fait moins de boulot pour le
linker, mais je peux me tromper.
C'est pas trop mon domaine, mais je pense que cette solution a ete choisie
parce qu'a l'epoque presque toute les plateformes etaient a.out.
En plus, je soupsonne que le faire comme ca fait moins de boulot pour le
linker, mais je peux me tromper.
C'est pas trop mon domaine, mais je pense que cette solution a ete choisie
parce qu'a l'epoque presque toute les plateformes etaient a.out.
En plus, je soupsonne que le faire comme ca fait moins de boulot pour le
linker, mais je peux me tromper.
Thomas Pornin wrote:l'information "fstat() est pour le moment un lien vers __fstat13()" n'est
disponible que dans un header C avec une syntaxe C.
Et un compilateur GNU, parce que suis pas certain que l'extension RENAME
soit ANSI...
Thomas Pornin <pornin@nerim.net> wrote:
l'information "fstat() est pour le moment un lien vers __fstat13()" n'est
disponible que dans un header C avec une syntaxe C.
Et un compilateur GNU, parce que suis pas certain que l'extension RENAME
soit ANSI...
Thomas Pornin wrote:l'information "fstat() est pour le moment un lien vers __fstat13()" n'est
disponible que dans un header C avec une syntaxe C.
Et un compilateur GNU, parce que suis pas certain que l'extension RENAME
soit ANSI...
Ce numéro de version est une donnée, elle est technique
(_d'ailleurs_, l'utilisateur n'en tient que rarement compte, ce qui
prouve bien qu'elle est destinée au logiciel et pas à l'utilisateur),
et elle est indispensable (il faut bien qu'il y ait un tel numéro, sinon
les applications ne se lancent pas).
Ce numéro de version est une donnée, elle est technique
(_d'ailleurs_, l'utilisateur n'en tient que rarement compte, ce qui
prouve bien qu'elle est destinée au logiciel et pas à l'utilisateur),
et elle est indispensable (il faut bien qu'il y ait un tel numéro, sinon
les applications ne se lancent pas).
Ce numéro de version est une donnée, elle est technique
(_d'ailleurs_, l'utilisateur n'en tient que rarement compte, ce qui
prouve bien qu'elle est destinée au logiciel et pas à l'utilisateur),
et elle est indispensable (il faut bien qu'il y ait un tel numéro, sinon
les applications ne se lancent pas).