View previous topic :: View next topic |
Author |
Message |
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Fri Sep 08, 2006 9:57 am Post subject: use gtk e gcj in gcc, servono? A cosa? |
|
|
Causa aggiornamento gcc alla version 4.1 mi sono messo a riguardare tutte le use flag che ho settato nei miei pacchetti in modo da poter scremare quelle che mi sembrano piu' inutili ora che sono un utente un attimino piu' smaliziato.
Mi rimangono criptiche le use flag gtk e gcj nel pacchetto gcc stesso.
O meglio ho un'idea di a cosa possano servire ma volevo una conferma.
Gtk se settata dovrebbe installarmi la libreria gtk di modo che io possa inserire Code: | #include <gtk/gtk.h> | nei miei programmi C.
Infatti credo che per altri linguaggi (ad esempio python) bisgna installare un pacchetto separato per avere queta libreria (ad esempio Pygtk).
Gtk dovrebbe essere una libreria simile a xlibs ma piu' orientata alla creazione di interfaccie grafiche (finestre, bottoni, menu, ecc...) di quanto non faccia quest'ultima.
Quindi se io non ho bisogno di creare interfaccie grafiche questa use flag non mi serve, giusto?
Gcj invece e' un compilatore java che e' in grado di produrre sia bytecode (da dare in pasto alla java virtual machine che o interpretera'), sia codice macchina e quindi direttamente eseguibile.
Volevo sapere che differenza c'e' tra questo compilatore e quello fornito da java stesso (il comando javac per intenderci), se ci sono vantaggi ad usarlo ed eventuali problemi di compatibilita'.
Io java lo uso raramente e principalmente per qualche progetto universitario tramite eclipse (non sono un grosso fan di quel linguaggio... C rulez!), qundi non so, mi conviene usare questo gcj invece del classico compilatore java? E' compatibile con eclipse? |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Fri Sep 08, 2006 10:30 am Post subject: Re: use gtk e gcj in gcc, servono? A cosa? |
|
|
gtk non serve certo per compilare programmi GTK. nel senso... figurati se per compilare programmi GTK servisse quella roba.
dai un'occhiata all'ebuild per renderti conto di quello che fa
GCJ è invece un compilatore java
in questo caso dire che la regola è "se non sai cosa è, non ti serve" |
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Fri Sep 08, 2006 10:34 am Post subject: Re: use gtk e gcj in gcc, servono? A cosa? |
|
|
dorian-gray84 wrote: | Volevo sapere che differenza c'e' tra questo compilatore e quello fornito da java stesso (il comando javac per intenderci), se ci sono vantaggi ad usarlo ed eventuali problemi di compatibilita'.
Io java lo uso raramente e principalmente per qualche progetto universitario tramite eclipse (non sono un grosso fan di quel linguaggio... C rulez!), qundi non so, mi conviene usare questo gcj invece del classico compilatore java? E' compatibile con eclipse? |
gcj dovrebbe compilare codice java e generare un eseguibile ELF standard che non necessita della JVM.
Quanto sia efficace e funzionale non lo so.
la use gtk presumo serva per una qualche interfaccia, ma come ha detto k.gothmog meglio guardare nell'ebuild. _________________ Ciao da me! |
|
Back to top |
|
|
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Fri Sep 08, 2006 10:37 am Post subject: |
|
|
Ho guardato l'ebuild. sembra che la flag gtk installi alcune librerie grafiche...
Potresti essere piu' chiaro riguardo all'utilita' di gtk in gcc?
"Se non ti serve non usarla" non mi sembra adatto in questo caso. Io so di avere bisogno di un compilatore per java, vorrei sapere se mi conviene usare gcj o il compilatore classico |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Fri Sep 08, 2006 10:44 am Post subject: |
|
|
da quel che ho visto con un equery files le librerie gtk che aggiunge sono parte di gcj, o comunque sono librerie java.
o forse ne ho persa qualcuna? |
|
Back to top |
|
|
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Fri Sep 08, 2006 10:50 am Post subject: |
|
|
Qundi vuoi dire che aggiunge il supporto gtk al compilatore java e non al compilatore C? |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Fri Sep 08, 2006 10:52 am Post subject: |
|
|
la flag gtk aggiunge, come in OGNI pacchetto il supporto alle librerie GTK. ma non il supporto alla compilazione. quello non c'entra
quindi installa un ambiente grafico GTK. personalmente è roba che onn attiverei mai su un compilatore
l'importazione di default è disattivata. non vedo perché porsi il problema
GCJ è un compilatore java scritto per fare fronte al problema che i JDK non sono GPL né open-source. non vorrei dire una vaccata, ma mi sembra che alla fine produca addirittura un eseguibile, invece che un bytecode.
in ogni caso è ottenuto per reverse engineering, e si sa come vanno queste cose.
certe volte funziona davvero male. basta cercare un po' in giro per rendersi conto dei problemi che ha |
|
Back to top |
|
|
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Fri Sep 08, 2006 11:03 am Post subject: |
|
|
Cioe', fammi capire bene, installa un supporto grafico al compilatore? Ma che me ne faccio? L'utilita' dove sta?
Si hai ragione, mette un po' i brividi. Se mi capita una macchina di test pero' provo a vedere cosa succede con quella flag...
Si', il gcj puo' produrre oltre che a bytecode anche direttamente gli eseguibili, infatti era questa feature che mi intrigava un po'... cmq da quel che ho capito e' meglio lasciar stare.
Riguardo al fatto che gtk e' impostata disattivata come default lo sapevo, ma mi piace capire le cose con cui ho a che fare.
E poi, anche windows era impostato come default nel mio computer, non sempre una cosa perche' e' di default e' la migliore, no??
Cmq grazie 1000 a tutti, anche per la velocita' nel rispondere |
|
Back to top |
|
|
.:chrome:. Advocate
Joined: 19 Feb 2005 Posts: 4588 Location: Brescia, Italy
|
Posted: Fri Sep 08, 2006 11:29 am Post subject: |
|
|
[quote="dorian-gray84"]Cioe', fammi capire bene, installa un supporto grafico al compilatore?
no. installa le librerie grafiche
cosa vuol dire "supporto grafico al compilatore"?
dorian-gray84 wrote: | Si', il gcj puo' produrre oltre che a bytecode anche direttamente gli eseguibili, infatti era questa feature che mi intrigava un po'... cmq da quel che ho capito e' meglio lasciar stare. |
con Fedora c'è una versione di eclipse compilata con GCJ. non è del tutto inaffidabile, ma insomma... le specifiche di java non parlano di eseguibili. già quello mi pare una gran porcata
inoltre *può accadere* che il codice compilato non faccia esattamente quelloc he dovrebbe. questo è un dato di fatto |
|
Back to top |
|
|
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Fri Sep 08, 2006 11:40 am Post subject: |
|
|
MMhhh...alora non ho capito bene.
Cosa intendi con installa le librerie? Il fatto che io posso usare funzioni gtk? |
|
Back to top |
|
|
richard77 Apprentice
Joined: 21 Apr 2004 Posts: 281
|
Posted: Tue Sep 12, 2006 7:40 am Post subject: |
|
|
dorian-gray84 wrote: | MMhhh...alora non ho capito bene.
Cosa intendi con installa le librerie? Il fatto che io posso usare funzioni gtk? |
https://forums.gentoo.org/viewtopic-t-495892-highlight-gtk+gcc.html
Per i non anglofoni:
Con la use gtk i programmi compilati con gcj usano le gtk come gui.
(chi ha risposto nel thread non ne è sicuro: "Presumably" -> Presumibilmente) _________________ Fletto i muscoli e sono nel vuoto |
|
Back to top |
|
|
bandreabis Advocate
Joined: 18 Feb 2005 Posts: 2495 Location: イタリアのロディで
|
Posted: Tue Sep 12, 2006 7:46 am Post subject: |
|
|
dorian-gray84 wrote: | E poi, anche windows era impostato come default nel mio computer, non sempre una cosa perche' e' di default e' la migliore, no?? |
Non credo che come paragone sia azzeccato, non credi? _________________ Il numero di post non fa di me un esperto! Anzi! |
|
Back to top |
|
|
dorian-gray84 Tux's lil' helper
Joined: 23 Apr 2005 Posts: 107 Location: Ravenna
|
Posted: Wed Sep 13, 2006 10:25 pm Post subject: |
|
|
Boh, era la prima cosa che mi era venuta in mente, e poi era un paragone adatto in ambito informatico...
E' che odio la parola "default" e il suo significato.
E' come la bellezza, una cosa tutta soggettiva.
Ma qui stiamo andando sul filosofico e non mi sembra l'ora adatta... Notte! |
|
Back to top |
|
|
darkmanPPT Veteran
Joined: 13 Apr 2006 Posts: 1069 Location: vi/bo
|
Posted: Mon May 07, 2007 12:43 pm Post subject: |
|
|
ma quindi, se ho ben capito....
L'UNICO MODO per compilare un file java (.java) in un eseguibile sarebbe quello di attivare la flag gcj?
cioè, non ci sono altri modi per compilare i .java in codice eseguibile (normalissimo binario)?
questo lo chiedo perchè mi chiedevo se fosse possibile in qualche modo utilizzare java come il C (performante).... solo con la facilità di scrittura di codice java.
con questo niente di male sul C++ o sul C............
però.... scrivere programmi in java e decisamente più semplice
(ok.... punti di vista)
-----------------------
ho visto che nel java-sdk esiste anche un javah... che genera file C.
cosa ne pensate? _________________ Darkman |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon May 07, 2007 4:28 pm Post subject: |
|
|
C'è un overlay specifico per il progetto di eliminare le jvm ed usare solo compilati. Non so quanto va avanti ma c'è.
Usare le gtk ti porta incompatibilità ma rende il codice più veloce, usare gtk senza gcj è quasi inutile (ma ti crea un entusiasmante circular dep se installi da stage3, e se hai anche doc attiva diventi vecchio prima di scovarlo). Alcuni pacchetti (per esempio i pdftools) scrittin in java se gcj è presente vengono compilati con questa e sono decisamente più veloci (chissà che non mi decida a farlo col dannato azureus), avere gcj attiva se usi flag di ottimizzazione "pesanti" ti può esporre al rischio di non riuscire a compilare gcc (ed in tal caso ti basta usare ottimizzazioni più umane o disalbilitare le use incriminate) _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
darkmanPPT Veteran
Joined: 13 Apr 2006 Posts: 1069 Location: vi/bo
|
Posted: Tue May 08, 2007 6:01 pm Post subject: |
|
|
djinnZ wrote: | C'è un overlay specifico per il progetto di eliminare le jvm ed usare solo compilati. Non so quanto va avanti ma c'è.
Usare le gtk ti porta incompatibilità ma rende il codice più veloce, usare gtk senza gcj è quasi inutile (ma ti crea un entusiasmante circular dep se installi da stage3, e se hai anche doc attiva diventi vecchio prima di scovarlo). Alcuni pacchetti (per esempio i pdftools) scrittin in java se gcj è presente vengono compilati con questa e sono decisamente più veloci (chissà che non mi decida a farlo col dannato azureus), avere gcj attiva se usi flag di ottimizzazione "pesanti" ti può esporre al rischio di non riuscire a compilare gcc (ed in tal caso ti basta usare ottimizzazioni più umane o disalbilitare le use incriminate) |
si... infatti il gcc 4.1.1-r3 nn riesco a ricompilarlo.
però devo ammettere che con il 3.4.6-r2 compilo e abilito la flag gcj... e in effetti funziona!
il problema è che nn capisco come mai il gcc 4-1-1r3 nn compili. boh... ad un certo punto esce con "errore".
stop. ma non è che tipo manchino file, path, librerie, etc etc... boh... esce dopo aver compilato un file senza un errore. dice solo "errore"....
mah....
io ho l'impressione che sia mancanza di spazio libero (difatti si blocca quando mancano 30 mb alla fine dalla memoria ram... ah, si... compilo in ram, ovviamente ) _________________ Darkman |
|
Back to top |
|
|
riverdragon Veteran
Joined: 14 Sep 2006 Posts: 1269 Location: Verona
|
Posted: Wed May 09, 2007 9:58 am Post subject: |
|
|
Se termina per l'esaurimento della ram allocata per /var/tmp/portage puoi leggere, una decina di righe sopra alla segnalazione, "No space left on device". Gcc ha bisogno, se non sbaglio, di quasi un GB di spazio per i file temporanei che crea, prova a smontare la partizione tmpfs in cui compili e riprova. |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Wed May 09, 2007 5:50 pm Post subject: |
|
|
qualcosina in più con gcj e gtk attive e la compilazione in se stessa richiede più memoria rispetto al gcc statndard. Devi per forza compilare su disco se non hai almeno 3 GB di ram effettiva.
E comunque se usi l'hardening ti consiglio vivamente di fare un pacchetto binario del gcc _senza gcj_ da tenere di scorta. Non so se hanno risolto ma c'è il rischio che ti ritrovi un gcc danneggiato che non riesce più a ricompilare se stesso. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
darkmanPPT Veteran
Joined: 13 Apr 2006 Posts: 1069 Location: vi/bo
|
Posted: Wed May 09, 2007 7:35 pm Post subject: |
|
|
uhm... che sfiga...
premetto che senza la flag gcj si compila in meno di 850 MB di ram
ma domanda:
Code: |
[I] sys-devel/gcc
Available versions:
...
(3.4) ~3.4.1-r3 3.4.4-r1 3.4.5 3.4.5-r1 ~3.4.6 3.4.6-r1 3.4.6-r2
(4.0) ~*4.0.3 ~*4.0.4
(4.1) ~4.1.0-r1 4.1.1 4.1.1-r1 4.1.1-r3 ~4.1.2
Installed versions: 3.4.6-r2(3.4)(16:32:40 05/07/07)(-altivec -bootstrap -boundschecking -build -d -doc fortran gcj gtk -hardened -ip28 -ip32r10k -multilib -multislot -n32 -n64 nls -nocxx -nopie -nossp -objc -test -vanilla)
4.1.1-r3(4.1)(22:11:48 01/19/07)(-altivec -bootstrap -build -doc fortran -gcj gtk -hardened -ip28 -ip32r10k -mudflap -multilib -multislot -n32 -n64 nls -nocxx -objc objc++ objc-gc -test -vanilla)
|
ho un po' di flag attivate...
però il gcc 3.4.6 (che nn so ancora se mi serve ancora o meno) si compila in meno di 800mb.
io ho 1GB di ram. ho 1.7GB di swap (sono stato un po' largo .
3GB dici?
è possibile montare come tmpfs più spazio di quanto se ne abbia? cioè, tipo da utilizzare anche la swap?
probabilmente sto sparando minchiate.... però era per chiedere.
ps: già che ci sono vi chiedo.....
ma c'è un how to che spieghi tutte le flag di gcc? perchè poi mi si attiva la flag fortran? (ma chi lo vuole il fortran! ) _________________ Darkman |
|
Back to top |
|
|
Ic3M4n Advocate
Joined: 02 Nov 2004 Posts: 3489 Location: Bergamo.
|
Posted: Wed May 09, 2007 8:05 pm Post subject: |
|
|
tmpfs va in ram + swap
ramfs solo in ram. |
|
Back to top |
|
|
darkmanPPT Veteran
Joined: 13 Apr 2006 Posts: 1069 Location: vi/bo
|
Posted: Wed May 09, 2007 8:15 pm Post subject: |
|
|
Ic3M4n wrote: | tmpfs va in ram + swap
ramfs solo in ram. |
grazie
infatti uso tmpfs
per chi interessa....
per compilare gcc 4.1.1 con gjc attiva e fortran (ma a che mi serve????) disattivato. sono sufficienti 1.1 GB per compilare _________________ Darkman |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Fri May 11, 2007 4:00 pm Post subject: |
|
|
darkmanPPT wrote: | e fortran (ma a che mi serve????) |
[OT] ad usare un ottimo ed apprezzatissimo (da matematici e fisici, ed è tutto dire) linguaggio di programmazione dalla lunga ed interminabile storia.
nonchè il più odiato dopo il cobol nella storia dellìimformatica[/OT]
scusa mi ero scordato che i miei valori erano con use "doc". _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
darkmanPPT Veteran
Joined: 13 Apr 2006 Posts: 1069 Location: vi/bo
|
Posted: Sat May 12, 2007 7:44 am Post subject: |
|
|
djinnZ wrote: | darkmanPPT wrote: | e fortran (ma a che mi serve????) |
[OT] ad usare un ottimo ed apprezzatissimo (da matematici e fisici, ed è tutto dire) linguaggio di programmazione dalla lunga ed interminabile storia.
nonchè il più odiato dopo il cobol nella storia dellìimformatica[/OT]
|
apprezzato quanto vuoi.... ma è assolutamente stupido come linguaggio!
cmq vedo che tanti (tra matematici e fisici) si stanno "convertendo" al C. sarebbe anche ora visto che il C esiste da un bel po'!
mah.... io ho una certa repulsione per il fortran.
tornando a noi.... al GCJ...
allora, io l'ho installato... PERO'... c'è un però....
ho installato tutto senza problemama. se faccio:
Code: | revdep-rebuild -p
Configuring search environment for revdep-rebuild
Checking reverse dependencies...
Packages containing binaries and libraries broken by a package update
will be emerged.
Collecting system binaries and libraries... done.
(/root/.revdep-rebuild.1_files)
Collecting complete LD_LIBRARY_PATH... done.
(/root/.revdep-rebuild.2_ldpath)
Checking dynamic linking consistency...
broken /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/lib-org-w3c-dom.la (requires /usr/lib/libgcj.la)
broken /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/lib-org-xml-sax.la (requires /usr/lib/libgcj.la)
broken /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgcjawt.la (requires /usr/lib/lib-gnu-java-awt-peer-gtk.la)
broken /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/libgij.la (requires /usr/lib/libgcj.la)
done.
(/root/.revdep-rebuild.3_rebuild)
Assigning files to ebuilds... done.
(/root/.revdep-rebuild.4_ebuilds)
Evaluating package order... done.
(/root/.revdep-rebuild.5_order)
All prepared. Starting rebuild...
emerge --oneshot -p =sys-devel/gcc-4.1.1-r3 =sys-devel/gcc-3.4.6-r2
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-devel/gcc-4.1.1-r3
[ebuild R ] sys-devel/gcc-3.4.6-r2
Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
|
e se ri-emergo rimane tutto uguale. che scatole...... _________________ Darkman |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Sat May 12, 2007 10:34 am Post subject: |
|
|
fix_libtool.sh tanto per sicurezza poi crea un link simbolico alla libgcj.la del compilatore che usi. Avevo aperto un bug a tal proposito ma non mi pare che abbia avuto tanto seguito. In teoria eselect/gcc-config dovrebbero gestire il link ma non lo fanno od in alternativa dovrebbe puntare direttamente a /usr/lib/gcc/<versione>/libgcj.la.
Visto che è molto particolare il compilatore java non è nato per essere "slottato".
[OT]Il fortran non è un linguaggio stupido è solo un fossile vivente.
Considera che quando è nato già avere una telescrivente (strano apparato dove invece dello schermo c'èra una lunga striscia di carta) era un lusso esagerato
Ora è l'idiozia intrinseca alla specie subumana che lo usa e lo impone a farlo sopravvivere (solita sparata razzista che sottolineo come sarcastica, a scanso di equivoci) come anche il cobol (solo che li è anche per continuare a giustificare la presenza di tanti esseri inutili e per strafottenza verso l'utenza).
Per il fortran ricordo quell'emerito imbecille di professore che lo decantava solo perchè c'èra una enorme libreria di codice già pronto (tanto faceva sempre e solo le stesse idiozie con un intero vax a disposizione) per il cobol... mi auto-censuro, mi viene solo da smoccolare e non voglio incorrere nelle ire dei mods.
[/OT] _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Onip Advocate
Joined: 02 Sep 2004 Posts: 2912 Location: Parma (Italy)
|
Posted: Mon May 14, 2007 8:00 am Post subject: |
|
|
E' un vecchissimo bug. A leggere i commenti trovi anche un paio di workaround. _________________ Linux Registered User n. 373835
Titus Lucretius Carus, De Rerum Natura - Tantum religio potuit suadere malorum |
|
Back to top |
|
|
|