This file is indexed.

/usr/share/doc/HOWTO/fr-html/Glibc2-HOWTO.html is in doc-linux-fr-html 2013.01-3ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.72">
<title>HOWTO Glibc 2</title>
</head>
<body>
<h1>HOWTO Glibc 2</h1>
<h2>Eric Green, <code>ejg3@cornell.edu</code></h2>
v1.5, 8 février 1998
<hr>
<em><!--
Biblioth&egrave;que C  GNU (voir glibc)
-->
 <!--
glibc
-->
 (Maintenance de la version française par Géraud Canet,
<code>canet@labri.u-bordeaux.fr</code>) Le HOWTO Glibc 2 couvre
l'installation et l'utilisation de la bibliothèque C GNU version 2
(libc 6) sur les systèmes Linux.</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<h2><a name="ss1.1">1.1 Note du traducteur</a></h2>
<p>Ce document a été traduit et maintenu jusqu'à la version 1.4 par
Olivier Tharan, dont je ne fais que reprendre modestement le
travail.</p>
<p>Le document est truffé de signes "cabalistiques" comme des dièse
et des pourcent, dont la représentation en SGML est respectivement
<code>&amp;num;</code> et <code>&amp;percnt;</code> ; le source
LaTeX généré par les outils de conversion SGML introduit le signe
antislash devant ces signes et reste dans la version PostScript de
ce document. Les données d'exemple sont donc erronées, mais vous
pouvez vous rapporter à la version HTML du document qui n'a pas ces
erreurs. La version d'origine connait les mêmes problèmes.</p>
<h2><a name="ss1.2">1.2 À propos de glibc 2</a></h2>
<p><!--
glibc!vue d'ensemble
--></p>
<p>Glibc 2 est la toute dernière version de la bibliothèque C du
GNU. Elle fonctionne pour l'instant sans modifications sur les
systèmes GNU Hurd, et les systèmes Linux sur architectures i386,
m68k et alpha. Les adaptations pour Linux PowerPC, MIPS, Sparc,
Sparc 64 et ARM seront dans la version 2.1. À l'avenir, d'autres
architectures et systèmes d'exploitation seront supportés.</p>
<p>Sur Linux, glibc 2 est utilisée comme libc avec un numéro majeur
de version égal à 6, le successeur de la libc 5 pour Linux. Elle
est destinée par les développeurs de la libc Linux à remplacer en
fin de compte la libc 5. À l'heure de la version 2.0.6, on
considère que glibc est de qualité suffisante pour être utilisée en
production. La version 2.1 (à venir dans un futur proche) sera
prête pour une utilisation normale avec l'ajout de plus de portages
et de possibilités.</p>
<p>Il y a trois extensions disponibles en option sur la glibc 2
:</p>
<dl>
<dt><b>Crypt</b></dt>
<dd>
<p>Le paquetage UFC-crypt pour le cryptage des données. Il est
disponible séparément à cause de restrictions à l'exportation.</p>
</dd>
<dt><b>LinuxThreads</b></dt>
<dd>
<p>Une mise en oeuvre de l'interface Posix 1003.1c "pthread".</p>
</dd>
<dt><b>Locale data</b></dt>
<dd>
<p>Contient les données nécessaires à la construction des fichiers
de données locale pour utiliser les possibilités
d'internationalisation de la glibc.</p>
</dd>
</dl>
<p>Les extensions crypt et LinuxThreads sont fortement
recommandées... Ne pas les utiliser risque de les rendre
incompatibles avec les bibliothèques d'autres systèmes. (Si vous ne
voulez pas les utiliser, vous devez ajouter l'option
--disable-sanity-checks quand vous lancez configure.)</p>
<h2><a name="ss1.3">1.3 À propos de ce document</a></h2>
<p>Ce HOWTO couvre l'installation de la bibliothèque glibc 2 sur un
système Linux existant. Il est fait pour les utilisateurs de
systèmes à base de processeurs Intel qui utilisent pour l'instant
la libc 5, mais les utilisateurs d'autres systèmes et de
bibliothèques similaires (comme la glibc 1) devraient pouvoir
utiliser ces informations en substituant les noms de fichiers et
d'architecture adéquats aux endroits appropriés.</p>
<p>La copie la plus récente de ce HOWTO fait partie du <a href=
"http://sunsite.unc.edu/LDP">Linux Documentation Project</a>, ou
bien vous en trouverez une version à <a href=
"http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html">http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html</a>.</p>
<h2><a name="ss1.4">1.4 Changements récents dans ce
document</a></h2>
<p>Différences entre la version 1.5 et 1.4 :</p>
<ul>
<li>Indexage ajouté par Ed Bailey.</li>
<li>Changement de mon adresse électronique.</li>
</ul>
<p>Différences entre la version 1.4 et 1.3 :</p>
<ul>
<li>Changé l'état courant d'expérimental à production.</li>
<li>Mis à jour la liste des portages en développement.</li>
<li>Mis à jour la dernière version en 2.0.6.</li>
</ul>
<h2><a name="s2">2. Choix de la méthode d'installation</a></h2>
<p><!--
glibc!installation
--></p>
<p>Il y a plusieurs manières d'installer glibc. Vous pouvez
installer les bibliothèques pour les tester, en continuant
d'utiliser les bibliothèques existantes par défaut, tout en vous
permettant d'essayer les nouvelles bibliothèques par l'utilisation
d'options différentes à la compilation de votre programme.
L'installation de cette manière facilite aussi la désinstallation
de glibc dans le futur (cependant, tout programme lié avec la glibc
ne fonctionnera plus une fois que vous aurez enlevé les
bibliothèques). L'utilisation de glibc comme une bibliothèque de
test demande que vous compiliez les bibliothèques à partir des
sources. Il n'y a pas de distribution binaire pour l'installation
de cette manière. Cette installation est décrite dans la section
<a href="#test-install">installation comme bibliothèque de
test</a>.</p>
<p>L'autre manière de l'installer, décrite dans ce document, est
d'utiliser glibc comme bibliothèque principale. Tous les nouveaux
programmes que vous compilerez sur votre système utiliseront glibc,
bien que vous puissiez toujours lier des programmes à vos anciennes
bibliothèques par des options de compilation différentes. Vous
pouvez, soit installer les bibliothèques à partir de binaires, soit
compiler la bibliothèque vous-même. Si vous voulez changer les
options d'optimisation ou de configuration, ou utiliser une
extension qui n'est pas distribuée en paquetage binaire, vous
devrez obtenir la distribution de sources et compiler vous-même.
Cette procédure d'installation est décrite dans la section <a href=
"#primary-install">installation comme bibliothèque C
principale</a>.</p>
<p>Frodo Looijaard décrit encore une autre manière d'installer
glibc. Sa méthode implique l'installation de glibc comme
bibliothèque secondaire et la mise en place d'un compilateur croisé
(<i>cross-compiler</i>) pour compiler en utilisant glibc. Pour
cette méthode, la procédure d'installation est plus compliquée que
l'installation en tant que bibliothèque de test décrite dans ce
document, mais facilite la compilation et l'édition de liens avec
glibc. Cette méthode est décrite dans son document <a href=
"http://huizen.dds.nl/~frodol/glibc/">Installer glibc-2 sur
Linux</a> (en anglais).</p>
<p>Si vous utilisez en ce moment un système Debian 1.3 et ne voulez
pas le mettre à jour en installant la version instable de Debian
pour utiliser glibc, le <a href=
"http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html">HOWTO
libc5 vers libc6 Debian</a> décrit la manière d'utiliser les
paquetages Debian pour mettre votre système à jour.</p>
<p>Si vous installez glibc 2 sur un système important, vous voudrez
sans doute utiliser l'installation de test. Même s'il n'y a pas de
bogues, certains programmes devront être modifiés avant compilation
à cause de changements dans les prototypes de fonctions et les
types de données.</p>
<h2><a name="getting"></a> <a name="s3">3. Obtenir la
bibliothèque</a></h2>
<p><!--
glibc!obtention
--></p>
<p>La glibc 2 contient le paquetage glibc et trois paquetages
supplémentaires optionnels, LinuxThreads, Locale et Crypt. Vous
pouvez trouver les sources à</p>
<ul>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz</a></li>
</ul>
<p>Il vous faudra à peu près 150 Mo d'espace disque pour la
compilation complète et l'installation. L'installation binaire de
base du paquetage de la bibliothèque prend aux alentours de 50
Mo.</p>
<p>Les paquetages binaires pour la version 2.0.6 ne sont pas
disponibles. Les paquetages binaires pour la version 2.0.4 sont
disponibles pour i386 et m68k, et la version 2.0.1 pour les alpha,
vous les trouverez à</p>
<ul>
<li>Intel x86:
<ul>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386.tar.gz</a></li>
</ul>
</li>
<li>Alpha:
<ul>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha-linux.tar.gz">
ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha-linux.tar.gz</a></li>
</ul>
</li>
<li>m68k:
<ul>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin.tar.gz">ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin.tar.gz</a></li>
<li><a href=
"ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linux.bin.tar.gz">
ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linux.bin.tar.gz</a></li>
</ul>
</li>
</ul>
<p>Il y a des restrictions à l'exportation de l'extension crypt.
Les utilisateurs non-ressortissants des États-Unis devraient
l'obtenir à <a href=
"ftp://ftp.ifi.uio.no/pub/gnu">ftp://ftp.ifi.uio.no/pub/gnu</a>.</p>
<p>Si vous utilisez une distribution Red Hat, vous pouvez obtenir
les RPMs pour la glibc 2 à <a href=
"ftp://ftp.redhat.com/pub/redhat/">ftp://ftp.redhat.com/pub/redhat/</a>.
La glibc 2 est la bibliothèque C principale de la nouvelle
distribution Red Hat 5.0.</p>
<p>Si vous utilisez une distribution Debian, vous pouvez obtenir
les paquetages pour glibc 2 à <a href=
"ftp://ftp.debian.org/debian/dists/unstable/main/">ftp://ftp.debian.org/debian/dists/unstable/main/</a>.
Les fichiers sont nommés libc6. Glibc 2 fait maintenant partie du
paquetage de base de la version hamm de Debian, et sera la libc
principale quand Debian 2.0 sortira.</p>
<h2><a name="test-install"></a> <a name="s4">4. Installation comme
bibliothèque de test</a></h2>
<p><!--
glibc!test
--></p>
<p>Cette section couvre l'installation de glibc 2 comme
bibliothèque de test. Tout ce que vous compilerez sera lié à vos
bibliothèques existantes sauf si vous donnez des paramètres
supplémentaires pour les lier aux nouvelles bibliothèques. Il
semble que les chemins d'accès soient compilés dans un certain
nombre de fichiers, et vous devrez probablement installer la
bibliothèque à partir des sources.</p>
<h2><a name="ss4.1">4.1 Compilation et installation</a></h2>
<h3>Éléments requis</h3>
<p><!--
glibc!test!&eacute;l&eacute;ments requis
--></p>
<ul>
<li>À peu pres 150 Mo d'espace disque libre</li>
<li>GNU make 3.75</li>
<li>gcc &gt;= 2.7.2 (ou mieux, 2.7.2.1)</li>
<li>binutils 2.8.1 (pour les alpha vous devez utiliser une mise à
jour temporaire ou <i>snapshot</i>)</li>
<li>bash 2.0</li>
<li>autoconf 2.12 (si vous changez configure.in)</li>
<li>texinfo 3.11</li>
</ul>
<p>Sur un i586 à 133 MHz avec 64 Mo de RAM, il faut environ trois
heures pour compiler les bibliothèques complètes avec les
extensions. Sur un i686 à 200 MHz chargé, il faut environ une
demi-heure.</p>
<h3>Extraction des sources</h3>
<p><!--
glibc!test!sources, extraction
--></p>
<p>Vous devez extraire les sources des archives pour pouvoir les
compiler. La meilleure façon de procéder est de faire ainsi :</p>
<blockquote>
<pre><code>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 
</code></pre></blockquote>
<p>Ceci mettra les répertoires linuxthreads, crypt et localedate
dans le répertoire glibc-2.0.6 où configure pourra trouver ces
extensions.</p>
<h3>Configuration</h3>
<p><!--
glibc!test!configuration
--></p>
<p>Dans le répertoire glibc-2.0.6, créez un répertoire appelé
compile, et déplacez-vous dedans. Tout le travail doit être
effectué dans ce répertoire, ce qui simplifiera le nettoyage (les
développeurs ne se sont pas très occupés de rendre 'make clean'
parfait pour l'instant).</p>
<blockquote>
<pre><code>
 mkdir compile
 cd compile
 
</code></pre></blockquote>
<p>Lancez <code>../configure</code>. Pour utiliser les paquetages
d'extension, vous devez les spécifier avec --enable-add-ons, comme
--enable-add-ons=linuxthreads,crypt,localedata. Vous devez aussi
choisir un répertoire de destination pour l'installation.
/usr/i486-linuxglibc2 est un bon choix. La ligne de commande de
configure pour ceci serait :</p>
<blockquote>
<pre><code>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2
 
</code></pre></blockquote>
<h3>Compilation et installation</h3>
<p><!--
glibc!test!compilation
-->
 <!--
glibc!test!installation
--></p>
<p>Pour compiler et vérifier, lancez :</p>
<blockquote>
<pre><code>
 make
 make check
 
</code></pre></blockquote>
<p>Si le 'make check' réussit, installez la bibliothèque :</p>
<blockquote>
<pre><code>
 make install
 
</code></pre></blockquote>
<h2><a name="ss4.2">4.2 Mise à jour du chargeur de liens
dynamique</a></h2>
<p><!--
glibc!test!chargeur de liens dynamique, mise &agrave; jour
-->
 <!--
glibc!test!ld.so.conf, mise &agrave; jour
--></p>
<ol>
<li>Créez un lien à partir du nouvel <code>ld.so</code> vers
<code>/lib/ld-linux.so.2</code> :
<blockquote>
<pre><code>
 ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2
 
</code></pre></blockquote>
C'est la seule bibliothèque dont l'emplacement est fixé une fois
qu'un programme est lié, et l'utilisation d'un lien dans
<code>/lib</code> facilitera le passage à glibc en tant que
bibliothèque C principale quand la version stable sortira.</li>
<li>Éditez <code>/etc/ld.so.conf</code>. Vous devez ajouter le
chemin vers le répertoire lib dans lequel se trouvent les nouvelles
bibliothèques à la fin du fichier, qui sera
<code>&lt;préfixe&gt;/lib</code>, comme
<code>/usr/i486-linuxglibc2/lib</code> dans l'exemple ci-dessus.
Après avoir modifié <code>/etc/ld.so.conf</code>, lancez
<blockquote>
<pre><code>
 ldconfig -v
 
</code></pre></blockquote>
</li>
</ol>
<h2><a name="ss4.3">4.3 Configuration pour gcc</a></h2>
<p><!--
glibc!test!configuration de gcc
--></p>
<p>La dernière étape de l'installation est la mise à jour de
<code>/usr/lib/gcc-lib</code> pour que gcc sache comment utiliser
les nouvelles bibliothèques. D'abord vous devez dupliquer la
configuration existante. Pour savoir quelle est la configuration en
cours, utilisez l'option -v de gcc :</p>
<blockquote>
<pre><code>
 % gcc -v
 Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 
</code></pre></blockquote>
<p>Dans ce cas, i486-unknown-linux est le système, et 2.7.2.2 est
la version. Vous devez copier
<code>/usr/lib/gcc-lib/&lt;système&gt;</code> vers le nouveau
répertoire système de test :</p>
<blockquote>
<pre><code>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxglibc2
 
</code></pre></blockquote>
<p>Allez dans le nouveau répertoire système de test et dans le
répertoire version</p>
<blockquote>
<pre><code>
 cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
 
</code></pre></blockquote>
<p>et éditez le fichier <code>specs</code> se trouvant dans ce
répertoire. Dans ce fichier, changez
<code>/lib/ld-linux.so.1</code> en <code>/lib/ld-linux.so.2</code>.
Vous devrez aussi enlever toutes les expressions
<code>%{...:-lgmon}</code> du fichier, puisque glibc n'utilise pas
la bibliothèque gmon pour les optimisations. Vous trouverez un
fichier specs d'exemple dans la section <a href="#specs">Fichiers
specs d'exemple</a>.</p>
<h2><a name="ss4.4">4.4 Mise à jour des liens des fichiers
d'en-tête</a></h2>
<p><!--
glibc!test!fichiers d'en-t&ecirc;te, mise &agrave; jour
--></p>
<p>Vous devez créer des liens dans votre nouveau répertoire
d'en-têtes vers d'autres répertoires d'en-têtes :</p>
<blockquote>
<pre><code>
 cd /usr/i486-linuxglibc2/include
 ln -s /usr/src/linux/include/linux
 ln -s /usr/src/linux/include/asm
 ln -s /usr/X11R6/include/X11
 
</code></pre></blockquote>
<p>Vous avez peut-être d'autres bibliothèques comme ncurses qui
nécessitent d'avoir leurs fichiers d'en-têtes dans ce répertoire.
Vous devriez copier ou faire un lien vers ces fichiers depuis
<code>/usr/include</code>. (Certaines bibliothèques auront besoin
d'être recompilées avec glibc2 pour pouvoir fonctionner avec
glibc2. Dans ces cas, compilez simplement et installez les
paquetages dans <code>/usr/i486-linuxglibc2</code>.)</p>
<h2><a name="ss4.5">4.5 Test de l'installation</a></h2>
<p><!--
glibc!test
--></p>
<p>Pour tester l'installation, créez le programme suivant dans un
fichier appelé glibc.c :</p>
<blockquote>
<pre><code>
 #include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 
</code></pre></blockquote>
<p>et compilez-le avec les options "-b &lt;répertoire
d'installation&gt; -nostdinc -I&lt;répertoire
d'installation&gt;/include -I/usr/lib/gcc-lib/&lt;nouveau
système&gt;/&lt;version de gcc&gt;/include" :</p>
<blockquote>
<pre><code>
 % gcc -b i486-linuxglibc2 -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include glibc.c -o glibc
 
</code></pre></blockquote>
<p>Utilisez ldd pour vérifier que le programme a été lié avec
glibc2, et non avec votre ancienne libc :</p>
<blockquote>
<pre><code>
 % ldd glibc
 libc.so.6 =&gt; /usr/i486-linuxglibc2/lib/libc-2.0.6.so (0x4000d000)
 /lib/ld-linux.so.2 =&gt; /lib/ld-linux.so.2 (0x40000000)
 
</code></pre></blockquote>
<p>S'il compile, que les liens sont effectués et qu'il génère
"hello world!" quand vous le lancez, l'installation a
fonctionné.</p>
<h2><a name="primary-install"></a> <a name="s5">5. Installation
comme bibliothèque C principale</a></h2>
<p><!--
glibc!installation
--></p>
<p>Cette section couvre l'installation de glibc2 comme bibliothèque
C principale. Tous les nouveaux programmes que vous compilerez
seront liés avec cette bibliothèque, sauf si vous utilisez des
options de compilation spéciales pour le lier avec une autre
version.</p>
<p>Si vous utilisez Redhat ou Debian et avez chargé les fichier rpm
ou deb adéquats, voyez les instructions d'installation Redhat ou
Debian. Vous pouvez alors sauter cette section.</p>
<h2><a name="compiling"></a> <a name="ss5.1">5.1 Construction de la
bibliothèque à partir des sources</a></h2>
<p><!--
glibc!installation!compilation
--></p>
<p>Cette section explique comment compiler glibc 2 et ses
extensions à partir des sources. Vous devez compiler la
bibliothèque si vous voulez changer les options d'optimisation ou
de configuration ou utiliser un paquetage pour lequel vous n'avez
pas de binaire.</p>
<h3>Éléments requis</h3>
<p><!--
glibc!installation!&eacute;l&eacute;ments requis
--></p>
<ul>
<li>Environ 150 Mo d'espace disque libre</li>
<li>GNU make 3.75</li>
<li>gcc &gt;= 2.7.2 (ou mieux, 2.7.2.1)</li>
<li>binutils 2.8.1 (pour les alpha vous aurez besoin d'une version
'snapshot')</li>
<li>bash 2.0</li>
<li>autoconf 2.12 (si vous changez configure.in)</li>
<li>texinfo 3.11</li>
</ul>
<p>Sur un i586 à 133 MHz avec 64 Mo de RAM, il faut environ trois
heures pour compiler toutes les bibliothèques avec les extensions.
Sur un i686 à 200 MHz chargé, il faut environ une demi-heure.</p>
<h3>Extraction des sources</h3>
<p><!--
glibc!installation!sources, extraction
--></p>
<p>Vous devez extraire les sources des archives pour compiler. La
meilleure façon de le faire est ainsi :</p>
<blockquote>
<pre><code>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 
</code></pre></blockquote>
<p>Ceci mettra les répertoires linuxthreads, crypt et localedata
dans le répertoire glibc-2.0.6 où configure pourra trouver ces
extensions.</p>
<h3>Configuration</h3>
<p><!--
glibc!installation!configuration
--></p>
<p>Dans le répertoire <code>glibc-2.0.6</code>, créez un répertoire
nommé compile, et allez dedans. Tout le travail sera fait dans ce
répertoire, ce qui simplifiera le nettoyage (les développeurs ne se
sont pas vraiment soucié du 'make clean' pour l'instant).</p>
<blockquote>
<pre><code>
mkdir compile
cd compile
</code></pre></blockquote>
<p>Lancez <code>../configure</code>. Pour utiliser les paquetages
supplémentaires, vous devez les spécifier avec --enable-add-ons,
comme --enable-add-ons=linuxthreads,crypt,localedata. Vous devrez
aussi sûrement spécifier les chemins où elle sera installée. Pour
coller aux distributions Linux normales, spécifiez --prefix=/usr.
(Quand on spécifie le préfixe <code>/usr</code> sur un système
Linux, configure sait ajuster les autres chemins pour placer
libc.so et d'autres bibliothèques importantes dans
<code>/lib</code>.) La ligne de commande complète de configure
serait :</p>
<blockquote>
<pre><code>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr
</code></pre></blockquote>
<h3>Compilation</h3>
<p><!--
glibc!installation!compilation
--></p>
<p>Pour compiler et vérifier, lancez :</p>
<blockquote>
<pre><code>
 make
 make check
 
</code></pre></blockquote>
<h2><a name="ss5.2">5.2 Préparation à l'installation</a></h2>
<p><!--
glibc!installation!preparation pour
--></p>
<p>Vous devez maintenant déplacer certains fichiers pour vous
préparer à l'arrivée de la nouvelle bibliothèque, que vous
l'installiez à partir des sources ou de binaires. Tous les nouveaux
programmes compilés seront liés à glibc, mais les vieux programmes
qui ne sont pas liés en statique dépendront encore de libc 5, et
vous ne pouvez donc pas écraser l'ancienne version.</p>
<ol>
<li>Créez un nouveau répertoire pour y mettre les anciens fichiers
:
<blockquote>
<pre><code>
 mkdir -p /usr/i486-linuxlibc5/lib
 
</code></pre></blockquote>
</li>
<li>Les vieux fichiers d'en-tête doivent être évacués de
<code>/usr/include</code> :
<blockquote>
<pre><code>
 mv /usr/include /usr/i486-linuxlibc5/include
 
</code></pre></blockquote>
</li>
<li>Créez un nouveau répertoire d'en-têtes et activez les liens
vers d'autres en-têtes :
<blockquote>
<pre><code>
 mkdir /usr/include

 ln -s /usr/src/linux/include/linux /usr/include/linux
 ln -s /usr/src/linux/include/asm /usr/include/asm
 ln -s /usr/X11R6/include/X11 /usr/include/X11
 ln -s /usr/lib/g++-include /usr/include/g++
 
</code></pre></blockquote>
Les liens devront être ajustés au besoin selon votre distribution.
Rien que la Slackware installe les en-têtes g++ dans
<code>/usr/local/g++-include</code>, alors que Debian met les
en-têtes dans <code>/usr/include/g++</code>, et fait un lien de
<code>/usr/lib/g++-include</code> vers
<code>/usr/include/g++</code>. Dans d'autres cas, vous voudrez
sûrement déplacer le répertoire d'en-têtes g++ d'origine à son
ancien emplacement <code>/usr/include</code>.</li>
<li>Remettre des fichiers d'en-têtes et des liens supplémentaires.
Certaines bibliothèques non standards comme ncurses installent des
fichiers dans <code>/usr/include</code> ou installent un lien vers
leur répertoire d'en-tête dans <code>/usr/include</code>. Ces
fichiers et liens doivent être remis en place pour pouvoir utiliser
les bibliothèques supplémentaires correctement.</li>
<li>Ajoutez le nouveau répertoire de bibliothèque (comme
<code>/usr/i486-linuxlibc5/lib</code>) <em>en haut</em> de votre
fichier <code>/etc/ld.so.conf</code>. Vous devriez avoir
ld.so-1.8.8 ou mieux installé pour éviter d'avoir des messages
bizarres une fois que glibc sera installée.</li>
<li>Déplacez ou copiez toutes les anciennes bibliothèques C dans le
nouveau répertoire.
<blockquote>
<pre><code>
 mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
 cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
 cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
 
</code></pre></blockquote>
<code>libm.so.5</code> et <code>libc.so.5</code> doivent être
copiées et non déplacées si <code>/usr</code> est une partition
différente de <code>/</code>, parce qu'elles sont nécessaires aux
programmes utilisés pour démarrer Linux et doivent être situées sur
la partition racine.</li>
<li>Déplacez les fichiers <code>/usr/lib/*.o</code> dans le nouveau
répertoire.
<blockquote>
<pre><code>
 mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
 
</code></pre></blockquote>
</li>
<li>Mettez à jour votre cache de bibliothèque après avoir déplacé
vos bibliothèques.
<blockquote>
<pre><code>
 ldconfig -v
 
</code></pre></blockquote>
</li>
</ol>
<h2><a name="ss5.3">5.3 Installation à partir du paquetage
binaire</a></h2>
<p><!--
glibc!installation!binaires pr&eacute;-compil&eacute;s
--></p>
<p>Si vous installez glibc à partir de binaires précompilés, vous
devez :</p>
<blockquote>
<pre><code>
 cd /
 gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
 gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
 ldconfig -v
 
</code></pre></blockquote>
<p>Si vous avez une architecure ou une version différente,
substituez les noms de fichiers adéquats.</p>
<h2><a name="ss5.4">5.4 Installation à partir des sources</a></h2>
<p><!--
glibc!installation!&agrave; partir des sources
--></p>
<p>Pour installer la bibliothèque à partir des sources, lancez
:</p>
<blockquote>
<pre><code>
 make install
 ldconfig -v
 
</code></pre></blockquote>
<h2><a name="ss5.5">5.5 Mise à jour des specs gcc</a></h2>
<p><!--
glibc!installation!fichier de specs gcc, mise &agrave; jour
--></p>
<p>L'étape finale de l'installation (à la fois pour les
installations binaires et sources) est de mettre à jour le fichier
<code>specs</code> de gcc pour que vous puissiez lier vos
programmes proprement. Pour déterminer quel fichier specs est
utilisé par gcc, lancez :</p>
<blockquote>
<pre><code>
 % gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 
</code></pre></blockquote>
<p>Dans ce cas, i486-unknown-linux est le système, et 2.7.2.2 est
la version. Vous devez copier
<code>/usr/lib/gcc-lib/&lt;système&gt;</code> dans l'ancien
répertoire système :</p>
<blockquote>
<pre><code>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 
</code></pre></blockquote>
<p>Allez dans le répertoire d'origine et dans le répertoire de
version</p>
<blockquote>
<pre><code>
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 
</code></pre></blockquote>
<p>et éditez le fichier <code>specs</code> que vous y trouverez.
Dans ce fichier, changez <code>/lib/ld-linux.so.1</code> en
<code>/lib/ld-linux.so.2</code>. Vous devrez aussi enlever toutes
les expressions <code>%{...:-lgmon}</code> de ce fichier, puisque
glibc n'utilise pas la bibliothèque gmon pour les optimisations. Un
fichier specs d'exemple se trouve dans la section <a href=
"#specs">fichiers specs d'exemple</a>.</p>
<h2><a name="ss5.6">5.6 Test de l'installation</a></h2>
<p><!--
glibc!installation!test
--></p>
<p>Pour tester l'installation, créez le programme suivant dans un
fichier appelé glibc.c :</p>
<blockquote>
<pre><code>
 #include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 
</code></pre></blockquote>
<p>et compilez le programme.</p>
<blockquote>
<pre><code>
 % gcc glibc.c -o glibc
 
</code></pre></blockquote>
<p>Utilisez ldd pour vérifier que le programme a été lié avec
glibc2, et non avec votre ancienne libc :</p>
<blockquote>
<pre><code>
 % ldd glibc
 libc.so.6 =&gt; /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 =&gt; /lib/ld-linux.so.2 (0x40000000)
 
</code></pre></blockquote>
<p>Si ça compile et que ça génère "hello world!" quand vous le
lancez, l'installation est réussie.</p>
<h2><a name="s6">6. Compilation avec la libc non
principale</a></h2>
<p><!--
glibc!compilation avec une autre biblioth&egrave;que
--></p>
<p>Il y a des fois où vous voudrez utiliser une bibliothèque
différente pour compiler vos programmes. Cette section explique
comment faire, en utilisant les noms de répertoires et
d'installation utilisés dans les exemples des deux sections
précédentes. Souvenez-vous de changer les noms pour coller à votre
configuration.</p>
<h2><a name="ss6.1">6.1 Avertissement concernant l'utilisation de
libcs non principales</a></h2>
<p><!--
glibc!compilation avec une autre biblioth&egrave;que!avertissement
--></p>
<p>Avant de compiler un programme utilisé dans le processus de
démarrage, rappelez-vous que si le programme est lié dynamiquement,
et est utilisé avant que les partitions non-racines soient montées,
toutes les bibliothèques liées doivent être sur la partition
racine. En suivant la procédure d'installation de la section
précédente pour installer glibc comme bibliothèque C principale, la
vieille libc reste dans <code>/lib</code>, qui sera sur votre
partition racine. Ceci veut dire que tous vos programmes
fonctionneront encore lors du démarrage. Cependant, si
<code>/usr</code> est sur une partition différente et que vous
installez glibc comme bibliothèque de test dans
<code>/usr/i486-linuxglibc2</code>, tous les nouveaux programmes
que vous compilerez avec glibc ne fonctionneront pas tant que la
partition <code>/usr</code> ne sera pas montée.</p>
<h2><a name="ss6.2">6.2 Compilation des programmes avec une glibc
de test</a></h2>
<p><!--
glibc!compilation avec une autre biblioth&egrave;que!glibc
--></p>
<p>Pour compiler un programme avec glibc en installation de test,
vous devez mettre à zéro les chemins d'en-tête pour qu'ils pointent
vers les en-têtes glibc. En spécifiant "-nostdinc", vous annulerez
les chemins normaux, et "-I/usr/i486-linuxglibc2/include" pointera
vers les entêtes de glibc. Vous devrez aussi spécifier les en-têtes
gcc, que l'on trouve dans
<code>/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include</code> (en
supposant que vous ayez installé la bibliothèque de test dans
i486-linuxglibc2 avec gcc version 2.7.2.2).</p>
<p>Pour lier un programme à une glibc de test, vous devez spécifier
la configuration gcc. Vous le faites avec l'option "-b
i486-linuxglibc2".</p>
<p>Pour la plupart des programmes, vous pouvez spécifier ces
nouvelles options en les ajoutant aux options de makefile
<code>$CFLAGS</code> et <code>$LDFLAGS</code> :</p>
<blockquote>
<pre><code>
 CFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -b i486-linuxglibc2
 LDFLAGS = -b i486-linuxglibc2
 
</code></pre></blockquote>
<p>Si vous utilisez un script configure, définissez les variables
shell <code>$CFLAGS</code> et <code>$LDFLAGS</code> (en utilisant
env/setenv pour csh/tcsh ou set/export pour sh/bash/etc) avant de
lancer configure. Les makefiles générés par celui-ci devraient
contenir les variables <code>$CFLAGS</code> et
<code>$LDFLAGS</code> correctes. Tous les scripts configure ne
tiendront pas compte des variables, et par conséquent vous devriez
vérifier après avoir lancé configure et éditer les makefiles à la
main si nécessaire.</p>
<p>Si les programmes que vous compilez n'appellent que gcc (et pas
cpp ou les binutils directement), vous pouvez utiliser le script
suivant pour économiser la spécification des options à chaque fois
:</p>
<blockquote>
<pre><code>
 #!/bin/bash
 /usr/bin/gcc -b i486-linuxglibc2 -nostdinc \
              -I/usr/i486-linuxglibc2/include \
              -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include "$@"
 
</code></pre></blockquote>
<p>Vous pourrez alors utiliser ce script à la place de "gcc" pour
compiler.</p>
<h2><a name="ss6.3">6.3 Compilation des programmes avec libc 5
quand glibc est la bibliothèque principale</a></h2>
<p><!--
glibc!compilation avec une autre biblioth&egrave;que!libc 5
--></p>
<p>Pour compiler un programme avec vos anciennes bibliothèques
quand vous avez installé glibc comme bibliothèque principale, vous
devez mettre à zéro les chemins d'en-têtes vers les anciennes
en-têtes. En spécifiant "-nostdinc", vous annulerez les chemins
normaux et "-I/usr/i486-linuxlibc5/include" pointera vers les
en-têtes libc 5. Vous devez aussi indiquer
"-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include" pour inclure
les en-têtes spécifiques à gcc. Rappelez-vous d'ajuster ces chemins
selon la manière dont vous avez nommé les nouveaux répertoires et
selon votre version de gcc.</p>
<p>Pour lier un programme à votre ancienne libc, vous devez
spécifier la configuration de gcc. Vous le faites en utilisant
l'option "-b i486-linuxlibc5".</p>
<p>Pour la plupart des programmes, vous pouvez indiquer ces
nouvelles options en les ajoutant aux options de makefile
<code>$CFLAGS</code> et <code>$LDFLAGS</code> :</p>
<blockquote>
<pre><code>
 CFLAGS = -nostdinc -I/usr/i486-linuxlibc5/include -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include -b i486-linuxlibc5
 LDFLAGS = -b i486-linuxlibc5
 
</code></pre></blockquote>
<p>Si vous utilisez un script configure, définissez les variables
shell <code>$CFLAGS</code> et <code>$LDFLAGS</code> (en utilisant
env/setenv pour csh/tcsh, ou set/export pour sh/bash/etc) avant de
lancer configure. Les makefiles générés par celui-ci devraient
contenir les variables <code>$CFLAGS</code> et
<code>$LDFLAGS</code> corrects. Tous les scripts configure ne
verront pas les variables, et vous devriez donc vérifier après
avoir lancé configure et éditer les makefiles si nécessaire.</p>
<p>Si les programmes que vous compilez n'appellent que gcc (et pas
cpp ou binutils directement), vous pouvez utiliser le script
suivant pour éviter de devoir indiquer toutes les options à chaque
fois :</p>
<blockquote>
<pre><code>
 #!/bin/bash
 /usr/bin/gcc -b i486-linuxlibc5 -nostdinc \
              -I/usr/i486-linuxlibc5/include \
              -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include "$@"
 
</code></pre></blockquote>
<p>Vous pouvez alors utiliser ce script à la place de "gcc" pour la
compilation.</p>
<h2><a name="s7">7. Compilation des programmes C++</a></h2>
<p><!--
glibc!programmes C++, compilation
--></p>
<p>Libg++ utilise des parties de la bibliothèque mathématique, elle
est donc liée à libm. Puisque votre bibliothèque libg++ existante
aura été compilée avec votre ancienne bibliothèque, vous devrez
recompiler libg++ avec glibc ou obtenir une copie binaire. Les
dernières sources de libg++, en même temps qu'un binaire lié à
glibc (pour x86) se trouvent à <a href=
"ftp://ftp.yggdrasil.com/private/hjl/">ftp://ftp.yggdrasil.com/private/hjl/</a>.</p>
<h2><a name="ss7.1">7.1 Installation de libg++ pour une
installation glibc de test</a></h2>
<p><!--
glibc!libg++, installation!comme biblioth&egrave;que de test
--></p>
<p>Si vous avez installé glibc comme bibliothèque de test, vous
devez installer les fichiers dans le répertoire dans lequel vous
avez installé glibc (comme <code>/usr/i486-linuxglibc2</code> pour
l'exemple des sections précédentes). Si vous installez à partir du
paquetage binaire (ce que je recommanderais, puisque je n'ai jamais
eu de chance pour compiler libg++ de cette manière), vous devez
extraire les fichiers dans un répertoire temporaire et déplacer
tous les fichiers <code>usr/lib/</code> dans le répertoire
<code>&lt;répertoire install&gt;/lib/</code>, les fichiers
<code>usr/include/</code> dans le répertoire <code>&lt;répertoire
install&gt;/include/</code> (rappelez-vous d'effacer le lien
<code>include/g++</code> avant !), et les fichiers
<code>usr/bin/</code> dans le répertoire <code>&lt;répertoire
install&gt;/bin/</code>.</p>
<h2><a name="ss7.2">7.2 Installation de libg++ pour une
installation glibc principale</a></h2>
<p><!--
glibc!libg++, installation!comme biblioth&egrave;que primaire
--></p>
<p>Si vous avez installé glibc comme bibliothèque principale, vous
devez d'abord déplacer vos anciens fichiers libg++ dans l'ancien
répertoire libc si vous voulez encore pouvoir compiler des
programmes g++ avec votre ancienne libc. La meilleure façon de
procéder est probablement d'installer une nouvelle copie de libg++
compilée avec libc 5 comme dans la section précédente, et ensuite
d'installer la version glibc normalement.</p>
<h2><a name="ss7.3">7.3 Compilation de programmes C++ avec la libc
non principale</a></h2>
<p><!--
glibc!programmes C++, compilation!avec une libc non principale
--></p>
<p>Si vous essayez de compiler un programme C++ avec une libc non
principale, vous devrez inclure le répertoire d'en-têtes g++, qui
dans les exemples ci-dessus serait
<code>/usr/i486-linuxglibc2/include/g++</code> pour une
installation glibc de test ou
<code>/usr/i486-linuxlibc5/include/g++</code> pour une installation
glibc principale. On peut faire cela en général en ajoutant à la
variable <code>$CXXFLAGS</code> :</p>
<blockquote>
<pre><code>
 CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc2
 
</code></pre></blockquote>
<h2><a name="s8">8. Indiquer les bogues</a></h2>
<p><!--
glibc!bogues, indication
--></p>
<p>Si vous pensez que la bibliothèque est vérolée, veuillez d'abord
lire la FAQ. Il se peut que d'autres personnes aient eu ce problème
et qu'il y ait une solution simple. Vous devriez aussi regarder la
partie "Outils recommandés pour l'installation de la bibliothèque C
de GNU" dans le fichier <code>INSTALL</code> puisque certains
bogues proviennent des outils et non de glibc.</p>
<p>Une fois que vous avez trouvé un bug, assurez-vous que c'en est
vraiment un. Une bonne manière de le faire est de regarder si la
bibliothèque C GNU se comporte de la même manière qu'une autre
bibliothèque C. S'il en est ainsi, vous vous êtes trompé et les
bibliothèques ont raison (mais pas forcément). Dans le cas
contraire, l'une des bibliothèques a probablement tort.</p>
<p>Ensuite, dirigez-vous vers <a href=
"http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl">http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl</a>,
et parcourez la base de données des bugs. Vérifiez bien que le
problème n'a pas déjà été indiqué. Vous devriez aussi jeter un coup
d'oeil au fichier <code>BUGS</code> (ditribué avec glibc) pour
prendre connaissance des bugs connus.</p>
<p>Une fois que vous êtes sûr d'avoir trouvé un bug, essayez de le
réduire au plus petit test pratique qui reproduit le problème. Dans
le cas d'une bibliothèque C, vous ne devrez probablement en être
réduit qu'à un appel de fonction de la bibliothèque, si possible.
Ceci ne devrait pas être trop difficile.</p>
<p>L'étape finale une fois que vous avez un exemple simple de test
est d'indiquer le bug. En indiquant un bug, envoyez votre exemple
de test, les résultats que vous avez obtenus, ce que vous pensez
être le problème (si vous avez pensé à quelque chose), le type de
votre système, les versions de la bibliothèque C GNU, du
compilateur GNU CC et des GNU binutils que vous utilisez. Ajoutez
aussi les fichiers <code>config.status</code> et
<code>config.mak</code> créés en lançant <code>configure</code> ;
ils seront dans le répertoire qui était le répertoire courant quand
vous avez lancé <code>configure</code>.</p>
<p>Vous devez envoyer tous les rapports de bug pour la bibliothèque
C GNU en utilisant le script shell <code>glibcbug</code> livré avec
la libc GNU à <a href="bugs@gnu.org">bugs@gnu.org</a> (l'ancienne
adresse <a href="bugs@gnu.ai.mit.edu">bugs@gnu.ai.mit.edu</a>
fonctionne encore), ou par l'intermédiaire de l'interface Web de
GNATS à <a href=
"http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl">http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl</a>.</p>
<p>Les suggestions et les questions doivent être envoyées à la
liste de distribution à <a href=
"bugs-glibc@prep.ai.mit.edu">bugs-glibc@prep.ai.mit.edu</a>. Si
vous ne lisez pas le groupe de gnews gnu.bug.glibc, vous pouvez
vous abonner à la liste en demandant à <a href=
"bug-glibc-request@prep.ai.mit.edu">bug-glibc-request@prep.ai.mit.edu</a>.</p>
<p>Veuillez s'il vous plait ne pas envoyer de rapport de bug
concernant la bibliothèque C GNU à &lt;bug-gcc@prep.ai.mit.edu&gt;.
Cette liste s'occupe des rapports de bug de GNU CC. GNU CC et la
bibliothèque C GNU sont des entités distinctes maintenues par des
personnes différentes.</p>
<h2><a name="specs"></a> <a name="s9">9. Fichiers specs
d'exemple</a></h2>
<p><!--
glibc!fichier de specs GCC, exemple
--></p>
<p>Voici ci-inclus un fichier d'exemple <code>specs</code> pour
glibc 2 que gcc utilise pour la compilation et la liaison
dynamique. On devrait le trouver dans le répertoire
<code>/usr/lib/gcc-lib/&lt;nouveau répertoire&gt;/&lt;version
gcc&gt;</code>. Si vous utilisez un système x86, vous pouvez copier
exactement cette section dans le fichier.</p>
<blockquote>
<pre><code>
 *asm:
 %{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

 *asm_final:
 %{pipe:-}

 *cpp:
 %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}

 *cc1:
 %{profile:-p}

 *cc1plus:


 *endfile:
 %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s

 *link:
 -m elf_i386 %{shared:-shared}   %{!shared:     %{!ibcs:       %{!static:       %{rdynamic:-export-dynamic}     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}}  %{static:-static}}}

 *lib:
 %{!shared: %{pthread:-lpthread}        %{profile:-lc_p} %{!profile: -lc}}

 *libgcc:
 -lgcc

 *startfile:
 %{!shared:      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s}                  %{!p:%{profile:gcrt1.o%s}                         %{!profile:crt1.o%s}}}}    crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}

 *switches_need_spaces:


 *signed_char:
 %{funsigned-char:-D__CHAR_UNSIGNED__}

 *predefines:
 -D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)

 *cross_compile:
 0

 *multilib:
 . ;
 
</code></pre></blockquote>
<h2><a name="s10">10. Divers</a></h2>
<p><!--
glibc!divers
--></p>
<h2><a name="ss10.1">10.1 Informations supplémentaires</a></h2>
<p><!--
glibc!sources d'informations
--></p>
<h3>Pages Web</h3>
<p><!--
glibc!sources d'information!WWW
--></p>
<ul>
<li><a href="http://www.gnu.org/software/libc/libc.html">Page
d'accueil de la bibliothèque C GNU chez FSF</a></li>
<li><a href="http://www.imaxx.net/~thrytis/glibc/">Utilisation de
GNU Libc 2 avec Linux</a></li>
<li><a href="http://huizen.dds.nl/~frodol/glibc/">Installer glibc-2
sur Linux</a></li>
<li><a href=
"http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html">HOWTO
libc5 vers libc6 Debian</a></li>
</ul>
<h3>Groupes de news</h3>
<p><!--
glibc!sources d'informations!groupes de news
--></p>
<ul>
<li><a href=
"news:comp.os.linux.development.system">comp.os.linux.development.system</a></li>
<li><a href=
"news:comp.os.linux.development.apps">comp.os.linux.development.apps</a></li>
<li><a href="news:linux.dev.kernel">linux.dev.kernel</a></li>
<li><a href="news:gnu.bug.glibc">gnu.bugs.glibc</a></li>
</ul>
<h3>Listes de distribution</h3>
<p><!--
glibc!sources d'informations!listes de distribution
--></p>
<dl>
<dt><b>Liste de discussion Glibc 2 Linux.</b></dt>
<dd>
<p>Cette liste est destinée à la discussion entre les utilisateurs
Linux qui ont installé glibc2, la nouvelle bibliothèque C. Les
sujets peuvent comprendre des problèmes de compatibilité et des
questions sur la compilation de code dans un environnement
Linux/glibc. Pour s'abonner, envoyer un courrier à <a href=
"mailto:Majordomo@ricardo.ecn.wfu.edu">Majordomo@ricardo.ecn.wfu.edu</a>
avec dans le corps "subscribe glibc-linux &lt;votre adresse
email&gt;".</p>
</dd>
</dl>
<h2><a name="ss10.2">10.2 Remerciements</a></h2>
<p>J'ai volé une bonne partie de ces informations sur la <a href=
"http://www.gnu.org/software/libc/libc.html">page web de GNU
Libc</a> et de l'annonce de glibc 2 par Ulrich Drepper
&lt;drepper@gnu.ai.mit.edu&gt; et ses commentaires. Andreas Jaeger
&lt;aj@arthur.rhein-neckar.de&gt; a alimenté une partie de la
section sur l'indication des bugs.</p>
<p>Les personnes suivantes ont fourni des informations et un retour
sur ce document :</p>
<ul>
<li>Allex &lt;allex@ms2.accmail.com.tw&gt;</li>
<li>Mark Brown &lt;M.A.Brown-4@sms.ed.ac.uk&gt;</li>
<li>Ulrich Drepper &lt;drepper@gnu.ai.mit.edu&gt;</li>
<li>Scott K. Ellis &lt;ellis@valueweb.net&gt;</li>
<li>Aron Griffis &lt;agriffis@coat.com&gt;</li>
<li>Andreas Jaeger &lt;aj@arthur.rhein-neckar.de&gt;</li>
<li>Frodo Looijaard &lt;frodol@dds.nl&gt;</li>
<li>Ryan McGuire &lt;rmcguire@freenet.columbus.oh.us&gt;</li>
<li>Shaya Potter &lt;spotter@capaccess.org&gt;</li>
<li>Les Schaffer &lt;godzilla@futuris.net&gt;</li>
<li>Andy Sewell &lt;puck@pookhill.demon.co.uk&gt;</li>
<li>Gary Shea &lt;shea@gtsdesign.com&gt;</li>
<li>Stephane &lt;sr@adb.fr&gt;</li>
<li>Jan Vandenbos &lt;jan@imaxx.net&gt;</li>
</ul>
<p>Les traductions de ce document sont faites par :</p>
<ul>
<li>chinois : Allex &lt;allex@ms2.accmail.com.tw&gt;</li>
<li>français : Géraud Canet&lt;canet@labri.u-bordeaux.fr&gt;</li>
<li>japonais : Kazuyuki Okamoto
&lt;ikko-@pacific.rim.or.jp&gt;</li>
</ul>
<h2><a name="ss10.3">10.3 Retour d'informations</a></h2>
<p>En plus d'écrire ce HOWTO, maintenir la page <a href=
"http://www.imaxx.net/~thrytis/glibc">glibc 2 pour Linux</a>, et
l'utiliser sur ma machine, je n'ai rien à voir avec le projet
glibc. Je suis loin d'être un expert dans ce domaine, bien que
j'essaie de résoudre les problèmes qu'on m'envoie par courrier
électronique. J'apprécie tout retour, correction ou suggestion que
vous pourriez me faire. Veuillez les envoyer à <a href=
"mailto:ejg3@cornell.edu">ejg3@cornell.edu</a>.</p>
<h2><a name="ss10.4">10.4 Copyright</a></h2>
<p>Copyright (c) 1997 par Eric Green. Ce document peut être
distribué sous les termes de la licence LDP.</p>
</body>
</html>