[Linux-Biella] compatibilità tra le distro..

Emanuele Aina faina.mail a tiscali.it
Mar 19 Dic 2006 00:11:35 CET


Daniele (Mastro) sperò:

>> == GCC ==
>> Mentre per il C l'ABI è ormai stabilissima, per il C++ ha subito molti 
>> cambiamenti, spesso incompatibili tra gcc 2.95, 3.x e le prime versioni 
>> del 4.x.
>> Questo rende incompatibili programmi C++ compilati con versioni diverse 
>> di GCC. Per i sorgenti non ci sono problemi.
> 
> beh spero che questo si risolva a breve.. nel senso che gli standard
> sono importanti.. se non si seguono diventa una giungla..

In questo caso non c'è alcuno standard a cui attenersi, comunque gli 
sviluppatori di GCC hanno promesso di non cambiarla più per un bel po' 
(si spera :).

> solo 1 domanda.. dici che non ci sono problemi se si hanno i sorgenti
> ma in che senso rende incompatibili programmi compilati con versioni
> diverse di gcc?

ABI == Application Binary Interface
Determina come vengono disposti i dati in un eseguibile/libreria 
compilato: ad esempio dove mettere le informazioni sul numero/tipo di 
parametri oppure il modo di decorare le funzioni C++.

Applicazioni compilate con versioni diverse del GCC si aspettano di 
trovare le informazioni in modo differente, da cui i problemi.

> se ho il programma A compilato con gcc 2.95 e il programma B compilato
> con gcc 4.x questi non riescono a "lavorare insieme"

Il problema avviene in fase di linking, per cui è solo tra programmi e 
librerie compilati con versioni diverse.

> o è più un discorso di programmi e librerie?

Esatto.

>> == Disposizione dei file ==
>> La grande differenza tra le distribuzioni è la disposizione dei file: in 
>> Debian /opt è intoccabile, RedHet e derivati ne fanno ampio uso, /etc è 
>> pressoché read-only in Debian, mentre altri ci scrivono allegramente, 
>> oltretutto è disposto molto diversamente tra una distribuzione e 
>> l'altra, ecc.
> 
> ecco questa invece non mi sembra una cosa molto furba...
> sarebbe meglio uniformarsi almeno su questo

Bravo.
Manda una mail a quelli di RedHat per uniformarsi.

>> Cose tipo l'abilitazione del supporto ai wide-char nell'API C di python, 
>> eccetera.
> 
> non so cos'è ma suppongo sia un'insieme di chiamate a funzioni che
> possono essere compilate o meno...

In base a un flag di compilazione nell'API C python può usare string edi 
caratteri normali oppure caratteri unicode a 16 bit (UCS2).

Per questo un programma che si aspetta l'API UCS2 non funziona con 
python compilato con l'API normale.
(Questo concerne solo le estensioni compilate, i programmi python stanno 
tranquilli ;)

> ma queste su pacchetti già fatti dovrebbero già essere incluse di
> default.. o almeno poter installare una patch che le abilita modificanto
> quanto già installato.. (secondo me)

Non è question di patch, ma di ricopilare il pacchetto e tutti quelli 
che dipendono da esso e tutti quelli che dipendono da questi e tutti 
quelli che dipendono da questi altri e tutti quelli che...

>> Gentoo è un discorso a parte, in quanto ogni utente è più o meno 
>> incompatibile con gli altri (a seconda dei flag usati in compilazione).
> 
> si ma lì sta all'utente e non al programma farlo funzionare, quindi non
> vedo problemi dal punto di vista di chi scrive software

Peccato che l'utente abbia la tendenza a lamentarsi con un "uffa, ma qui 
FooBar v2.0 non funziona" e le aziende software non osino rispondergli 
"sei un cretino, dacci i soldi e arrangiati".

>> Un produttore non-free deve seguire le specifiche LSB e sviluppare su 
>> quelle, aspettandosi un po' di problemi.
>>
>> Uno free ha dalla sua l'aiuto della comunità.
> 
> io credo che un produttore, free o meno dovrebbe poter esser sicuro che
> seguendo uno standard (LSB) non avrà problemi.

Certo, ma non è una cosa semplice e richiede una montagna di lavoro che 
qualcuno dovrà pur fare. Se vuoi puoi iscriverti alla mailing list della 
LSB per ascoltare e dare una mano.

> altrimenti Linux sarà sempre una piattaforma poco ambita per piccoli
> progetti o per grosse società che fanno software closed (Adobe Photoshop
> / Cad ecc...)

Perdonami, ma chi se ne frega. ;P

-- 
Buongiorno.
Complimenti per l'ottima scelta.



Maggiori informazioni sulla lista Linux