<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 27, 2023 at 7:46 PM Chris Johns <<a href="mailto:chrisj@rtems.org">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 28/3/2023 2:28 am, Kinsey Moore wrote:<br>
> This change moves the use of items configured in config.ini from using<br>
> -D to set defines on the command line to using a header built by waf.<br>
> This also resolves an issue where configuration parameters were bleeding<br>
> between BSPs when multiple BSPs were configured.<br>
> ---<br>
>  rtemslwip/beaglebone/lwipopts.h |  2 ++<br>
>  rtemslwip/zynqmp/lwipopts.h     |  2 ++<br>
>  wscript                         | 19 ++++++++++++++++---<br>
>  3 files changed, 20 insertions(+), 3 deletions(-)<br>
> <br>
> diff --git a/rtemslwip/beaglebone/lwipopts.h b/rtemslwip/beaglebone/lwipopts.h<br>
> index 888fae4..71ddd9f 100644<br>
> --- a/rtemslwip/beaglebone/lwipopts.h<br>
> +++ b/rtemslwip/beaglebone/lwipopts.h<br>
> @@ -117,6 +117,8 @@<br>
>  #ifndef __LWIPOPTS_H__<br>
>  #define __LWIPOPTS_H__<br>
>  <br>
> +#include <configuredlwipbspopts.h><br>
> +<br>
>  /*****************************************************************************<br>
>  **                           CONFIGURATIONS<br>
>  *****************************************************************************/<br>
> diff --git a/rtemslwip/zynqmp/lwipopts.h b/rtemslwip/zynqmp/lwipopts.h<br>
> index feabe73..d1b7334 100644<br>
> --- a/rtemslwip/zynqmp/lwipopts.h<br>
> +++ b/rtemslwip/zynqmp/lwipopts.h<br>
> @@ -27,6 +27,8 @@<br>
>  #ifndef __LWIPOPTS_H__<br>
>  #define __LWIPOPTS_H__<br>
>  <br>
> +#include <configuredlwipbspopts.h><br>
<br>
What about something simpler like `lwip-config.h`?<br></blockquote><div><br></div><div>I'll simplify it to that. This needs a v2 anyway due to a different issue. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
What include "zynqmp/lwipopts.h"? Sorry I do not know the lwip directory<br>
structure. Is this by arch or a -I trick to allow just lwipopts.h?<br>
<br></blockquote><div>lwipopts.h is included directly by lwIP code and the target is selected by varying include paths based on BSP as configured by the JSON files under defs/. Eventually, all BSPs will use the same lwipopts.h and bsp-specific variations will be introduced by this configuration generated file and the existing BSP-specific include.<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">
> +<br>
>  #define SYS_LIGHTWEIGHT_PROT 1<br>
>  <br>
>  #define NO_SYS 0<br>
> diff --git a/wscript b/wscript<br>
> index f1b919e..5e30279 100644<br>
> --- a/wscript<br>
> +++ b/wscript<br>
> @@ -91,15 +91,23 @@ def get_configured_bsp_options(cp, arch, bsp):<br>
>      return options<br>
>  <br>
>  <br>
> +bsp_opts_target = "bsps/include/configuredlwipbspopts.h"<br>
> +<br>
> +<br>
>  def bsp_configure(conf, arch_bsp):<br>
>      cp = get_config()<br>
>      arch = rtems.arch(arch_bsp)<br>
>      bsp = rtems.bsp(arch_bsp)<br>
>      config_options = get_configured_bsp_options(cp, arch, bsp)<br>
>      for key, val in config_options.items():<br>
> -        flag = "-D"+key+"="+val<br>
> -        conf.env.CFLAGS.append(flag)<br>
> -        conf.env.CXXFLAGS.append(flag)<br>
> +        conf.define(key, val, quote=False)<br>
> +    conf.env.include_key = []<br>
> +    conf.write_config_header(<br>
> +        arch_bsp + "/" + bsp_opts_target,<br>
<br>
Is this a file name? If so should it be a bld.path.??? node?<br></blockquote><div><br></div><div>This is based on how RTEMS generates its bspopts.h. I'll see if I can clean it up a bit.</div><div><br></div><div>Thanks for the review!</div><div><br></div><div>Kinsey <br></div></div></div>