libbsd configure removes -D flags from CFLAGS of pkg-config

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Sep 14 05:06:54 UTC 2020


On 14/09/2020 01:46, Chris Johns wrote:
> On 13/9/20 3:46 am, Sebastian Huber wrote:
>> Hello,
>>
>> I can't build the libbsd for powerpc/beatnik:
>>
>> ---------------------------------------------
>> Compiler version (powerpc-rtems6-gcc)
>> 10.2.1 20200904 (RTEMS 6, RSB 47f32b8b1a597b5ed3475722bdc155249ef51115, Newlib
>> a0d7982)
>> Opening and load pkgconfig:
>> /ramdisk/git-rtems-6/build/install/lib/pkgconfig/powerpc-rtems6-beatnik.pc
>> -----------------------------------------
>> CFLAGS ->
>>     -qrtems -B/ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib
>> -D__ppc_generic -mcpu=7400
>> LDFLAGS ->
>> pkconfig warning: Label not found: LDFLAGS
>>
>> LIB ->
>> pkconfig warning: Label not found: LIB
>>
>> ---------------------------------------------
>> Checking for a valid RTEMS BSP installation
>> ==>
>> #include <rtems.h>
>> void Init(rtems_task_argument arg) { (void)arg; }
>> #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
>> #define CONFIGURE_MAXIMUM_TASKS 1
>> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
>> #define CONFIGURE_INIT
>> #include <rtems/confdefs.h>
>> <==
>> [1/2] Compiling build/.conf_check_261484d99ea5da27480d47dee9a30c04/test.c
>>
>> ['/build/rtems/6/bin/powerpc-rtems6-gcc', '-qrtems',
>> '-B/ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib', '-mcpu=7400',
>> '-MMD', '../test.c', '-c',
>> '-o/ramdisk/git-rtems-libbsd/build/.conf_check_261484d99ea5da27480d47dee9a30c04/testbuild/test.c.1.o']
>>
>> err: In file included from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/libcpu/powerpc-utility.h:46,
>>
>>                   from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/bsp/vectors.h:40,
>>
>>                   from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/bsp.h:45,
>>                   from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/rtems/confdefs/bsp.h:53,
>>
>>                   from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/rtems/confdefs/extensions.h:45,
>>
>>                   from
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/rtems/confdefs.h:67,
>>
>>                   from ../test.c:7:
>> /ramdisk/git-rtems-6/build/install/powerpc-rtems6/beatnik/lib/include/rtems/powerpc/powerpc.h:289:2:
>> error: #error "Unsupported CPU Model"
>>    289 | #error "Unsupported CPU Model"
>>        |  ^~~~~
>>
>> I haven't figured out why the "-D__ppc_generic" is removed from the CFLAGS.
> 
> There are multiple places filtering happens. It could be rtems_waf ...
> 
> https://git.rtems.org/rtems_waf/tree/rtems.py#n840
> 
> of pkgconfig in the RSB ...
> 
> https://git.rtems.org/rtems-source-builder/tree/rtems/config/rtems-bsp.cfg#n40
> https://git.rtems.org/rtems-source-builder/tree/source-builder/sb/config.py#n512
> 
> Exporting of internal build flags by RTEMS to applications needs to be consider
> a bug. This happens in a small number of cases like this one but the effort and
> complexity involved in managing these cases outside of Makefile.inc is growing.
> 
> I am reluctant to support adding exceptions to the filtering of flags to manage
> things like this because it is a slippery slope and fragile. The hack at the
> moment is to take the flags and remove the warning ones. In rtems_waf the
> filtering goes further to group the flags to isolate machine flags so the ABI
> can be cleanly exported to the 3rd party libraries and applications.

The goal should be to export the information in the new build system so 
that we don't have to filter it.

> 
> I think using a command line -Dsomething to control a machine configuration
> outside of the RTEMS build arena is fragile. Can this be added to the powerpc's
> bspopts.h as a #define for this BSP?

It is just something that came up during the testing of the new build 
system. I think this define can go away at some point in time.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

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


More information about the devel mailing list