On 12/10/21 11:59 pm, Ryan Long wrote:
 -----Original Message-----
> From: Chris Johns <chr...@rtems.org> 
> Sent: Friday, October 8, 2021 6:44 PM
> To: Ryan Long <ryan.l...@oarcorp.com>; devel@rtems.org
> Subject: Re: [PATCH] rtems-kernel: Implement kernel recipe using waf
> 
> Hi Ryan,
> 
> Thank you for taking this on.
> 
> I would like see one addition, a user supplied config.ini file that bypasses 
> any generated config file. The config needs to match the tool chain being 
> built and waf will need to complain if it does not but that is not a problem 
> for the RSB to manage.
> [Ryan Long] So this should be done in a separate patchset?

This patch is fine. I suggest using `--with-rtems-bsp-config=` to the RSB.

> 
> On 9/10/21 2:03 am, Ryan Long wrote:
>> Closes #4145
>> ---
>>  rtems/config/tools/rtems-kernel-6.cfg      |  8 ++-
>>  rtems/config/tools/rtems-kernel-common.cfg | 95 
>> +++++++++++++-----------------
>>  2 files changed, 47 insertions(+), 56 deletions(-)
>>
>> diff --git a/rtems/config/tools/rtems-kernel-6.cfg 
>> b/rtems/config/tools/rtems-kernel-6.cfg
>> index f1d0990..edc0eb1 100644
>> --- a/rtems/config/tools/rtems-kernel-6.cfg
>> +++ b/rtems/config/tools/rtems-kernel-6.cfg
>> @@ -2,10 +2,12 @@
>>  # RTEMS 5
>>  #
>>  
>> -%define rtems_kernel_version 3ec5f20484cc4201e1d7b87844505644533b6148
>> -%hash sha512 rtems-kernel-%{rtems_kernel_version}.tar.bz2 \
>> -              
>> BjMKrf5n1YR6IpiZrY5TUEzKATPRJxA2/6m6f833DdRu+RyLxccXqA4gHRdVUqFelFNQ3o0XdG4o1naBKYfhkQ==
>> +%define rtems_kernel_version 3bb97a30b17b6c138dead3e3a6b329c3b301cdb3
>>  
>> +%source set rtems_kernel 
>> +--rsb-file=rtems-kernel-%{rtems_kernel_version}.tar.gz 
>> +https://codeload.github.com/RTEMS/rtems/tar.gz/%{rtems_kernel_version
>> +}
> 
> Please use the rtems.org repo.
> 
>> +
>> +%hash sha512 rtems-kernel-%{rtems_kernel_version}.tar.gz \
>> +              
>> +m/ogwrJj4X60ewDIbV6WRj1MJa/22gQHQd56XiNMfvCr0nsvcXdkXKAObLIGYIGYfUyEw
>> +lVk3SRjjRFkFalDGQ==
>>  #
>>  # The RTEMS build instructions.
>>  #
>> diff --git a/rtems/config/tools/rtems-kernel-common.cfg 
>> b/rtems/config/tools/rtems-kernel-common.cfg
>> index 157c7a4..38af264 100644
>> --- a/rtems/config/tools/rtems-kernel-common.cfg
>> +++ b/rtems/config/tools/rtems-kernel-common.cfg
>> @@ -38,6 +38,11 @@
>>  %define rtems_bsp %{with_rtems_bsp}
>>  
>>  #
>> +# Configuration file used with waf
>> +#
>> +%define config_file config-%{_target}-%{rtems_bsp}.ini
>> +
>> +#
>>  # If no tools are provided use the prefix.
>>  #
>>  %ifn %{defined with_tools}
>> @@ -98,14 +103,6 @@ URL:      https://www.rtems.org/
>>   %define rtems_posix 0
>>  %endif
>>  
>> -%if %{defined with_rtems_legacy_network}
>> - %define rtems_networking 1
>> -%endif
>> -
>> -%if %{defined with_rtems_cxx}
>> - %define rtems_cxx 1
>> -
>>  %if %{defined with_rtems_bspopts}
>>   %define bspopts %{with_rtems_bspopts}  %endif
>> @@ -129,8 +126,10 @@ URL:     https://www.rtems.org/
>>   %error No RTEMS kernel version defined  %endif
>>  
>> +#%if ! %{defined rtems_kernel}
>>  %source set rtems_kernel --rsb-file=%{rtems_kernel_file} \
>>                
>> https://git.rtems.org/rtems/snapshot/rtems-%{rtems_kernel_version}.tar
>> .bz2
>> +#%endif
>>  
>>  #
>>  # Check the various --with/--without options we support. These are
>> @@ -151,51 +150,38 @@ URL:    https://www.rtems.org/
>>  %if %{defined without_rtemsbsp}
>>   %error Option --without-rtemsbsp is not supported.
>>  %endif
>> +
>>  %if %{defined without_rtems_tests}
>> - %define with_rtems_tests no
>> + %define rtems_tests False
>> + %define rtems_sample_tests False
>>  %endif
>>  %if %{defined with_rtems_tests}
>>   %if %{with_rtems_tests} == 1
>> -  %define with_rtems_tests yes
>> +   %define rtems_tests True
>> +   %define rtems_sample_tests True
>>   %endif
>> - %if %{with_rtems_tests} == yes || \
>> -     %{with_rtems_tests} == no || \
>> -     %{with_rtems_tests} == samples
>> -  %define rtems_tests %{with_rtems_tests}
>> +  %if %{with_rtems_tests} == samples
>> +      %define rtems_tests False
>> +      %define rtems_sample_tests True
>>   %endif
>>  %endif
>>  %if %{defined with_rtems_smp}
>>   %define rtems_smp 1
>>  %endif
>> -%if %{defined with_rtems_legacy_network}
> 
> Please raise an error. Users will need to change their set up.
> 
>> - %define rtems_networking 1
>> -%endif
>>  %if %{defined with_rtems_bspopts}
>>   %define rtems_bspopts %{with_rtems_bspopts}  %endif
>>  
>>  #
>> -# If C++ defined for the tool set use it to control RTEMS's setting..
>> -#
>> -%if %{defined enable_cxx}
>> - %define rtems_cxx %{enable_cxx}
> 
> I think raise an error.
> 
>> -%endif
>> -
>> -#
>>  # Default set up. Override these in a BSP if you want a  # specific 
>> setup.
>>  #
>>  %ifn %{defined rtems_posix}
>>   %define rtems_posix 1
>>  %endif
>> -%ifn %{defined rtems_networking}
>> - %define rtems_networking 0
>> -%endif
>> -%ifn %{defined rtems_cxx}
>> - %define rtems_cxx 1
> 
> 
>> -%endif
>>  %ifn %{defined rtems_tests}
>> - %define rtems_tests samples
>> + %define rtems_tests False
>> + %define rtems_sample_tests True
>>  %endif
>>  %ifn %{defined rtems_bspopts}
>>   %define rtems_bspopts %{nil}
>> @@ -213,8 +199,9 @@ URL:      https://www.rtems.org/
>>      %if %{defined _internal_autotools_path}
>>        export PATH="%{_internal_autotools_path}/bin:${PATH}"
>>      %endif
>> -    ./bootstrap -c
>> -    ./rtems-bootstrap
>> +    pwd
>> +    ls
> 
> ?
> [Ryan Long] This got left in by accident.
> 
>> +    ./waf distclean
> 
> I am not sure this works by itself when you use --out with configure?
> 
> This could be ...
> 
>   ./waf distclean configure ....
> 
>>    %endif
>>    cd ..
>>  
>> @@ -225,32 +212,34 @@ URL:    https://www.rtems.org/
>>    else
>>      build_dir="build"
>>    fi
>> +
>> +  cd ${source_dir_rtems}
>> +
>> +  cpu=`echo %{_target} | cut -d- -f1`  echo "[${cpu}/%{rtems_bsp}]" > 
>> + %{config_file}  echo "RTEMS_POSIX_API = 
>> + %{?rtems_posix:True}%{!?rtems_posix:False}" >> %{config_file}  echo 
>> + "RTEMS_SMP = %{?rtems_smp:True}%{!?rtems_smp:False}" >> 
>> + %{config_file}  echo "BUILD_TESTS = %{rtems_tests}" >> 
>> + %{config_file}  echo "BUILD_SAMPLES = %{rtems_sample_tests}" >> 
>> + %{config_file}
>> +
>>    mkdir -p ${build_dir}
>> -  cd ${build_dir}
>> -
>> -  ../${source_dir_rtems}/configure \
>> -    --build=%{_build} --host=%{_host} \
>> -    --target=%{_target} \
>> -    --enable-rtemsbsp="%{rtems_bsp}" \
>> -    %{?rtems_cxx:--enable-cxx}%{!?rtems_cxx:--disable-cxx} \
>> -    %{?rtems_posix:--enable-posix}%{!?rtems_posix:--disable-posix} \
>> -    
>> %{?rtems_networking:--enable-networking}%{!?rtems_networking:--disable-networking}
>>  \
>> -    %{?rtems_tests:--enable-tests=%{rtems_tests}} \
>> -    %{?rtems_smp:--enable-smp} \
>> +
>> +  ./waf configure \
>> +    --rtems-bsps=%{_target}/%{rtems_bsp} \
>>      --prefix=%{_prefix} --bindir=%{_bindir} \
>> -    --exec-prefix=%{_exec_prefix} \
>> -    --includedir=%{_includedir} --libdir=%{_libdir} \
>> -    --mandir=%{_mandir} --infodir=%{_infodir} \
>> -    %{rtems_bspopts}
>> +    --out=b-%{rtems_bsp} \
> 
> Why change the build directory?
> [Ryan Long] I think this was in Joel's build_bsp script. I was using it for 
> reference. Do I not need this option?

I would remove it. Lets not move away from the default behaviour of waf.

> 
>> +    %{rtems_bspopts} \
> 
> Does this work?
> [Ryan Long] I don't know if the options I used during testing used this. I'll 
> check.

I do not think it works so lets remove this.

> 
>> +    --rtems-config=%{config_file}
>>  
>> -  %{__make} %{?_smp_mflags} all
>> -  cd ..
>> +  ./waf %{?_smp_mflags}
>> +
>> +  cd -
>>  
>>  %install
>>    %{__rmdir} $SB_BUILD_ROOT
>>  
>> -  cd ${build_dir}
>> -  %{__make} DESTDIR=$SB_BUILD_ROOT install
>> +  cd ${source_dir_rtems}
>> +  ./waf --destdir=$SB_BUILD_ROOT install
>>  
>>    %if %{rtems_tests} != no
>>     %define rtems_test_install %{_target}/%{rtems_bsp}/tests
>> @@ -259,4 +248,4 @@ URL:      https://www.rtems.org/
>>        -exec cp -v \{\} $SB_BUILD_ROOT/%{_prefix}/%{rtems_test_install}/ \;
>>    %endif
>>  
>> -  cd ..
>> +  cd -
> 
> Why the change?
> [Ryan Long] I wasn't sure if cd-ing to the parent directory would be correct 
> since the user could have their RTEMS source directory somewhere else. I 
> figured doing "cd -" would just guarantee we get back to where we were.

Sure. I would check the script the RSB creates if you are not sure. I suggest we
leave it as it is. I do not think it is a big issue.

Chris
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to