|
While working on Bibo, I observed some unexpected differences between GCC
3.4.6 and gcc 4.4.1. Specifically, one of the XS Lisp demo programs that is
fine when built with 3.4.6 is too large (section .bss not within region ram)
when built with 4.4.1. The only change was the compiler version being used.
The optimization argument was -Os (optimize for size) and the binutils
version was 2.16.1.
Interestingly, bibo.srec and three of the four libraries are smaller when
built using 3.4.6 (libfloat.a is the same size either way), but if there is
a difference in the size of the demo programs, those built using 4.4.1 are
usually smaller (memtest.lx is the only exception here).
Below is a chart listing what I found. Column 1 is the comparison, 2 is
the 3.4.6-built size, 3 is the 4.4.1-built size, and 4 is the file name.
Ver 3.4.6 4.4.1 File
========================
(3) 35892 - 38496 - bibo.srec (~2.6k)
(3) 10018 - 10470 - libc.a (452)
(3) 2774 - 3002 - libc++.a
(-) 9576 - 9576 - libfloat.a (228)
(3) 5320 - 6448 - libmint.a (1128)
(-) 278 - 278 - c++.lx
(4) 548 - 520 - cpu.lx
(4) 392 - 370 - dccthrottle.lx
(-) 90 - 90 - helloworld.lx
(-) 202 - 202 - helloworld_lnp.lx
(4) 372 - 340 - linetrack.lx
(3) 228 - 234 - memtest.lx
(-) 78 - 78 - robots.lx
(4) 262 - 250 - rover.lx
(-) 144 - 144 - sound.lx
(4) 4230 - 4198 - trailerbot.lx
(chart best view with a fixed-width font)
Anyway, I thought this was interesting enough to pass along.
Observations/comments welcome....
Matthew
|
|
Message has 1 Reply: | | Re: GCC 3.4.6 vs. 4.4.1
|
| Hi, (...) I would just like to add that this matches my experiences, although using some 4.0 version of GCC at that time: I wasn't able to produce working programs (not even sure about BrickOS kernel) using any GCC version newer than 3.4.6. This is (...) (15 years ago, 16-Sep-09, to lugnet.robotics.rcx.legos)
|
2 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|