<!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=US-ASCII" 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: #737278;">
<a href="https://gitlab.rtems.org/joel">Joel Sherrill</a> created an issue: <a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5238">#5238</a>
</p>
<div class="md" style="position: relative; z-index: 1; color: #28272d; word-wrap: break-word;">
<h2 dir="auto" style="font-size: 1.5em; font-weight: 600; padding-bottom: .3em; border-bottom-width: 1px; border-bottom-color: #bfbfc3; border-bottom-style: solid; color: #28272d; margin: 0 0 16px;" align="initial">
<a href="#summary" aria-hidden="true" class="anchor" id="user-content-summary" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Summary</h2>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">Historically, only a very small set of C Library functions were allowed to be called from the score, sapi, and rtems. Originally this set was empty but it has grown to allow memcpy(), memset(), and memmove(). Discussion of using gmtime_r() has made it clear that we need to:</p>
<ul class="task-list" dir="auto" style="text-align: initial; list-style-type: disc; margin: 0 0 16px; padding: 0;">
<li class="task-list-item" style="margin-top: 0; line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 28px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 5px;"> - Document the list of allowed functions and locations under the restriction. Document these rules in the Software Engineering Guide</li>
<li class="task-list-item" style="line-height: 1.6em; margin-left: 25px; padding-left: 3px; list-style-type: none; position: relative; min-height: 22px; padding-inline-start: 28px; margin-inline-start: 0 !important;">
<task-button style="margin-top: 0;"></task-button><input type="checkbox" class="task-list-item-checkbox" disabled style="position: absolute; inset-inline-start: 8px; inset-block-start: 5px;"> - Add tool to enforce the rules.</li>
</ul>
<p dir="auto" style="color: #28272d; margin: 0 0 16px;" align="initial">The rule can be expressed as only allowing the include of string.h (for mem*) and time.h (for gmtime_r) and then checking for the other functions which are defined by C11 to be in these headers. Only these four functions are allowed to be called.</p>
<h3 dir="auto" style="font-size: 1.3em; margin: 24px 0 0;" align="initial">
<a href="#pre-set-options" aria-hidden="true" class="anchor" id="user-content-pre-set-options" style="margin-top: 0; float: left; margin-left: -20px; text-decoration: none; outline: none;"></a>Pre-set options</h3>
</div>
</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #737278;">
—
<br>
<a href="https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5238">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/5d16963162d2552768ea4e6a75f80c81/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>
<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/5238"}}</script>
</p>
</div>
</body>
</html>