<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:25:21 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-30893] Default build fails for aarch64 because of missing CCFLAGS option related to CRC</title>
                <link>https://jira.mongodb.org/browse/SERVER-30893</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;On aarch64 platform default build command fails with following error message:&lt;/p&gt;

&lt;p&gt;/tmp/ccVvoQKQ.s: Assembler messages:&lt;br/&gt;
/tmp/ccVvoQKQ.s:34: Error: selected processor does not support `crc32cb w2,w2,w3&apos;&lt;br/&gt;
/tmp/ccVvoQKQ.s:56: Error: selected processor does not support `crc32cx w2,w2,x0&apos;&lt;br/&gt;
/tmp/ccVvoQKQ.s:78: Error: selected processor does not support `crc32cb w2,w2,w0&apos;&lt;br/&gt;
.&lt;br/&gt;
.&lt;br/&gt;
scons: *** &lt;span class=&quot;error&quot;&gt;&amp;#91;build/opt/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.o&amp;#93;&lt;/span&gt; Error 1&lt;br/&gt;
scons: building terminated because of errors.&lt;br/&gt;
build/opt/third_party/wiredtiger/src/checksum/arm64/crc32-arm64.o failed: Error 1&lt;/p&gt;

&lt;p&gt;Adding CCFLAGS=&quot;-march=armv8-a+crc&quot; to build command successfully builds mongodb binaries for aarch64.&lt;/p&gt;</description>
                <environment></environment>
        <key id="421874">SERVER-30893</key>
            <summary>Default build fails for aarch64 because of missing CCFLAGS option related to CRC</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="2">Won&apos;t Fix</resolution>
                                        <assignee username="andrew.morrow@mongodb.com">Andrew Morrow</assignee>
                                    <reporter username="Arkeri">Praveen Arkeri</reporter>
                        <labels>
                    </labels>
                <created>Wed, 30 Aug 2017 16:51:47 +0000</created>
                <updated>Wed, 10 Feb 2021 21:37:17 +0000</updated>
                            <resolved>Tue, 13 Nov 2018 20:30:35 +0000</resolved>
                                                                    <component>Build</component>
                                        <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="3549074" author="billy.donahue" created="Tue, 5 Jan 2021 17:03:40 +0000"  >&lt;p&gt;Maybe a runtime check for the CPU&apos;s hw crc instruction?&lt;/p&gt;

&lt;p&gt;Compile both implementations of the function and dynamically dispatch to the fastest supported implementation.&lt;/p&gt;

&lt;p&gt;Like zlib does?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://source.chromium.org/chromium/chromium/src/+/master:third_party/zlib/crc32.c;l=293&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://source.chromium.org/chromium/chromium/src/+/master:third_party/zlib/crc32.c;l=293&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or maybe just call our vendored zlib function instead of reinventing it.&lt;/p&gt;</comment>
                            <comment id="3548983" author="acm" created="Tue, 5 Jan 2021 16:39:06 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=billy.donahue&quot; class=&quot;user-hover&quot; rel=&quot;billy.donahue&quot;&gt;billy.donahue&lt;/a&gt; and &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=daniel.moody&quot; class=&quot;user-hover&quot; rel=&quot;daniel.moody&quot;&gt;daniel.moody&lt;/a&gt; - The check needs to be implemented purely at the compile level: interrogating the local machine&apos;s CPU isn&apos;t appropriate because you may be cross compiling or running on one ARM system but targeting another. If we want to fix this (and I agree it is a nuisance, I&apos;ve been bitten by it too and ought to know better) I think the right answer is to give &lt;tt&gt;--use-hardware-crc32&lt;/tt&gt; an &lt;tt&gt;auto&lt;/tt&gt; mode, and then write configure checks for all platforms. The downside to this is that if you do a build from source and fail to name the necessary targeting flags, you will get a degraded performance build since it will autoamatically disable the hardware crc32 support. I don&apos;t really like that, as it feels like a potentially huge source of confusion.&lt;/p&gt;</comment>
                            <comment id="3538732" author="JIRAUSER1253549" created="Mon, 21 Dec 2020 19:36:13 +0000"  >&lt;p&gt;I think it wouldn&apos;t be too bad as a configure check, I think having full support of any given platform would be difficult, but I think we could easily create a configure check that covers common and known systems, for example like Billy mentioned. Manual configuration could override the configure check and cover non common systems as well.&lt;/p&gt;</comment>
                            <comment id="2715134" author="billy.donahue" created="Thu, 9 Jan 2020 20:25:25 +0000"  >&lt;p&gt;Ran into this problem while trying an unrelated build experiment on aarch64. It&apos;s annoying and I wish the hardware detection was done for me, if it&apos;s that important.&lt;/p&gt;

&lt;p&gt;&#160;&lt;br/&gt;
 Test for crc32 support might be easy?&lt;br/&gt;
 Here&apos;s an aarch64 spawnhost:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;ubuntu@ip-10-122-2-118&#160;$ (grep -q &quot;Features.*crc32&quot; /proc/cpuinfo) &amp;amp;&amp;amp; echo &quot;CPU has crc32&quot;&lt;/tt&gt;&lt;br/&gt;
 &lt;tt&gt;CPU has crc32&lt;/tt&gt;&lt;/p&gt;</comment>
                            <comment id="2060656" author="acm" created="Tue, 13 Nov 2018 20:30:35 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=Arkeri&quot; class=&quot;user-hover&quot; rel=&quot;Arkeri&quot;&gt;Arkeri&lt;/a&gt; - I&apos;m closing this ticket for now as won&apos;t fix, because I don&apos;t believe the complexity of implementing the configure time hardware capability check is warranted, but we can re-open it if you have additional thoughts.&lt;/p&gt;</comment>
                            <comment id="2054603" author="acm" created="Wed, 7 Nov 2018 15:59:59 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=Arkeri&quot; class=&quot;user-hover&quot; rel=&quot;Arkeri&quot;&gt;Arkeri&lt;/a&gt; - This is a little tricky. I&apos;m not sure what the best way to proceed here is.&lt;/p&gt;

&lt;p&gt;We have a build flag flag &lt;tt&gt;&amp;#45;&amp;#45;use-hardware-crc32&lt;/tt&gt; (note that on v4.0 and older branches the flag is called &lt;tt&gt;&amp;#45;&amp;#45;use-s390x-crc32&lt;/tt&gt;, but it still affects arm builds) which controls whether we attempt to use these instructions. So the following two builds will both work for you on arm systems:&lt;/p&gt;

&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;scons ... --use-hardware-crc32=off&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;scons ... --use-hardware-crc32=on CCFLAGS=-march=armv8-a+crc&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;scons ... CCFLAGS=-march=armv8-a+crc&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;Where the latter two invocations are the same, since &lt;tt&gt;--use-hardware-crc32&lt;/tt&gt; defaults to &lt;tt&gt;on&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Now, to your point, none of these are &quot;default&quot; builds. But it isn&apos;t exactly easy to make that work in a palatable way. The following are some options:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;We could switch the default for &lt;tt&gt;--use-hardware-crc32&lt;/tt&gt; to &lt;tt&gt;off&lt;/tt&gt;, and then default builds would work. But this doesn&apos;t seem like a good idea, since most users have hardware capable of providing support and the gains are meaningful.&lt;/li&gt;
	&lt;li&gt;We could add an &lt;tt&gt;auto&lt;/tt&gt;} mode for &lt;tt&gt;--use-hardware-crc32&lt;/tt&gt; and then probe for instruction support in the configure phase and make a choice. This is the best way forward, but is complex, and I&apos;m not sure it is worth the effort.&lt;/li&gt;
	&lt;li&gt;We could do nothing, meaning that default builds for arm wouldn&apos;t work on arm, and you would need to either add &lt;tt&gt;--use-hardware-crc32=off&lt;/tt&gt; or the &lt;tt&gt;CCFLAGS&lt;/tt&gt; change to your command line.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Right now, I&apos;m inclined not to make any changes, but if you have thoughts among the above options please let me know.&lt;/p&gt;</comment>
                            <comment id="2039411" author="greg.mckeon" created="Tue, 23 Oct 2018 17:16:25 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=acm&quot; class=&quot;user-hover&quot; rel=&quot;acm&quot;&gt;acm&lt;/a&gt; I believe this has gone away now?  Did &lt;a href=&quot;https://jira.mongodb.org/browse/WT-3197&quot; title=&quot;aarch64 CRC32C support fails to compile on non-linux ARM platforms&quot; class=&quot;issue-link&quot; data-issue-key=&quot;WT-3197&quot;&gt;&lt;del&gt;WT-3197&lt;/del&gt;&lt;/a&gt; fix this?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="164346" name="image-2017-08-30-22-18-44-891.png" size="2049" author="Arkeri" created="Wed, 30 Aug 2017 16:49:49 +0000"/>
                            <attachment id="164345" name="image-2017-08-30-22-18-51-499.png" size="2059" author="Arkeri" created="Wed, 30 Aug 2017 16:49:56 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 1 Sep 2017 18:24:58 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        3 years, 5 weeks, 1 day ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 5 weeks, 1 day ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10032" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Operating System</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10026"><![CDATA[ALL]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>andrew.morrow@mongodb.com</customfieldvalue>
            <customfieldvalue>billy.donahue@mongodb.com</customfieldvalue>
            <customfieldvalue>daniel.moody@mongodb.com</customfieldvalue>
            <customfieldvalue>greg.mckeon@mongodb.com</customfieldvalue>
            <customfieldvalue>Arkeri</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htdwtb:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr8vhr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="2600">Dev Tools 2018-11-19</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htdiw7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>