<div dir="ltr">Thanks Sebastian!<br><br>I tried to follow your instructions for adding this as a new option, but unfortunately, XLEN didn't evaluate for RTEMS-BUILD-CPUKIT-OPTCLANG to use. Here's the diff:<br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">diff --git a/spec/build/cpukit/RTEMS-BUILD-CPUKIT-OPTXLEN.yml b/spec/build/cpukit/RTEMS-BUILD-CPUKIT-OPTXLEN.yml<br>new file mode 100644<br>index 0000000000..840a8ecc2c<br>--- /dev/null<br>+++ b/spec/build/cpukit/RTEMS-BUILD-CPUKIT-OPTXLEN.yml<br>@@ -0,0 +1,19 @@<br>+active: true<br>+build-type: option<br>+default: ''<br>+default-by-variant:<br>+- value: '64'<br>+  variants:<br>+  - riscv/rv64.*<br>+derived: false<br>+enabled-by: []<br>+header: ''<br>+level: '1.110'<br>+links: []<br>+name: XLEN<br>+normative: true<br>+order: -1000<br>+ref: ''<br>+reviewed: ChapNb5NSPl062d5CnU251RB5J6TljFz_mLkmFdgwVY=<br>+text: ''<br>+type: build</blockquote><div><br></div><div>grepping for XLEN only gets me:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>c4che/spec_build.pickle:133389:ssS'RTEMS-BUILD-CPUKIT-OPTXLEN'<br>c4che/spec_build.pickle:133433:S'XLEN'<br>c4che/spec_build.pickle:154984:S'--target=${ARCH}${XLEN}-unknown-rtems${__RTEMS_MAJOR__}'</div></blockquote><div><br> </div><div>Am I missing something?<br></div></div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 16 Mar 2020 at 12:15, Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</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 16/03/2020 13:09, Hesham Almatary wrote:<br>
<br>
> On Mon, 16 Mar 2020 at 11:53, Sebastian Huber<br>
> <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>> wrote:<br>
>> On 16/03/2020 12:39, Hesham Almatary wrote:<br>
>><br>
>>> Hi Sebastian,<br>
>>><br>
>>> I have pushed a few commits to my repo to support building RTEMS with<br>
>>> Clang/LLVM for RISC-V. Here are the changes [1]. Since I'm still<br>
>>> learning about Waf and the build system, I'd appreciate your input.<br>
>>> Most importantly, I want to know what's the right way to set "target"<br>
>>> and "xlen" variables.<br>
>>><br>
>>> [1] <a href="https://github.com/CTSRD-CHERI/rtems/compare/967b62464bf39602f8b0f2baf57617ad74c3643d...aa73f72b929856efdb41f9f8582263b5395a3276" rel="noreferrer" target="_blank">https://github.com/CTSRD-CHERI/rtems/compare/967b62464bf39602f8b0f2baf57617ad74c3643d...aa73f72b929856efdb41f9f8582263b5395a3276</a><br>
>> You need a new option, e.g.<br>
>><br>
>> spec/build/cpukit/RTEMS-BUILD-CPUKIT-OPTXLEN.yml<br>
>><br>
>> It should be enabled by clang and riscv:<br>
>><br>
>> enabled-by:<br>
>>     and:<br>
>>     - clang<br>
>>     - riscv<br>
>><br>
>> The option must be evaluated before the tool settings:<br>
>><br>
>> order: -1000<br>
>><br>
> Yes, I thought of that too. But I need to define XLEN to empty or<br>
> something for other architectures too since I use it in<br>
> RTEMS-BUILD-CPUKIT-OPTCLANG:<br>
Does it not default to the empty string if it is not defined?<br>
><br>
>> - set-value: --target=${ARCH}${XLEN}-unknown-rtems${__RTEMS_MAJOR__}<br>
>> - substitute: null<br>
>> - env-append: ABI_FLAGS<br>
> How should each RISC-V BSP assign XLEN? I thought of a few ways:<br>
> 1) to make each BSP yml file do it, or<br>
> 2) to script it for RISC-V and extract it from the march value,<br>
> 3) to assign it in a single file and, similar to how<br>
> RISC-V-BUILD-BSP-RISC-V-ABI currently works, assign it per variant.<br>
<br>
I would do it similar to:<br>
<br>
spec/build/bsps/riscv/riscv/RTEMS-BUILD-BSP-RISCV-RISCV-ABI.yml<br>
<br>
You can use regular expressions for the matching variant, e.g.<br>
<br>
default: ''<br>
default-by-variant:<br>
- value: '32'<br>
   variants:<br>
   - riscv/rv32.*<br>
- value: '64'<br>
   variants:<br>
   - riscv/rv64.*<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature">Hesham</div>