[RISOLTO]xen 3.1.0 e glibc2.5 in Slack 12

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
pedro
Linux 0.x
Linux 0.x
Messaggi: 31
Iscritto il: mer 11 mag 2005, 0:00
Slackware: 12.0

[RISOLTO]xen 3.1.0 e glibc2.5 in Slack 12

Messaggio da pedro »

Ciao a tutti, eccomi qui con un altro problemino. Mi sono intrippato con Xen che a mio avviso è forse il miglire sistema di virtualizzazione presente ad ora, anzi sarebbe meglio dire paravirtualizzazione dato che Xen non emula l'hardware ma lo utilizza effettivamente.
comunque non è questo il problema.
Ho scaricato i sorgenti di Xen e li ho installati senza problemi. Ho anche pacchettizzato il tutto per Slackware e se volete vi posto il tutto. Attualmente ho l'hypervisor e la dom0 funzionanti, quindi il kernel della dom0 bootta.
Il problema è che mi compare una scritta durante il boot di questo tipo :

Codice: Seleziona tutto

***************************************************************
***************************************************************
** WARNING: Currently emulating unsupported memory accesses  **
**          in /lib/tls glibc libraries. The emulation is    **
**          slow. To ensure full performance you should      **
**          install a 'xen-friendly' (nosegneg) version of   **
**          the library, or disable tls support by executing **
**          the following as root:                           **
**          mv /lib/tls /lib/tls.disabled                    **
** Offending process: init (pid=1)                           **
***************************************************************
***************************************************************
n.b.: tls sta per thread-local storage e non per Transport Layer Security utilizzate anche da OpenSSL.
Questa scritta è dovuta dal fatto che le glibc-2.5 presenti su Slackware 12 ( come in molte altre distro recenti ) sono compilate con il supporto NPTL ( Native POSIX Thread Library ). Tale supporto è, da quello che ho letto, un nuovo modo ottimizzato di gestire i thread su linux e ha preso il posto delle libpthread ( LinuxThreads ) definite deprecate. Volkerding stesso nelle release_notes.txt della slack 12 lo afferma:
ftp://ftp.eutelia.it/pub/Slackware_Mirr ... EASE_NOTES

Potete vedere voi stessi quale libreria state usando digitando :

Codice: Seleziona tutto

root@darkstar:/tmp# getconf GNU_LIBPTHREAD_VERSION
NPTL 2.5
root@darkstar:/tmp# getconf GNU_LIBC_VERSION
glibc 2.5
Purtroppo Xen non è ancora ottimizzato per utilizzare NPTL , bensì raggiunge performance nettamente migliori con le libpthread. Per distro come debian, redhat, fedora, ubuntu, ecc è presente una patch o anche direttamente il binario delle glibc ottimizzate per Xen ( quindi tali da utilizzare libpthread ).
Ora, finalmente arrivo al dunque. Avete idea di come ricompilare per Slackware 12 le glibc 2.5 senza il supporto NPTL? oppure conoscete soluzioni alternative?

Vi ringrazio e penso che rispondendo a questa domanda apportereste un contributo a tutta la comunità della Slackware.
Ultima modifica di pedro il sab 27 ott 2007, 2:46, modificato 1 volta in totale.

pedro
Linux 0.x
Linux 0.x
Messaggi: 31
Iscritto il: mer 11 mag 2005, 0:00
Slackware: 12.0

Messaggio da pedro »

Bene,
problema RISOLTO. Non so se può interessare a qlk ma la procedura è questa :
-scaricare dal cd della Slackware 12 i sorgenti delle glibc-2.5 ( ossia tutti i file compresi nella directory source/l/glibc compreso lo Slackbuild)
-modificare lo Slackbuild mettendo al posto di

Codice: Seleziona tutto

CFLAGS="-g $OPTIMIZ" \
questo:

Codice: Seleziona tutto

CFLAGS="-g $OPTIMIZ -mno-tls-direct-seg-refs" \ 
-lanciare glibc.Slackbuild che compilerà per una mezzoretta e vi ritroverete i pacchetti in formato tgz nella directory /glibc--tmp-88cb86a3b60643ccacda61968a20ecf8 o qlk del genere. I nomi dei pacchetti sono :

Codice: Seleziona tutto

root@darkstar:/# ls *.tgz
glibc-2.5-i486-4.tgz   
glibc-debug-2.5-i486-4.tgz   
glibc-profile-2.5-i486-4.tgz 
glibc-zoneinfo-2.5-noarch-4.tgz
glibc-2.5-i486-4p.tgz  
glibc-i18n-2.5-noarch-4.tgz  
glibc-solibs-2.5-i486-4.tgz
-sostituite i pacchetti presenti nel sistema con quelli appena ricompilati. Per esempio per il pacchetto glibc-2.5-i486-4.tgz :

Codice: Seleziona tutto

root@darkstar:/glibc-tmp-88cb86a3b60643ccacda61968a20ecf8# upgradepkg --reinstall glibc-2.5-i486-4%glibc-2.5-i486-4.tgz
n.b.:glibc-2.5-i486-4 è il pacchetto presente nel sistema mentre glibc-2.5-i486-4.tgz è quello appena ricompilato.
Fate la stessa cosa anche per gli altri pacchetti .tgz presenti nella directory /glibc-tmp-88cb86a3b60643ccacda61968a20ecf8.
-eseguite

Codice: Seleziona tutto

root@darkstar:/glibc-tmp-88cb86a3b60643ccacda61968a20ecf8#ldconfig
in modo da far caricare al sistema le nuove librerie e renderle operative.
-ora scaricate i sorgenti di sysvinit, sysvinit-functions e sysvinit-screipts da source/a/sysvinit e lanciate i corrispettivi Slackbuild, dopodichè proseguite con la sostituzione dei pacchetti già presenti nel sistema con quelli appena ricompilati con le nuove glibc (come fatto per i pacchetti relativi alle glibc).
-riavviate il sistema e nell'avvio di xen dovrebbe essere sparita la scritta relativa al WARNING poichè il problema è risolto.
Se non è chiaro qlk postate e proverò ad aiutarvi.

Non mi assumo alcuna responsabilità su eventuali casini che vi possono uscire fuori. Se seguite bene il procedimento non dovreste avere nessun problema.

gufo
Linux 0.x
Linux 0.x
Messaggi: 1
Iscritto il: dom 15 mag 2005, 0:00
Località: Provincia di Brescia
Contatta:

Re: [RISOLTO]xen 3.1.0 e glibc2.5 in Slack 12

Messaggio da gufo »

pedro ha scritto: comunque non è questo il problema.
Ho scaricato i sorgenti di Xen e li ho installati senza problemi. Ho anche pacchettizzato il tutto per Slackware e se volete vi posto il tutto. Attualmente ho l'hypervisor e la dom0 funzionanti, quindi il kernel della dom0 bootta.
Sono interessato agli slackbuilds, ci voglio lavorare ancora dopo averci provato tempo fa senza ottenere dei buoni risultati (http://gufo.dontexist.org/builds/Xen.php per vedere i miei slackbuild e qualcosa che ho scritto all'epoca).
Me li puoi mandare per favore in posta a gufo [at] people [.] it? Quando ho tempo ci lavoro e poi metto a disposizione le eventuali modifiche.

Ciao,
Gufo

Andrei
Linux 0.x
Linux 0.x
Messaggi: 2
Iscritto il: mar 27 nov 2007, 18:03
Località: Piove di Sacco (PD)
Contatta:

Messaggio da Andrei »

Ciao a tutti.

Sono sbattuto su un problema molto strano: nonostante "-mno-tls-direct-seg-refs" glibc si compilano sempre con supporto NPTL.

getconf GNU_LIBPTHREAD_VERSION risponde sempre NPTL 2.5.

Qualcuno ha visto un simile comportamento?

Andrei
Linux 0.x
Linux 0.x
Messaggi: 2
Iscritto il: mar 27 nov 2007, 18:03
Località: Piove di Sacco (PD)
Contatta:

Messaggio da Andrei »

Qualcuno può dire cosa vede facendo
getconf GNU_LIBPTHREAD_VERSION dopo aver ricompilato glibc2.5?

Rispondi