The Following 35 Users Say Thank You to AapoRantalainen For This Useful Post: | ||
Acidspunk, anonymous, ArchiMark, Bad_Habit, bingomion, cproc, daniel_m, demolition, don_falcone, fw190, GrimyHR, Halftux, imo, int_ua, ivgalvez, ivyking, JadeH, Joseph9560, MartinK, Mentalist Traceur, Netweaver, nkirk, patemera, pelago, peterleinchen, reinob, sifo, Sohil876, StefanL, strange1712, szopin, tetris11_, theonelaw, Ungoliant, Wikiwide |
|
2012-01-25
, 11:00
|
Posts: 560 |
Thanked: 422 times |
Joined on Mar 2011
|
#2
|
|
2012-01-25
, 12:22
|
Posts: 3,074 |
Thanked: 12,960 times |
Joined on Mar 2010
@ Sofia,Bulgaria
|
#3
|
The Following 14 Users Say Thank You to freemangordon For This Useful Post: | ||
|
2012-01-25
, 15:12
|
|
Posts: 5,028 |
Thanked: 8,613 times |
Joined on Mar 2011
|
#4
|
The Following 9 Users Say Thank You to Estel For This Useful Post: | ||
|
2012-01-25
, 15:19
|
Posts: 856 |
Thanked: 1,681 times |
Joined on Apr 2010
@ Aleppo ,Syria
|
#5
|
The Following 4 Users Say Thank You to karam For This Useful Post: | ||
|
2012-01-25
, 15:22
|
Posts: 1,808 |
Thanked: 4,272 times |
Joined on Feb 2011
@ Germany
|
#6
|
Can it be assumed that...
- there are a number of bug fixes i.e. code compiled with 4.6 is more likely to behave as expected compared with code compiled with 4.2?
- there are some optimisations so code compiled with 4.6 should run faster than that compiled with 4.2?
These might seem unnecessary questions but I'd be interested to have clear answers all the same:
- can maemo make full use of software compiled with gcc/g++ 4.6?
- are additional/alternative libraries needed to run software compiled with 4.6 compared with 4.2? (seen note re: libc - anything else?)
- what happens when linking in other, existing libraries, frameworks or dependencies?
- if multiple library versions are required, will they fit on the device?
The Following 4 Users Say Thank You to reinob For This Useful Post: | ||
|
2012-01-25
, 15:27
|
Posts: 3,074 |
Thanked: 12,960 times |
Joined on Mar 2010
@ Sofia,Bulgaria
|
#7
|
gcc is only a compiler, so whether you use 4.2 or 4.6 should be irrelevant for the program you're compiling, so it will work equally good or bad
The only issue is with libraries that are internal to gcc (such as libstdc++).
The problem would be if you now wanted to upgrade to a newer glibc, but that's another story...
The Following 11 Users Say Thank You to freemangordon For This Useful Post: | ||
|
2012-01-25
, 21:44
|
Posts: 2,076 |
Thanked: 3,268 times |
Joined on Feb 2011
|
#8
|
The Following 3 Users Say Thank You to szopin For This Useful Post: | ||
|
2012-01-26
, 08:50
|
Posts: 1,808 |
Thanked: 4,272 times |
Joined on Feb 2011
@ Germany
|
#9
|
Incorrect, gcc 4.2.1 for ARM has bugs which are resolved in newer versions.
Look at the case with CSSU, Qt 4.7.4 and raster engine - it ended that it is -O3 flag that breaks it.
The Following 4 Users Say Thank You to reinob For This Useful Post: | ||
|
2012-01-26
, 09:35
|
Posts: 1,225 |
Thanked: 1,905 times |
Joined on Feb 2011
@ Quezon City, Philippines
|
#10
|
Release dates:
GCC 4.2.1 release (2007-06-18)
GCC 4.2.4 release (2008-05-19)
GCC 4.4.6 release (2011-04-16)
GCC 4.6.2 release (2011-08-26)
Maemo5 has gcc-4.2.1. We have already encountered programs, which need newer compiler. And there are some bug fixed on ARM-version of gcc-4.4 (atomic types are in 4.2 but actually not working on ARM until 4.4). Third reason is 4.6 has and will have more optimization on ARM (by e.g. Linaro, http://www.linaro.org)
Some developers are already using Tom Tanner's gcc-4.4 (
http://n900.tannerlab.com/pool/free/g/gcc-4.4/ ), but it is not in extras (-devel).
--
I have started to push new compiler to the extras-devel. There are needed libraries and newer tools (e.g. bison-2.4 and make-3.81) on repository (and autobuilder can use them). Seems to me that 4.2 can compile 4.6, so we can skip 4.4.
Some random thoughts:
*On i386-target multilib should not be used.
*Virtualized/emulated environments lacks RAM/SWAP, so -j1 might be the only way (I think issue is generated insn-attrtab.c)
*It might be must to use --disable-bootstrap (bootstrap="compiler test can it compile itself during process" (seems to be memory issue))
*I had some problems to not compile java
---
When program is compiled with newer gcc, it needs also newer libstdc++ (Is this true with only c++ applications?) .Do old programs work with new libstdc++ or should there be both then installed on device? (until we can recompile every program)
---
Should this be packages gcc-4.6 (building) and libstdc++6-4.6 (runtime)? Or could this overwrite gcc and libstdc++6?
---
This is Work In Progress, join discussion if you have something to contribute.
----------------
Edit:
Reason's for newer compiler:
*There are more and more applications which can't be built with old compiler, due bugs in old compiler or new features on new compiler. This is proven to be true. (But we can still claim that those new applications are not needed, or we can port them to use old compiler)
*Possible better optimization: E.g. Linaro is making gcc 'better' for ARM speaking code size and execution speed. It is not (yet) proved that this happens on N900.
*THUMB2
http://www.cnx-software.com/2011/04/...e-performance/
(I have not seen tests for N900)
*NEON (whatever this means...)
Last edited by AapoRantalainen; 2012-02-11 at 22:37. Reason: motivation added