Can't build minimal buildset for libbsd on IMXRT

Christian Mauderer oss at c-mauderer.de
Fri Jun 11 13:22:42 UTC 2021


Hello Peter,

On 11/06/2021 15:12, dufault at hda.com wrote:
> 
> 
>> On Jun 11, 2021, at 08:07 , Christian Mauderer <oss at c-mauderer.de> wrote:
>>
>> Hello Peter,
>>
>> On 11/06/2021 13:23, Peter Dufault wrote:
>>> I tried to build the "minimal" buildset for the IMXRT BSP and I get undefined INET6 references - _bsd_inet6_pfil_hook, _bsd_ip6stat, etc.  Only two executables are created - swi01.exe and timeout01.exe.  For "default" (almost) everything builds except for a few that won't fit in RAM but I don't currently have enough RAM to run anything so I figured my first step should be to build "minimal".
>>
>> I just tried it with beagle bone black: The minimal buildset builds fine. Can you tell from the output who is referencing the inet6_pfil_hook and ip6stat?
> 
> Let's look at inet6_pfil_hook.  It's only called in "if_bridge.c" by bridge_pfil, bridge_fragment, bridge_dummynet, bridge_broadcast, bridge_ioctl, bridge_ioctl_add, bridge_forward, and bridge_input.

Yes, right. But if I didn't miss one, they should be all called only if 
INET6 is defined (in rtemsbsd/include/rtems/bsd/local/opt_inet6.h). In 
the minimal buildset that shouldn't be the case.

Do you have a previously installed libbsd in your prefix that might mess 
with the build?

> 
> These are all statics.  Is there something going on with inlining and "garbage collecting"?  Do I have C flags messed up?  I'm not sure how this is works as I see that "_bsd_inet6_pfil_hook" is defined in ip6_input.c and the object is in the built libbsd.a.  I see there's some -Bstatic and -Bdynamic stuff going on in the link.

The ip6_input shouldn't even be in the minimal buildset. Minimal doesn't 
have IPv6 support.

Best regards

Christian

> 
> Start of the link of netshell01.  I can send more info if you'd like, I don't want to swamp the list.
> 
> [1147/1178] Linking build/arm-rtems6-imxrt1052-minimal/netshell01.exe
> 06:29:59 runner ['/opt/flatland/opt/rtems-6/bin/arm-rtems6-gcc', '-mthumb', '-mcpu=cortex-m7', '-mfpu=fpv5-d16', '-mfloat-abi=hard', '-I/opt/flatland/opt/rtems-6/arm-rtems6/imxrt1052/lib/include', '-MMD', '-B/opt/flatland/opt/rtems-6/arm-rtems6/imxrt1052/lib', '-qrtems', '-Wl,--gc-sections', 'testsuite/netshell01/test_main.c.65.o', 'testsuite/netshell01/shellconfig.c.65.o', '-o/home/dufault/development/rtems/rtems-libbsd/build/arm-rtems6-imxrt1052-minimal/netshell01.exe', '-Wl,-Bstatic', '-L.', '-lbsd', '-Wl,-Bdynamic', '-lbsd', '-lm', '-lz', '-lrtemstest']
> /opt/flatland/opt/rtems-6/lib/gcc/arm-rtems6/10.3.1/../../../../arm-rtems6/bin/ld: ./libbsd.a(if_bridge.c.17.o): in function `bridge_pfil':
> /home/dufault/development/rtems/rtems-libbsd/build/arm-rtems6-imxrt1052-minimal/../../freebsd/sys/net/if_bridge.c:3346: undefined reference to `_bsd_inet6_pfil_hook'
> 
> 
>>
>>> The configure command is:
>>> ./waf configure --rtems-tools=bla/rtems-6 --rtems=bla/rtems-6 --rtems-bsps=arm/imxrt1052 --buildset=buildset/minimal.ini
>>
>> Looks OK.
>>
>>> The libbsd is a recent 6-freebsd=12
>>> is "minimal" built regularly?  Any hints?
>>
>> No it is not build regularly. I think the buildset are often forgotten if someone works on libbsd. For example "everything" doesn't build at the moment.
>>
>> Best regards
>>
>> Christian
>>
>>> Peter
>>> -----------------
>>> Peter Dufault
>>> HD Associates, Inc.      Software and System Engineering
>>> This email is delivered through the public internet using protocols subject to interception and tampering.
>>> _______________________________________________
>>> devel mailing list
>>> devel at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/devel
> 
> Peter
> -----------------
> Peter Dufault
> HD Associates, Inc.      Software and System Engineering
> 
> This email is delivered through the public internet using protocols subject to interception and tampering.
> 


More information about the devel mailing list