
Dear Marek,
In message 201211010045.40817.marex@denx.de you wrote:
- You can enable LTO eventually -- long term plan -- which proved can
shrink the code size a bit
Do you have a workign example? You know, we don;t like adding dead code...
We've been digging with Albert, but nothing we can release just yet. This is a groundwork patch.
Dead code, which will not be added, then.
- Usage of LLVM/CLANG is now much more straightforward
Please elucidate?
Now you can simply replace gcc with clang and that _should_ work. Sure, I expect more work will be needed here, but this patch gives you all the ground to do that.
I. e. it's all speculation only? Such doesn't by much...
- Binutils usually lag behind the GCC development a bit, by using GCC to
do the link, we can remedy this problem
Grrrrghhhg. I lost you here. By not calling ld directly (where we know exactly what we are doing), but through a (somewhat unknown) GCC framework, we can magicly adjust any (claimed - by you) version differences? I cannot parse this.
GCC can do all the optimization magic (LTO ...) and then just let linker do the linking.
You were talking about "Binutils usually lag behind the GCC development". Now I would like you to explain how "by using GCC to do the link, we can remedy this problem".
You fail to provide any such explanation.
But actually, the 2) is the most important part. LTO will hopefully help us optimize U-Boot for size even better than it is now. But that will still need much more research. So this is only a patch that shall prepare the groundwork for this further research.
As is, it's just unused or dead code that adds a lot of complexity and buys nothing. Please submit as part of a patch series that makes successfull (and tested) use of LTO.
No, I won't, I don't have that part ready yet.
Then please _re_submit when you have the rest that actually needs any such changes.
Besides, the sandbox target already uses gcc linking. Shall we also convert it to use LD instead then ?
Note that sandbox is actually very different, in such as it really tried to implement a standard onforming C program, running in a standard C execution environment. This is totally different from the bare metal code we have on any real hardware.
Best regards,
Wolfgang Denk