UWAGA
Nie ponoszę odpowiedzialności za szkody, które mogą wyniknąć z użytkowania pakietów znajdujących sie pod podanym powyżej adresem.
Release Notes:
- Toolchain został wykonany z optymalizacją dla architektury i686 (i686-slackware-linux).
- Glibc wspiera tylko NPTL, nie ma w nim wsparcia dla LinuxThreads mimo, że po małej przerwia (w Glibc 2.4) istnieje możliwość uzyskania takiego wsparcia. Dlatego jest on przeznaczony dla użytkowników jąder serii 2.6 (więcej informacji poniżej).
- Glibc został skompilowany z wsparciem dla jąder > 2.6.16, aczkolwiek rekomendowane jądro, to > 2.6.18, gdyż był on kompilowany na nagłówkach z jądra 2.6.18:
Kod: Zaznacz cały
$ /lib/libc.so.6 GNU C Library stable release version 2.5, by Roland McGrath et al. Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.1.1. Compiled on a Linux >>2.6.18<< system on 2006-11-01. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson GNU libio by Per Bothner NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B Thread-local storage support included. For bug reporting instructions, please see: <http://www.gnu.org/software/libc/bugs.html>.
- Glibc posiada add-on LIbidn - co widać powyżej.
- Configure Glibc'a:
Kod: Zaznacz cały
--prefix=/usr \ --disable-profile --enable-add-ons=nptl,libidn --without-cvs \ --without-selinux --with-tls --enable-kernel=2.6.16 --with-__thread \ --with-headers="${KERNHEAD_DIR}" --cache-file=config.cache --enable-bind-now
- Do Glibc użyto następujące patche:
- GCC skompilowane dla C, C++ i fortrana, z configure:
Kod: Zaznacz cały
--prefix=/usr --enable-shared --enable-threads=posix \ --enable-__cxa-atexit --disable-checking --with-gnu-ld --enable-languages=c,c++,f95 \ --enable-clocale=gnu --verbose --disable-multilib
- Configure dla Binutils:
Kod: Zaznacz cały
--prefix=/usr \ --enable-shared --enable-64-bit-bfd
- [1] Instalację zaczynamy od pakietu zawierającego Glibc.
[2] Nie należy instalować pakietu Glibc bezpośrednio na działający system. Glibc dostarczany wraz z Slackware 11 podzielony jest na biblioteki ze wsparciem dla NPTL oraz LinuxThreads, stąd po zainstalowaniu nowego pakietu powstanie konflikt między starymi i nowymi bibliotekami.
[3] Instalację przeprowadzamy z zewnętrznego systemu, może to być pierwsza płyta instalacyjna (w tym przypadku należy użyć jądra huge26.s):- montujemy partycję główną np. do /mnt/hd;
- montujemy resztę partycji systemowych (tak jak mamy w fstab) wewnątrz /mnt/hd, tak aby chroot na /mnt/hd odzwierciedlał cały system (partycje /home i pozostałe - niesystemowe - nie muszą być montowane);
- usuwamy stary pakiet Glibc:
Wszystkie pakiety z rodziny glibc muszą zostać usunięte w ten sposób.
Kod: Zaznacz cały
ROOT=/mnt/hd removepkg glibc
- removepkg nie usuwa bibliotek z /lib i dlatego należy je usunąć recznie:
Usuwamy również linki, do nieistniejących już bibliotek. Można to zrobić ręcznie lub w ten sposób (PS: nie testowałem tego, ale powinno działać):
Kod: Zaznacz cały
cd /mnt/hd rm -r tls rm *2.3.6* libmemusage* libpthread* libSegFault*
Kod: Zaznacz cały
for i in lib*; do [ -L $i ] && [ -n "$(file $i | grep "broken symbolic")" ] && rm -v $i ; done
- Instalujemy nowy pakiet Glibc:
W ten sam sposób instalujemy pozostałe pakiety Glibc'a.
Kod: Zaznacz cały
installpkg -root /mnt/hd /sciezka/do/glibc-2.5-i686-1.tgz
- Następnie należy w chroocie wykonać ldconfig:
Kod: Zaznacz cały
chroot /mnt/hd /sbin/ldconfig
- Teraz można sprawdzić czy nowa biblioteka ,,się przyjeła'':
po tej czynności powinniśmy znależć sie w chrootowanym systemie. Dla pewności proponuję na tym etapie wykonać /lib/libc.so.6 - powinien pojawić się dokładnie taki sam komunikat jak wyżej.
Kod: Zaznacz cały
chroot /mnt/hd /bin/bash
Wszystkie pakiety poza GCC, Glibc i Binutils zostały wykonane z tym toolchain'em w celu jego przetestowania. Są to:
- a/bash-3.2-i686-1.tgz
- a/coreutils-6.4-i686-1.tgz
- a/gawk-3.1.5-i686-1.tgz
- a/procps-3.2.7-i686-1.tgz
- a/sed-4.1.5-i686-1.tgz
- a/usbutils-0.72-i686-1.tgz
- a/xfsprogs-2.8.11_1-i686-1.tgz
- ap/alsa-utils-1.0.13-i686-1.tgz
- ap/dejagnu-1.4.4-i686-1.tgz
- ap/mc-4.6.1-i686-1.tgz
- d/libtool-1.5.22-i686-1.tgz
- d/m4-1.4.7-i686-1.tgz
- d/make-3.81-i686-1.tgz
- d/pkg-config-0.21-i686-1.tgz
- l/alsa-lib-1.0.13-i686-1.tgz
- l/alsa-oss-1.0.12-i686-1.tgz
- l/atk-1.12.3-i686-1.tgz
- l/cairo-1.2.4-i686-1.tgz
- l/freetype-2.2.1-i686-1.tgz
- l/glib-1.2.10-i686-1.tgz
- l/glib2-2.12.4-i686-1.tgz
- l/gtk+2-2.10.6-i686-1.tgz
- l/libpng-1.2.12-i686-1.tgz
- l/libtiff-3.8.2-i686-1.tgz
- l/libusb-0.1.12-i686-1.tgz
- l/pango-1.14.7-i686-1.tgz
- l/readline-5.2-i686-1.tgz
- l/slang-1.4.9-i686-1.tgz
- l/slang2-2.0.6-i686-1.tgz
- tcl/expect-5.43.0-i686-1.tgz
- x/fontconfig-2.4.1-i686-1.tgz
- xap/wine-0.9.24-i686-1.tgz
Wszystkie skrypty BBS (BetonBuild Script) zostaną udostępnione niedługo pod tym samym adresem wraz z dokładnym plikiem ChangeLog dla wszystkich pakietów. BDT można pobrać ze strony domowej projektu, aczkolwiek będzie ono przydatne po udostępnieniu BBS. Paczka z bdt znajdzie się również w repozytorium dla i686-slackware-linux.
Known issues: -- BRAK, błędy i uwagi proszę zgłaszać na difrost/AT/poczta.onet.pl.
Co dalej...
Będę uzupełniał listę pakietów z czasem o dystrybucyjne jak i niedystrybucyjne paczki - wszystko dla i686-slackware-linux.
Pojawi się również toolchain dla pentium4-slackware-linux (dla procesorów Intel Pentium4 Prescott) - będzie on znacznie bardziez zaawansowany i dopracowany, gdyż od roku na takim pracuje i jest on moooocccnnnoooo testowany
Pozdrawiam
DF