Repository 32bit  Forum
Repository 64bit  Wiki

Multilib Slackware per x86 64: differenze tra le versioni

Da Slacky.eu.
m
 
Riga 320: Riga 320:
* Bruno Russo ha tradotto quest'articolo in portoghese (brasile): http://www.brunorusso.eti.br/slackware/doku.php?id=multilib_para_o_slackware_x86_64
* Bruno Russo ha tradotto quest'articolo in portoghese (brasile): http://www.brunorusso.eti.br/slackware/doku.php?id=multilib_para_o_slackware_x86_64
* Mehdi Esmaeelpour ha tradotto quest'articolo in persiano: http://www.slack-world.com/index.php/articles/43-general-system/85-multilib-slackware64
* Mehdi Esmaeelpour ha tradotto quest'articolo in persiano: http://www.slack-world.com/index.php/articles/43-general-system/85-multilib-slackware64
* Danilo Macrì ha tradotto quest'articolo in italiano (aggiunto dal traduttore ndt.): http://www.slacky.eu/wikislack
+
* Danilo Macrì ha tradotto quest'articolo in italiano (aggiunto dal traduttore ndt.): [[Multilib_Slackware_per_x86_64]]
== Riconoscimenti ==
== Riconoscimenti ==

Versione attuale delle 16:15, 16 mag 2010


Indice

[modifica] Premesse

RIGUARDO LA TRADUZIONE
Quest'articolo è una traduzione dell'originale scritto da Eric "AlienBob" Hameleers e presente a questo indirizzo:
http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib#running_32-bit_programs tutti i riconoscimenti vanno ad AlienBob e alle fonti da lui citate più in basso nell'articolo. Il traduttore non è in alcun modo responsabile di ciò
che viene detto in quest'articolo se non per la parte relativa agli errori di traduzione.

Quest'articolo contiene le istruzioni su come creare una Slackware64 multilib vera e propria. Un sistema linux multilib a 64bit è capace di far girare software a 32 come a 64 bit. il Filesystem Hierarchy Standard definisce il modo migliore per ottenere una separazione pulita tra software a 32bit e a 64bit su un unico sistema. Con Slackware64 abbiamo scelto di adottare questo standard, il sistema quindi è stato preparato per cercare le librerie a 64bit in /lib64 e /usr/lib64, di conseguenza la chiamiamo Slackware64 "multilib-ready" (pronta per il multilib ndt.). Nonostante le librerie a 32bit saranno cercate in /lib e /usr/lib, Slackware64 non viene distribuita con software a 32bit. C'è un passaggio supplementare da seguire prima di poterla chiamare Slackware64 "multilib-enabled" (abilitata per il multilib ndt.).

Per ottenere ciò:

  • Prima di tutto dobbiamo passare ad una versione multilib di
  1. glibc ( cioè un glibc che supporti l\'esecuzione di binari sia a 32bit che a 64bit)
  2. gcc (cioè la possibilità di compilare sia binari a 32bit che a 64bit)
  • Poi dobbiamo prendere le librerie di sistema dalla Slackware a 32bit e installarle nel sistema Slackware a 64bit per completare la creazione di uno strato software a 32bit.


NOTA
Slackware per l'architettura x86_64 (abbreviato "Slackware64") è un Sistema Operativo puro a 64-bit, ma è facilmente aggiornabile al multilib.
Appena installata, Slackware64 offre la possibilità di compilare ed eseguire solo binari a 64bit.

Slackware64 ha un vantaggio rispetto ai fork a "64bit" che esistono la fuori. Questi fork aggiungono lo strato di compatibilità ai 32bit ricompilando molti dei loro pacchetti come binari a 32bit. Slackware invece, è una distribuzione che consiste di una versione a 32bit e una a 64bit che vengono sviluppate in parallelo. Questo significa che non si devono ricompilare dei pacchetti a 32bit da zero per aggiungere la capacità multilib ad un sistema a 64bit. Basta semplicemente prenderli dal ramo a 32bit di Slackware. Questa è una delle ragioni per cui non distribuiamo i pacchetti multilib con Slackware64, ci siamo limitati a creare i prerequisiti lasciando all'utente la possibilità nel caso in cui necessiti il multilib. Più in basso spiegherò come prendere un pacchetto Slackware a 32bit (ad esempio il pacchetto "mesa") e ripacchettizzare il suo contenuto in un pacchetto "mesa-compat32" che si possa installare direttamente in un sistema Slackware64.

[modifica] Vantaggi di un Sistema multilib

Ecco alcuni esempi di programmi che richiedono il supporto multilib su un sistema Slackware a 64bit perchè altrimenti non sarà possibile avviarli o compilarli su una Slackware64 senza lo strato di compatibilità a 32bit:

La maggior parte dei programmi per Windows sono ancora a 32bit, quindi per usarli su Linux con Wine sarà necessario avere una versione a 32bit di Wine.
Il famoso software di virtualizzazione. Nonostante sia (parzialmente) open source, necessita ancora di librerie di compatibilità a 32bit su una Slackware a 64bit.
Questi programmi sono proprietari e a sorgente chiuso. Dobbiamo aspettare che gli sviluppatori distribuiscano una versione a 64bit. Fin ora questo non è successo per i programmi elencati.

Fortunatamente il supporto ai 64bit sta diventando sempre più comune. L'anno scorso Adobe ha rilasciato il suo famoso plugin Flash per i browser web in versione 64bit, e Sun ha rivelato la versione a 64bit del suo plugin Java per i browser. Questa è stata una delle motivazioni per iniziare a lavorare a Slackware64.

[modifica] Ottenere i pacchetti multilib

Si può scaricare un set di pacchetti e script abilitati al multilib dal sito web di AlienBob: http://slackware.com/~alien/multilib/ .

Questi pacchetti sono accompagnati dai sorgenti e dagli script SlackBuild, oltre a vari README (questa pagina wiki è basata su uno di questi README). Tutto ciò che è necessario scaricare si trova nelle directory <slackware_numero_di_release> all'interno della directory principale. Il resto è reso disponibile per scopi educazionali.

[modifica] Abilitare il supporto multilib in Slackware64

[modifica] In breve

Questa sezione contiene le istruzioni essenziali per aggiungere le piene capacità multilib al vostro sistema Slackware. Se volete capire il procedimento con maggiori dettagli, o vi servono informazioni su come compilare software a 32bit su Slackware64, continuate a leggere la sezione seguente.

  • Dopo aver scaricato i pacchetti dal sito web di AlienBob (l'URL è presente nella sezione precedente), si procede aggiornando i pacchetti a 64bit gcc e glibc con la corrispondente versione multilib.
    Si lanci il comando:

upgradepkg --reinstall --install-new *.t?z

nella directory dove sono stati scaricati.
Questo comando installerà inoltre un pacchetto addizionale chiamato "compat32-tools".

  • E' necessario avere un albero delle directory Slackware a 32bit disponibile. Tutti coloro che hanno aquistato il DVD ufficiale di Slackware 13.0 possono usare quello; si tratta di un DVD dual-side e Slackware si trova su uno dei 2 lati. Per questo esempio supporrò che abbiate l'intero albero delle directory nella cartella "/home/ftp/pub/slackware/slackware-13.0/slackware/".
    Subito all'interno ci dovrebbero essere le directory 'a', 'ap', 'd', 'l', 'n', 'x'. (Se avete montato un DVD Slackware, la directory probabilmente sarà "/media/SlackDVD/slackware/" ma non la userò nei comandi di quest'esempio).
  • Create una nuova directory (che chiameremo 'compat32') e entrateci dentro:

mkdir compat32 ; cd compat32

  • Lanciate il seguente comando per creare un set di pacchetti compatibili 32bit, usando la directory dei pacchetti ufficiali Slackware a 32 bit come input:

massconvert32.sh -i /home/ftp/pub/slackware/slackware-13.0/slackware/

  • Il passaggio precedente richiede un po' di tempo, appena finito, potrete procedere all'installazione dei 60MB di pacchetti Slackware appena convertiti che sono stati creati nelle subdirectory all'interno della directory corrente:

installpkg *-compat32/*.t?z

  • Fatto! Adesso potete iniziare a scaricare, installare e avviare programmi a 32bit. Non è stato difficile, no?
ATTENZIONE
Se si usa un package manager come slackpkg si dovranno aggiungere i nomi di tutti i pacchetti glibc e gcc alla sua blacklist.
Se non si prenderà questa precauzione, si corre il rischio che il package manager accidentalmente rimpiazzi i pacchetti multilib con quelli
originali di Slackware64!
CONSIGLIO
Se si sta usando Slackware 13.1 e si è scaricato il pacchetto compat32-tools per questa versione, lo script massconvert32.sh accetta
anche il parametro "-u" che serve a specificare l'URL di un webserver remoto come sorgente dei pacchetti Slackware a 32bit invece di usare
un mirror locale o un DVD: massconvert32.sh -u http://someserver.org/path/to/slackware-13.0

[modifica] Istruzioni dettagliate

[modifica] Aggiornare glibc e gcc

I seguenti pacchetti di glibc/gcc sono sostituti, non aggiunte ai pacchetti standard di Slackware. Occorrerà usare il programma "upgradepkg" per aggiornare alle versioni multilib di gcc e glibc. Vi serviranno questi pacchetti per poter avviare (glibc) e compilare (gcc) software a 32bit sul vostro sistema Slackware a 64bit (Le versioni dei pacchetti riportati qui sotto sono per Slackware 13.0):

[modifica] Slackware64 13.0
  • La suite del compilatore gcc:
    • gcc-4.3.3_multilib-x86_64-4alien.txz
    • gcc-g++-4.3.3_multilib-x86_64-4alien.txz
    • gcc-gfortran-4.3.3_multilib-x86_64-4alien.txz
    • gcc-gnat-4.3.3_multilib-x86_64-4alien.txz
    • gcc-java-4.3.3_multilib-x86_64-4alien.txz
    • gcc-objc-4.3.3_multilib-x86_64-4alien.txz
  • Le librerie GNU libc:
    • glibc-2.9_multilib-x86_64-3alien.txz
    • glibc-i18n-2.9_multilib-x86_64-3alien.txz
    • glibc-profile-2.9_multilib-x86_64-3alien.txz
    • glibc-solibs-2.9_multilib-x86_64-3alien.txz
    • glibc-zoneinfo-2.9_multilib-noarch-3alien.txz
[modifica] Slackware64 13.1
  • La suite del compilatore gcc:
    • gcc-4.4.4_multilib-x86_64-1alien.txz
    • gcc-g++-4.4.4_multilib-x86_64-1alien.txz
    • gcc-gfortran-4.4.4_multilib-x86_64-1alien.txz
    • gcc-gnat-4.4.4_multilib-x86_64-1alien.txz
    • gcc-java-4.4.4_multilib-x86_64-1alien.txz
    • gcc-objc-4.4.4_multilib-x86_64-1alien.txz
  • Le librerie GNU libc:
    • glibc-2.11.1_multilib-x86_64-3alien.txz
    • glibc-i18n-2.11.1_multilib-x86_64-3alien.txz
    • glibc-profile-2.11.1_multilib-x86_64-3alien.txz
    • glibc-solibs-2.11.1_multilib-x86_64-3alien.txz
    • glibc-zoneinfo-2.11.1_multilib-noarch-3alien.txz

C'è inoltre un pacchetto addizionale che si installa usando il programma "installpkg":

  • Il "32-bit toolkit" (scripts che facilitano la creazione di pacchetti a 32bit)
    • compat32-tools-2.0-noarch-1alien.tgz
NOTA
Slamd64 aveva pacchetti separati per gcc/glibc multilib.
In ogni caso, io ritengo che sia più corretto mantenere questi pacchetti multilib essenziali uniti. Ho seguito il concetto già in uso
nella versione di binutils per Slackware64, che ha la capacità multilib 64bit e 32bit in un singolo pacchetto.

[modifica] Aggiungere le librerie Slackware a 32bit

L'aggiornamento di glibc e gcc che ho descritto nella sezione precedente cambia il vostro sistema da "multilib-ready" a "multilib-enabled".
Ora, tutto quello che serve è installare la versione a 32bit del software di sistema di Slackware così che i futuri programmi a 32bit che si andranno ad installare e/o compilare troveranno tutte le librerie che gli necessitano per funzionare.

La procedura non consiste semplicemente nel prendere i pacchetti a 32bit di Slackware e installarli in Slackware64:

  • In primo luogo, si finirebbe con l'avere vari pacchetti con lo stesso nome (due 'mesa', due 'zlib', ecc...) che confonderebbero sia voi che il package manager slackpkg.
  • Inoltre, se il pacchetto a 32bit contiene dei binari (qualcosa come /usr/bin/foo), questi sovrascriverebbero la loro controparte a 64bit installando quello a 32bit su di essi. Se ciò dovesse succedere danneggerebbe seriamente il sistema.

Un po' di cura in più è necessaria affinchè files non necessari vengano tolti dai pacchetti a 32bit prima di installarli. Quello che ci serve, è un pacchetto a 32bit che non faccia conflitto con nient'altro presente nella Slackware a 64bit. Da qui il nome "pacchetto di compatibilità a 32bit".

Ho deciso che sarebbe stato uno spreco di banda se avessi creato io stesso le versioni di compatibilità dei pacchetti a 32bit. Dopo tutto, avrete probabilmente acquistato il DVD di Slackware 13.0, quindi sarete già in possesso sia della Slackware a 64bit che di quella a 32bit... oppure, l'albero delle directory di Slackware a 32bit è disponibile gratis per il download ovviamente ;-)

Invece, ho scritto alcuni script (parte del codice degli script è stato scritto da Fred Emmot di Slamd64) e li ho racchiusi nel pacchetto "compat32-tools". La loro utilità è di permettervi di estrarre il contenuto dai vari pacchetti Slackware a 32bit e di usarlo per creare un nuovo pacchetto che si possa tranquillamente installare nella vostra Slackware64.

Il pacchetto "compat32-tools" necessita di alcune spiegazioni.
Si legga il README dettagliato nella directory /usr/doc/compat32-tools-*/, vi aiuterà molto. Ci sono tre utili script che saranno installati dal pacchetto:

  • /etc/profile.d/32dev.sh
Si tratta dello stesso script che si trova in Slamd64. Questo reconfigura l'ambiente shell in modo che sia più semplice compilare software a 32bit (preferendo il compilatore e le librerie a 32bit invece della versione a 64bit)
  • convertpkg-compat32
Questo script prende un pacchetto Slackware a 32bit e lo converte in un pacchetto '-compat32' che si può tranquillamente installare (usando "installpkg") su Slackware64, assieme allo stesso software in versione a 64bit. Per esempio, poniamo che vi servano le librerie a 32bit contenute nel pacchetto mesa. Si prenderà il pacchetto dalla Slackware a 32bit (x/mesa-7.5-i486-1.txz) e si lancerà

convertpkg-compat32 -i /path/to/mesa-7.5-i486-1.txz

il quale creerà un nuovo pacchetto chiamato mesa-compat32-7.5-x86_64-1.txz. Questo nuovo pacchetto (che sarà creato nella directory /tmp a meno che non specifichiate un'altra destinazione) è praticamente il vecchio pacchetto a 32bit, ma senza tutto ciò che non è essenziale. Il nome diverso (mesa diventa mesa-compat32) vi permette di installare questo nuovo pacchetti in Slackware64, dove coesisterà con il pacchetto a 64bit di mesa, non sovrascrivendo nessun file. Lo script lascia alcuni files temporanei nella directory "/tmp/package-<prgnam>-compat32" che possono essere tranquillamente rimossi.
  • massconvert32.sh
Questo script contiene una lista interna di ciò che io considero un subset essenziale dei pacchetti a 32bit di Slackware. Fa uso del già citato script "convertpkg-compat32" per prendere ogni pacchetto che si trovi nella lista interna, e convertirlo in un pacchetto '-compat32'.
Questo script va lanciato una volta sola, per esempio così (l'esempio seguente assume che si sia montato un DVD Slackware in /mnt/dvd):

massconvert32.sh -i /mnt/dvd/slackware -d ~/compat32

Quest'azione risulterà in circa 60 MB di nuovi pacchetti che si troveranno nella nuova directory ~/compat32 (il nome della directory è arbitrario ovviamente, io ho scelto questo solo per l'esempio). Questi pacchetti comprendono i componenti a 32bit del vostro sistema Slackware64 multilib.
Andrebbero installati usando "installpkg", e vi daranno uno strato completo di compatibilità a 32bit sulla vostra Slackware64.

installpkg ~/compat32/*/*.t?z

Se si sta aggiornando da una precedente versione di questi pacchetti (perchè, per esempio, si sta passando da Slackware 13.0 a Slackware 13.1) non si userà allora "installpkg", ma "upgradepkg --install-new" al suo posto:

upgradepkg --install-new ~/compat32/*/*.t?z

Il parametro "--install-new" è necessario per installare i nuovi pacchetti compat32 che siano stati aggiunti tra i vari rilasci.
IMPORTANTE
Installando i pacchetti compat32 si noteranno degli errori riguardanti alcuni files mancanti in /etc. Questo comportamento è voluto,
e questi errori possono essere ignorati. Questi messaggi sono causati dal fatto che i files in /etc sono rimossi dai pacchetti "-compat32" durante
la conversione (ad eccezione dei pacchetti pango e gtk+2). Suppongo che i files in /etc siano già stati installati dai pacchetti originali a 64bit.
Un esempio di questi "errori" per il pacchetto cups-compat32: Executing install script for cups-compat32-1.3.11-x86_64-1.txz. install/doinst.sh: line 5: [: too many arguments cat: etc/cups/interfaces: Is a directory cat: etc/cups/ppd: Is a directory cat: etc/cups/ssl: Is a directory cat: etc/cups/*.new: No such file or directory cat: etc/dbus-1/system.d/cups.conf.new: No such file or directory chmod: cannot access `etc/rc.d/rc.cups.new': No such file or directory cat: etc/rc.d/rc.cups.new: No such file or directory Package cups-compat32-1.3.11-x86_64-1.txz installed.
IMPORTANTE
Se si sta considerando di usare lo script convertpkg-compat32 per convertire un pacchetto **non-Slackware** in un pacchetto -compat32,
devo sconsigliarlo fortemente. Lo script è stato redatto con un solo scopo, quello di rendere la versione a 32bit dei binari ufficiali di Slackware64
disponibili in un setup multilib. Di conseguenza lo script rimuoverà gran parte di ciò che è presente nei pacchetti a 32bit originali, tutta roba
che si suppone sia già stata installata come parte dei pacchetti a 64bit.
Nella quasi totalità dei casi in cui abbiate scaricato un pacchetto non-Slackware a 32bit, e vogliate farlo funzionare su Slackware64, il modo migliore
è trovare i sorgenti e costruire una versione a 64bit del pacchetto stesso.
In alternativa, potete installare direttamente il pacchetto originale a 32bit invece di provare a convertirlo, e una volta lanciato
dalla riga di comando sarà possibile trovare tutte le librerie mancanti da estrarre poi dai pacchetti ufficiali di Slackware.

[modifica] Avviare programmi a 32bit

Avviare un programma precompilato a 32bit è facile dopo che avrete preparato il sistema. Basterà scaricarlo, installarlo e lanciarlo!

Può succedere che si incorra in un programma che richiede una certa libreria Slackware a 32bit che ancora non è installata. In quel caso, basterà trovare a quale pacchetto Slackware a 32bit appartiene la libreria mancante. Basterà usare poi lo script convertpkg-compat32 per convertire il pacchetto originale Slackware a 32bit e installare il risultante pacchetto di compatibilità su Slackware64.

[modifica] Compilare programmi a 32bit

In caso sia necessario compilare dei programmi a 32bit (wine e grub sono 2 esempi di programmi open source presenti solo a 32bit) bisognerà prima configurare l'ambiente shell lanciando il comando

. /etc/profile.d/32dev.sh

Da notare il 'punto' prima del nome del file che fa parte integrante del comando! Lanciando questo comando cambieranno o saranno create diverse variabili d'ambiente. L'effetto di quest'azione sarà che saranno preferite le versioni a 32bit dei binari rispetto ai 64bit in fase di compilazione del codice sorgente, infatti si eseguirà una compilazione a 32bit. L'effetto durerà fino al successivo logout dalla shell.

In questo ambiente modificato, sarete in grado di usare gli SlackBuilds standard per creare pacchetti a 32bit per Slackware64. Ci sono 2 cose da tenere a mente:

  • Bisognerà definire la variabile ARCH come 'x86_64' anche se si sta compilando un programma a 32bit!
Questo è dovuto alla sequenza di "$ARCH-slackware-linux" normalmente usati nel comando "configure". Inoltre, provando a settare ARCH per esempio a "i486" si noterà che la definizione di CFLAGS per quell'architettura risulterà in errori di gcc come "compiler can not create executables". Questo è dovuto al design degli script SlackBuild. Piuttosto che editare/rimuovere le definizioni CFLAGS, si può impostare ARCH su "x86_64" e risparmiare del tempo. Il vero lavoro sarà svolto dallo script 32dev.sh.
  • Si dovranno modificare gli SlackBuild se si vorrà usare la directory 'lib64/' per "$ARCH = x86_64". Bisognerà forzarlo invece ad usare la directory 'lib/'. Di solito questo si fa trovando una definizione come:
     LIBDIRSUFFIX="64"

e cambiando questa riga con
     LIBDIRSUFFIX=""

[modifica] Avvertimenti

Dopo aver installato i pacchetti "-compat32", potrebbe essere necessario reinstallare i driver binari Nvidia o Ati' di X.Org. Questi pacchetti di driver contengono sia le librerie a 32bit che a 64bit per essere utili al massimo in un Sistema Operativo multilib a 64bit. Se si sono installati i files dei driver per entrambe le architetture, il pacchetto "mesa-compat32" sovrascriverà alcuni files di librerie a 32bit.

D'altro canto, se originariamente si è istallato solo i driver a 64bit per la vostra scheda video Nvidia/Ati, si raccomanda, dopo l'installazione dei pacchetti multilib, di procedere nuvoamente all'installazione dei driver binari e questa volta, scegliendo di installare anche i files per i driver a 32bit.

Le applicazioni grafiche a 32bit che si andranno a lanciare nel vostro sistema multilib richiedono queste librerie dei driver a 32bit. Crash sono possibili se si sbaglierà nell'installare i files corretti.

[modifica] Pacchetti convertiti da massconvert32.sh

Questa è una lista di pacchetti convertiti nella versione "-compat32" dallo script massconvert32.sh. Da notare che alcuni di questi pacchetti non sono parte di Slackware 13.0. Sono stati aggiunti in Slackware 13.1 e quindi produrranno un messaggio "*** FAIL: package 'package_name' was not found!" una volta lanciato lo script. Non c'è da preoccuparsi di ciò.

# La serie A/:
bzip2
cups
cxxlibs
dbus
e2fsprogs
openssl-solibs
util-linux-ng
# La serie AP/:
mpg123
mysql
# La serie D/:
libtool
# La serie L/:
alsa-lib
alsa-oss
atk
audiofile
cairo
dbus-glib
esound
expat
freetype
gamin
glib2
gtk+2
hal
jasper
lcms
libart_lgpl
libexif
libgphoto2
libjpeg
libidn
libmng
libpng
libtermcap
libtiff
libv4l
libxml2
libxslt
ncurses
pango
popt
qt
readline
sdl
seamonkey-solibs
svgalib
zlib
# La serie N/:
curl
cyrus-sasl
gnutls
libgcrypt
libgpg-error
openldap-client
openssl
# La serie X/:
fontconfig
glew
libFS
libICE
libSM
libX11
libXScrnSaver
libXTrap
libXau
libXaw
libXcomposite
libXcursor
libXdamage
libXdmcp
libXevie
libXext
libXfixes
libXfont
libXfontcache
libXft
libXi
libXinerama
libXmu
libXp
libXpm
libXprintUtil
libXrandr
libXrender
libXres
libXt
libXtst
libXv
libXvMC
libXxf86dga
libXxf86misc
libXxf86vm
libdmx
libdrm
libfontenc
liblbxutil
libxcb
mesa
pixman

[modifica] Traduzioni

[modifica] Riconoscimenti

  • Moltissimi grazie vanno a Fred Emmott, creatore di Slamd64, il fork originale non ufficiale di Slackware. Anche se Slackware64 non è basata sul lavoro di Fred, ho imparato molto di quello che so circa l'impostazione della parte 32bit di un sistema multilib su Linux dai suoi appunti che si trovano in Slamd64.
  • Cross Linux From Scratch.
Il Wiki di CLFS (http://trac.cross-lfs.org/wiki/read#ReadtheCrossLinuxFromScratchBookOnline) è da leggere assolutamente se si vuole capire come portare Linux su una nuova architettura. Ho preso varie idee, concetti e patch da loro quando ho creato Slackware64 da zero, e ancora quando ho creato i miei pacchetti multilib di gcc/glibc da zero (il mio README su questo multilib-da-zero è disponibile nella directory ./source).

Buon divertimento!

Eric


Autore: Danix

Strumenti personali
Namespace

Varianti