<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:27:30 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-12064] AtomicIntrinsics is not portable</title>
                <link>https://jira.mongodb.org/browse/SERVER-12064</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Pull request to follow. Existing tests in src/mongo/platform/atomic_word_test.cpp are sufficient to cover this change, as the AtomicIntrinsics API remains unchanged.&lt;/p&gt;</description>
                <environment></environment>
        <key id="102007">SERVER-12064</key>
            <summary>AtomicIntrinsics is not portable</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="9">Done</resolution>
                                        <assignee username="schwerin@mongodb.com">Andy Schwerin</assignee>
                                    <reporter username="rwbb">Robie Basak</reporter>
                        <labels>
                            <label>pull-request</label>
                    </labels>
                <created>Thu, 12 Dec 2013 14:30:02 +0000</created>
                <updated>Mon, 11 Jul 2016 17:37:53 +0000</updated>
                            <resolved>Tue, 7 Jan 2014 20:21:13 +0000</resolved>
                                                    <fixVersion>2.5.5</fixVersion>
                                    <component>Internal Code</component>
                                        <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="578608" author="xgen-internal-githook" created="Fri, 9 May 2014 19:42:29 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;name&apos;: u&apos;Robie Basak&apos;, u&apos;email&apos;: u&apos;robie.basak@canonical.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12064&quot; title=&quot;AtomicIntrinsics is not portable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12064&quot;&gt;&lt;del&gt;SERVER-12064&lt;/del&gt;&lt;/a&gt; &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12283&quot; title=&quot;Use gcc atomic builtins if available on IA-32 and x86_64&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12283&quot;&gt;&lt;del&gt;SERVER-12283&lt;/del&gt;&lt;/a&gt; Use gcc atomic builtins if available&lt;/p&gt;

&lt;p&gt;Switch to using gcc atomic builtins for atomic operations if using a new&lt;br/&gt;
enough gcc and clang and support is available. Otherwise, fall back to&lt;br/&gt;
the old behaviour of existing non-portable inline assembly to continue&lt;br/&gt;
to support builds on older versions of gcc.&lt;/p&gt;

&lt;p&gt;Signed-off-by: Benety Goh &amp;lt;benety@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/19cceceb780ab13104d5a4e44c373472ac5f430d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/19cceceb780ab13104d5a4e44c373472ac5f430d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="478496" author="matt.kangas@10gen.com" created="Tue, 7 Jan 2014 20:21:13 +0000"  >&lt;p&gt;Successor ticket for 2.7 is &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12283&quot; title=&quot;Use gcc atomic builtins if available on IA-32 and x86_64&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12283&quot;&gt;&lt;del&gt;SERVER-12283&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="478468" author="xgen-internal-githook" created="Tue, 7 Jan 2014 19:47:46 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;name&apos;: u&apos;Robie Basak&apos;, u&apos;email&apos;: u&apos;robie.basak@canonical.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-12064&quot; title=&quot;AtomicIntrinsics is not portable&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-12064&quot;&gt;&lt;del&gt;SERVER-12064&lt;/del&gt;&lt;/a&gt; Atomic operations for gcc non-Intel architectures&lt;/p&gt;

&lt;p&gt;Add support for non-Intel architectures by using gcc builtins where&lt;br/&gt;
possible, but only on non-Intel builds. This permits builds to continue&lt;br/&gt;
to work on Intel architectures even with older gcc versions that do not&lt;br/&gt;
have the builtins.&lt;/p&gt;

&lt;p&gt;atomic_intrinsics_gcc.h contains non-portable Intel assembly, so move it&lt;br/&gt;
to atomic_intrinsics_gcc_intel.h and add an&lt;br/&gt;
atomic_intrinsics_gcc_generic.h equivalent that uses only modern gcc&lt;br/&gt;
builtins.&lt;/p&gt;

&lt;p&gt;Adjust atomic_intrinsics.h to use atomic_intrinsics_gcc_intel.h in the&lt;br/&gt;
Intel case, and atomic_instrinsics_gcc_generic.h in an additional&lt;br/&gt;
&quot;otherwise&quot; case.&lt;/p&gt;

&lt;p&gt;This does not change behaviour or compatibility in the common IA-32 and&lt;br/&gt;
x86_64 cases. The previously existing code will continue to be used in&lt;br/&gt;
these cases. An older gcc without the modern gcc builtins will continue&lt;br/&gt;
to be able to build on these architectures because the previously&lt;br/&gt;
existing assembly will be used.&lt;/p&gt;

&lt;p&gt;This does make this code fully portable to any architecture supported by&lt;br/&gt;
a modern gcc, since the new, generic code will be used in this case.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/df3d84e688efbaa7c83666a1122761c29d10dfbe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/df3d84e688efbaa7c83666a1122761c29d10dfbe&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="470636" author="schwerin" created="Fri, 13 Dec 2013 19:25:29 +0000"  >&lt;p&gt;Thanks, &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=rwbb&quot; class=&quot;user-hover&quot; rel=&quot;rwbb&quot;&gt;rwbb&lt;/a&gt;, for doing the extra work.  I&apos;ll look it over and get back to you, hopefully early next week.&lt;/p&gt;</comment>
                            <comment id="470631" author="rwbb" created="Fri, 13 Dec 2013 19:08:34 +0000"  >&lt;p&gt;@Andy Schwerin,&lt;/p&gt;

&lt;p&gt;Done, in &lt;a href=&quot;https://github.com/mongodb/mongo/pull/582&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/pull/582&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I took a conservative approach initially, by adding use of gcc builtins as you suggest, but only in the case of non-Intel architectures, to minimise regression risk. But I&apos;ve added a third commit for you to switch to using them on Intel architectures too where they are available.&lt;/p&gt;</comment>
                            <comment id="470175" author="schwerin" created="Thu, 12 Dec 2013 21:21:32 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=rwbb&quot; class=&quot;user-hover&quot; rel=&quot;rwbb&quot;&gt;rwbb&lt;/a&gt;, I recommend implementing a version in terms of the GCC intrinsics, if they&apos;re available on your platform.  Those could actually be used on all platforms that support them, and would probably optimize better than the inline assembly, which the compiler is required to treat as opaque.  A config check in the build system to look for the GCC intrinsics and setting an environment variable, and defaulting to them when available, would be a highly desirable implementation.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="105012">SERVER-12283</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>6.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 12 Dec 2013 21:21:32 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        9 years, 40 weeks, 5 days 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>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            9 years, 40 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10000" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Old_Backport</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10000"><![CDATA[No]]></customfieldvalue>

                        </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>schwerin@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>matt.kangas</customfieldvalue>
            <customfieldvalue>rwbb</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrm5mf:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>93329</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_10166" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Tests Written</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10153"><![CDATA[Unneeded]]></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|hrntrr:</customfieldvalue>

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