NEW BUILD SYSTEM: Cannot build rtems-libbsd

Christian Mauderer christian.mauderer at embedded-brains.de
Wed Jul 8 06:41:32 UTC 2020


On 08/07/2020 08:35, Niteesh G. S. wrote:
> On Wed, Jul 8, 2020 at 11:52 AM Christian Mauderer
> <christian.mauderer at embedded-brains.de
> <mailto:christian.mauderer at embedded-brains.de>> wrote:
> 
>     On 08/07/2020 08:13, Sebastian Huber wrote:
>     > On 08/07/2020 08:10, Niteesh G. S. wrote:
>     >
>     >> On Tue, Jul 7, 2020 at 10:42 AM Sebastian Huber
>     >> <sebastian.huber at embedded-brains.de
>     <mailto:sebastian.huber at embedded-brains.de>
>     >> <mailto:sebastian.huber at embedded-brains.de
>     <mailto:sebastian.huber at embedded-brains.de>>> wrote:
>     >>
>     >>     Hello,
>     >>
>     >>     the problem is that the new build system doesn't export
>     optimization
>     >>     flags such as -Wl,--gc-sections. The libbsd build should
>     enable this
>     >>     linker option unconditionally.
>     >>
>     >>
>     >> Thank you. I got it fixed (temporarily) by modifying rtems.py.
>     >>
>     >> conf.env.CFLAGS    = cflags['cflags'] + ['-ffunction-sections'] +
>     >> ['-fdata-sections']
>     > This instructs the compiler to add data elements and functions into
>     > separate sections. This is necessary so that the linker can carry out
>     > the garbage collection.
> 
>     There is an unused function in libbsd that can't link because a function
>     it calls isn't there. Till now the two flags had been provided by the
>     BSP. It seems that now they are not provided anymore.
> 
>     The problematic function is m_unmappedtouio in uipc_mbuf.c. It tries to
>     use PHYS_TO_VM_PAGE which isn't defined in libbsd. I think we should
>     just remove m_unmappedtouio (with #ifndef __rtems__) on the longer term.
>     But not having the -ffunction-sections and -fdata-sections most likely
>     makes our binary bigger and maybe leads to other similar bugs. Therefore
>     I suggested to add the CFLAGS first.
> 
>     >>
>     >> As per Christian suggestions, I tried exporting CFLAGS with these GCC
>     >> flags and then calling ./waf configure but they didn't work.
>     > You have to add -Wl,--gc-sections to the linker flags.
> 
>     As far as I know Niteesh used that one too. I think for that one LDFLAGS
>     worked as a workarround.
> 
>  
> Yes, I did try exporting LDFLAGS too but they also didn't work out.
> I tried the following:
> 1) export LDFLAGS="-Wl,--gc-sections"
> 2) ./waf configure --prefix=$RTEMS/6 --rtems-version=6
> --rtems-bsps=arm/beagleboneblack --buildset=buildset/minimal.ini
> I also tried running
> 1) LDFLAGS="-Wl,--gc-sections" ./waf configure --prefix=$RTEMS/6
> --rtems-version=6 --rtems-bsps=arm/beagleboneblack
> --buildset=buildset/minimal.ini
> Both of them didn't work out.

Have the flags been ignored and not used or did that not fix the
problem? I would assume the second. You should see the difference if you
call "./waf -v" and take a look at one of the linker calls to generate
the test applications.

> 
> I might be wrong here but waf seems to add the "-Wl,--gc-sections"
> flags if "--function-sections" flags are defined.
> https://git.rtems.org/rtems_waf/tree/rtems.py#n389
> 

That's a bit odd. I don't think that I ever used that flag. But you are
right: If CFLAGS contains the -function-section (only one -),
"-Wl,--gc-sections" is added to the LDFLAGS here.

>  
> 
>     Best regards
> 
>     Christian
>     -- 
>     --------------------------------------------
>     embedded brains GmbH
>     Herr Christian Mauderer
>     Dornierstr. 4
>     D-82178 Puchheim
>     Germany
>     email: christian.mauderer at embedded-brains.de
>     <mailto:christian.mauderer at embedded-brains.de>
>     Phone: +49-89-18 94 741 - 18
>     Fax:   +49-89-18 94 741 - 08
>     PGP: Public key available on request.
> 
>     Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
> 

-- 
--------------------------------------------
embedded brains GmbH
Herr Christian Mauderer
Dornierstr. 4
D-82178 Puchheim
Germany
email: christian.mauderer at embedded-brains.de
Phone: +49-89-18 94 741 - 18
Fax:   +49-89-18 94 741 - 08
PGP: Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


More information about the devel mailing list