<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style="--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>

<style>img {
max-width: 100%; height: auto;
}
body {
font-size: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px;
}
body {
font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style="font-size: inherit; -webkit-text-shadow: rgba(255,255,255,.01) 0 0 1px; font-family: "GitLab Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";">
<div class="content">

<p class="details" style="font-style: italic; color: #626168;">
<a href="https://gitlab.rtems.org/joel">Joel Sherrill</a> created an issue: <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5617">#5617</a>
</p>
<p>
Assignee: Matteo Concas
</p>
<div class="md" style="position: relative; z-index: 1; color: #3a383f; word-wrap: break-word;">
<h2 id="user-content-summary" dir="auto" style="margin-top: 0; margin-bottom: 10px;" align="initial">Summary<a href="#summary" aria-label="Link to heading 'Summary'" data-heading-content="Summary" class="anchor" style="margin-top: 0;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">The noel BSP family has multiple failures as reported in this <a href="https://lists.rtems.org/pipermail/build/2026-June/074641.html" rel="nofollow noreferrer noopener" target="_blank" style="margin-top: 0;"><code style="font-size: 90%; color: inherit; word-wrap: break-word; background-color: #ececef; border-radius: .25rem; margin-top: 0; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; white-space: pre-wrap; overflow-wrap: break-word; word-break: keep-all; padding: 0.125rem 0.25rem;">build list post</code></a>. The nominal cause is that the riscv and noel BSPs both have copies of <em><bsp/riscv.h></em> and they differ. The noel BSP version of this file is missing at least the prototype of <em>riscv_send_ipi()</em>.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">  38 smp-debug riscv/noel64imafdc build:</span>
<span id="LC2" class="line" lang="plaintext">      configure: /home/joel/rtems-work/rtems/waf configure\</span>
<span id="LC3" class="line" lang="plaintext">      --prefix=/home/joel/rtems-work/tools/7/bsps --top=/home/joel/rtems-\</span>
<span id="LC4" class="line" lang="plaintext">      work/rtems --rtems-config=config-riscv-noel64imafdc-smp-debug.ini</span>
<span id="LC5" class="line" lang="plaintext">     error: bsps/riscv/riscv/start/bspsmp.c:93:3: error: nested extern</span>
<span id="LC6" class="line" lang="plaintext">            declaration of 'riscv_send_ipi' [-Werror=nested-externs]</span>
<span id="LC7" class="line" lang="plaintext">     error: bsps/riscv/riscv/irq/irq.c:483:3: error: nested extern</span>
<span id="LC8" class="line" lang="plaintext">            declaration of 'riscv_send_ipi' [-Werror=nested-externs]</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">I replicated the build error reported by <em style="margin-top: 0;">rtems-bsp-builder</em> using this <a href="https://gitlab.rtems.org/-/project/26/uploads/6a37d868623376f3690dbc6543b97b72/config-riscv-noel64imafdc-smp-debug.ini" data-canonical-src="/uploads/6a37d868623376f3690dbc6543b97b72/config-riscv-noel64imafdc-smp-debug.ini" data-link="true" class="gfm">config-riscv-noel64imafdc-smp-debug.ini</a>.</p>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">The bigger underlying issue is that the noel BSP violates the BSP rule that a BSP should not reference source code in another BSP in its build. The best approach is to move the code to a shared location and let it support both. The alternative approach is to copy it into the second BSP and carry on from there. The alternative approach leads to more technical debt as duplication is not desirable.</p>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">Looking at the spec files for the noel BSP shows these files from the riscv BSP are directly referenced.</p>
<div class="gl-relative markdown-code-block js-markdown-code">
<pre class="code highlight js-syntax-highlight language-plaintext" v-pre="true" style="display: block; font-size: 14px; color: #3a383f; line-height: 1.6em; overflow-x: auto; border-radius: .25rem; position: relative; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; word-break: break-all; word-wrap: break-word; background-color: #fbfafd; margin: 0 0 1rem; padding: 12px; border: 1px solid #dcdcde;"><code style="font-size: inherit; color: inherit; word-wrap: normal; word-break: keep-all; background-color: inherit; border-radius: .25rem; white-space: pre; margin-top: 0; font-family: "GitLab Mono", "JetBrains Mono", "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; font-variant-ligatures: none; overflow-wrap: normal; padding: unset;"><span id="LC1" class="line" lang="plaintext" style="margin-top: 0;">$ grep -r riscv/riscv spec/build/bsps/riscv/noel/</span>
<span id="LC2" class="line" lang="plaintext">spec/build/bsps/riscv/noel/obj.yml:- bsps/riscv/riscv/clock/clockdrv.c</span>
<span id="LC3" class="line" lang="plaintext">spec/build/bsps/riscv/noel/obj.yml:- bsps/riscv/riscv/irq/irq.c</span>
<span id="LC4" class="line" lang="plaintext">spec/build/bsps/riscv/noel/obj.yml:- bsps/riscv/riscv/start/bspstart.c</span>
<span id="LC5" class="line" lang="plaintext">spec/build/bsps/riscv/noel/objsmp.yml:- bsps/riscv/riscv/start/bspsmp.c</span></code></pre>
<copy-code></copy-code><insert-code-snippet></insert-code-snippet>
</div>
<p dir="auto" style="color: #3a383f; margin: 0 0 1rem;" align="initial">Tagging <a href="https://gitlab.rtems.org/gedare" title="Gedare Bloom" class="gfm gfm-project_member js-user-link" data-user="8" data-original="@gedare" data-container="body" data-placement="top" data-reference-type="user" style="color: #284779; background-color: #cbe2f9; border-radius: .25rem; margin-top: 0; padding: 0 2px;">@gedare</a> and <a href="https://gitlab.rtems.org/opticron" title="Kinsey Moore" class="gfm gfm-project_member js-user-link" data-user="4" data-original="@opticron" data-container="body" data-placement="top" data-reference-type="user" style="color: #284779; background-color: #cbe2f9; border-radius: .25rem; padding: 0 2px;">@opticron</a> as they may have further insight and input.</p>
<h2 id="user-content-steps-to-reproduce" dir="auto" style="margin-top: 20px; margin-bottom: 10px;" align="initial">Steps to reproduce<a href="#steps-to-reproduce" aria-label="Link to heading 'Steps to reproduce'" data-heading-content="Steps to reproduce" class="anchor" style="margin-top: 0;"></a>
</h2>
<p dir="auto" style="color: #3a383f; margin: 0;" align="initial">Configure with the configuration file attached earlier and build.</p>
</div>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #626168;">

<br>
<a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5617">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.rtems.org">gitlab.rtems.org</a>. <a href="https://gitlab.rtems.org/-/sent_notifications/4-971oz2bxqz5p3g1kea9x9bnzt/unsubscribe" target="_blank" rel="noopener noreferrer">Unsubscribe</a> from this thread · <a href="https://gitlab.rtems.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.rtems.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>
<span style="color: transparent; font-size: 0; display: none; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0;">
Notification message regarding https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5617 at 1780946493
</span>
<script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ViewAction","name":"View Issue","url":"https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5617"}}</script>


</p>
</div>
</body>
</html>