<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">On Wed, Jul 8, 2020 at 11:52 AM Christian Mauderer <<a href="mailto:christian.mauderer@embedded-brains.de">christian.mauderer@embedded-brains.de</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 08/07/2020 08:13, Sebastian Huber wrote:<br>
> On 08/07/2020 08:10, Niteesh G. S. wrote:<br>
> <br>
>> On Tue, Jul 7, 2020 at 10:42 AM Sebastian Huber<br>
>> <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a><br>
>> <mailto:<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>>> wrote:<br>
>><br>
>>     Hello,<br>
>><br>
>>     the problem is that the new build system doesn't export optimization<br>
>>     flags such as -Wl,--gc-sections. The libbsd build should enable this<br>
>>     linker option unconditionally.<br>
>><br>
>><br>
>> Thank you. I got it fixed (temporarily) by modifying rtems.py.<br>
>><br>
>> conf.env.CFLAGS    = cflags['cflags'] + ['-ffunction-sections'] +<br>
>> ['-fdata-sections']<br>
> This instructs the compiler to add data elements and functions into<br>
> separate sections. This is necessary so that the linker can carry out<br>
> the garbage collection.<br>
<br>
There is an unused function in libbsd that can't link because a function<br>
it calls isn't there. Till now the two flags had been provided by the<br>
BSP. It seems that now they are not provided anymore.<br>
<br>
The problematic function is m_unmappedtouio in uipc_mbuf.c. It tries to<br>
use PHYS_TO_VM_PAGE which isn't defined in libbsd. I think we should<br>
just remove m_unmappedtouio (with #ifndef __rtems__) on the longer term.<br>
But not having the -ffunction-sections and -fdata-sections most likely<br>
makes our binary bigger and maybe leads to other similar bugs. Therefore<br>
I suggested to add the CFLAGS first.<br>
<br>
>><br>
>> As per Christian suggestions, I tried exporting CFLAGS with these GCC<br>
>> flags and then calling ./waf configure but they didn't work.<br>
> You have to add -Wl,--gc-sections to the linker flags.<br>
<br>
As far as I know Niteesh used that one too. I think for that one LDFLAGS<br>
worked as a workarround.<br></blockquote><div> </div><div><div class="gmail_default" style="font-size:small">Yes, I did try exporting LDFLAGS too but they also didn't work out.</div><div class="gmail_default" style="font-size:small">I tried the following:</div><div class="gmail_default" style="font-size:small">1) export LDFLAGS="-Wl,--gc-sections"</div><div class="gmail_default" style="font-size:small">2) ./waf configure --prefix=$RTEMS/6 --rtems-version=6 --rtems-bsps=arm/beagleboneblack --buildset=buildset/minimal.ini</div><div class="gmail_default" style="font-size:small">I also tried running</div><div class="gmail_default" style="font-size:small">1) LDFLAGS="-Wl,--gc-sections" ./waf configure --prefix=$RTEMS/6 --rtems-version=6 --rtems-bsps=arm/beagleboneblack --buildset=buildset/minimal.ini</div></div><div class="gmail_default" style="font-size:small">Both of them didn't work out.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">I might be wrong here but waf seems to add the "-Wl,--gc-sections"</div><div class="gmail_default" style="font-size:small">flags if "--function-sections" flags are defined.</div><div class="gmail_default" style="font-size:small"><a href="https://git.rtems.org/rtems_waf/tree/rtems.py#n389">https://git.rtems.org/rtems_waf/tree/rtems.py#n389</a><br></div><div class="gmail_default" style="font-size:small"><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Best regards<br>
<br>
Christian<br>
-- <br>
--------------------------------------------<br>
embedded brains GmbH<br>
Herr Christian Mauderer<br>
Dornierstr. 4<br>
D-82178 Puchheim<br>
Germany<br>
email: <a href="mailto:christian.mauderer@embedded-brains.de" target="_blank">christian.mauderer@embedded-brains.de</a><br>
Phone: +49-89-18 94 741 - 18<br>
Fax:   +49-89-18 94 741 - 08<br>
PGP: Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
</blockquote></div></div>