<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:08:33 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>[MONGOCRYPT-372] Package Apple M1 support as Universal Binary</title>
                <link>https://jira.mongodb.org/browse/MONGOCRYPT-372</link>
                <project id="17481" key="MONGOCRYPT">Libmongocrypt</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-340&quot; title=&quot;Add support for darwin-arm64 compilation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-340&quot;&gt;&lt;del&gt;MONGOCRYPT-340&lt;/del&gt;&lt;/a&gt; added support for Apple&apos;s M1 processor. Currently we ship two &lt;tt&gt;dylibs&lt;/tt&gt; for MacOS - one for x64 (aka Intel) and one for ARM64 (aka M1). It would be preferable to ship a single Universal Binary, which contains both the x64 and ARM64 code in a single &lt;tt&gt;dylib&lt;/tt&gt;. Darwin&apos;s loader will then choose the appropriate CPU architecture when loading the &lt;tt&gt;dylib&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;What is the advantage of shipping CSFLE as a universal binary compared to shipping two CPU-specific &lt;tt&gt;dylibs&lt;/tt&gt;? The work required to consume CSFLE on MacOS is significantly reduced. Our drivers (or shims) currently detect whether they are running on MacOS and load the &lt;tt&gt;dylib&lt;/tt&gt; already. Now all drivers/shims must be updated to not only detect MacOS, but also x64 or ARM64, and then load the correct &lt;tt&gt;dylib&lt;/tt&gt;. With a universal binary, drivers/shims load the &lt;tt&gt;dylib&lt;/tt&gt; as they always have and Darwin&apos;s loader sorts out whether to run the x64 or ARM64 code. In theory, each driver will only need to be tested with the CSFLE universal binary, but won&apos;t need additional code changes.&lt;/p&gt;

&lt;p&gt;Universal Binaries can be created for apps, extensions, dylibs, etc. To build a Universal Binary, additional compiler options can be provided to compile for multiple architectures or separate architecture-specific builds can be combined using the &lt;tt&gt;lipo&lt;/tt&gt; tool. Universal Binaries supporting both x64 and ARM64 can be created on both Intel and M1 Macs, but the ARM64 slice can only be debugged on a M1 Mac. For more information, see &lt;a href=&quot;https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;Building a Universal macOS Binary&lt;/a&gt; in Apple&apos;s documentation.&lt;/p&gt;

&lt;p&gt;NOTE: Drivers may have other unmanaged dependencies that will have to be recompiled as universal binaries to enable full M1 support. For example, the .NET/C# driver uses unmanaged libraries for Snappy and zstd, which would need to be updated. Supporting CSFLE as a Universal Binary is only one step.&lt;/p&gt;</description>
                <environment></environment>
        <key id="1969570">MONGOCRYPT-372</key>
            <summary>Package Apple M1 support as Universal Binary</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13201">Fixed</resolution>
                                        <assignee username="kevin.albertson@mongodb.com">Kevin Albertson</assignee>
                                    <reporter username="james.kovacs@mongodb.com">James Kovacs</reporter>
                        <labels>
                    </labels>
                <created>Mon, 24 Jan 2022 17:21:35 +0000</created>
                <updated>Sat, 28 Oct 2023 10:25:38 +0000</updated>
                            <resolved>Thu, 3 Feb 2022 00:13:12 +0000</resolved>
                                                    <fixVersion>1.3.1</fixVersion>
                                    <component>C library</component>
                                        <votes>1</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="4332223" author="xgen-internal-githook" created="Thu, 3 Feb 2022 00:12:58 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-372&quot; title=&quot;Package Apple M1 support as Universal Binary&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-372&quot;&gt;&lt;del&gt;MONGOCRYPT-372&lt;/del&gt;&lt;/a&gt; make macos M1 builds universal builds (#238)&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/404f4c43aa09197acb0cbfd95dabfb98a39b9b84&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/404f4c43aa09197acb0cbfd95dabfb98a39b9b84&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4317344" author="kevin.albertson" created="Thu, 27 Jan 2022 03:44:08 +0000"  >&lt;p&gt;PR: &lt;a href=&quot;https://github.com/mongodb/libmongocrypt/pull/238&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/pull/238&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1995418">JAVA-4517</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                            <outwardlinks description="has to be done before">
                                        <issuelink>
            <issuekey id="1965750">CSHARP-4016</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="1892027">MONGOCRYPT-340</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="1884146">NODE-3631</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                            <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr6idz:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>