<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 03:04:38 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-3992] Windows executables should not export symbols</title>
                <link>https://jira.mongodb.org/browse/SERVER-3992</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In Windows, Dynamic Link Libraries can contain an Export Address Table that enables the program loader component of Windows to find the addresses of routines that are &quot;published&quot; by the DLL.  This enables a program (EXE) or one of its DLLs to call those routines.  These &quot;exports&quot; are only useful in DLLs and should not be present in EXE files.  Routines to be &quot;exported&quot; (listed in the Export Address Table) can be specified to the linker directly, or can be flagged in the source files by attaching the Microsoft-specific __declspec(dllexport) to a declaration.&lt;br/&gt;
Several of the executables in the Windows version of MongoDB are exporting symbols.  This is basically harmless, but it makes the EXE files a tiny bit larger and is generally poor form.  This actually got a whole lot better in 2.0 as the number of (bogus) exported functions dropped in mongod.exe (x64) from 571 in v1.8.3 to 106 in v2.0.0.  The symbols that were removed between 1.8.3 and 2.0.0 were all from SpiderMonkey (JavaScript engine).  The symbols that remain are all from PCRE (Perl Compatible Regular Expressions).  I am able to get rid of these symbols in my Visual Studio build by setting PRCECPP_STATIC in preprocessor symbols in MSVC for the affected projects.  We are already managing to set PCRE_STATIC, but we have also hacked on the source code a bit.  PCRE 7.4 in our build is almost exactly the published source code except for some hacking at the ever-annoying __declspec() stuff.&lt;br/&gt;
The affected EXE files built by &quot;scons all&quot; for 2.1.0-pre- are: bsondump, mongod, mongodump, mongoexport, mongofiles, mongoimport, mongooplog, mongorestore, mongos, mongostat and mongotop.  Every one of these files is exporting the same set of 106 PCRE functions.  Setting PCRECPP_STATIC in the compile step should fix all of them.  You can see how you are doing on eliminating exports by using the Microsoft program depends.exe (Dependency Walker), which can be downloaded for free if you don&apos;t already have a copy.  When looking at the top of the tree for an EXE, there should be no symbols listed in the first two boxes in the upper right ... nothing imported, nothing exported.&lt;/p&gt;</description>
                <environment>Windows</environment>
        <key id="23108">SERVER-3992</key>
            <summary>Windows executables should not export symbols</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="5" iconUrl="https://jira.mongodb.org/images/icons/priorities/trivial.svg">Trivial - P5</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="eliot">Eliot Horowitz</assignee>
                                    <reporter username="tad">Tad Marshall</reporter>
                        <labels>
                            <label>Windows</label>
                    </labels>
                <created>Sat, 1 Oct 2011 09:17:00 +0000</created>
                <updated>Mon, 11 Jul 2016 18:32:58 +0000</updated>
                            <resolved>Sat, 1 Oct 2011 15:21:33 +0000</resolved>
                                    <version>2.0.0</version>
                                    <fixVersion>2.1.0</fixVersion>
                                    <component>Build</component>
                                        <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="58081" author="tad" created="Sat, 1 Oct 2011 18:16:59 +0000"  >&lt;p&gt;Eliot&apos;s fix looks perfect on my machine.  Zero exports from MongoDB&apos;s Windows EXE files.  Built with &apos;scons all&apos;, tested with the same copy of Dependency Walker, I checked every EXE.  Fixed.&lt;/p&gt;</comment>
                            <comment id="58062" author="auto" created="Sat, 1 Oct 2011 15:21:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;login&apos;: u&apos;erh&apos;, u&apos;name&apos;: u&apos;Eliot Horowitz&apos;, u&apos;email&apos;: u&apos;eliot@10gen.com&apos;}
&lt;p&gt;Message: use PCRECPP_STATIC &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-3992&quot; title=&quot;Windows executables should not export symbols&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-3992&quot;&gt;&lt;del&gt;SERVER-3992&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8ce081f169a5f75d9cdc52bb14b0ba49c9ec2763&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8ce081f169a5f75d9cdc52bb14b0ba49c9ec2763&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="58052" author="tad" created="Sat, 1 Oct 2011 10:10:29 +0000"  >&lt;p&gt;Ugh.  I misspelled PCRECPP_STATIC the first time I typed it in the bug report, reversing the second and third letters.&lt;/p&gt;</comment>
                            <comment id="58051" author="tad" created="Sat, 1 Oct 2011 10:05:56 +0000"  >&lt;p&gt;The last sentence in my bug report is a little off.  The two listboxes in the upper right should be empty when the selection in the treeview on the left is on the EXE itself, but the pair of listboxes are not imports and exports.  The top box lists symbols exported from the selected module that are being imported by the module above it in the tree.  This box will always be empty when the treeview selection is the topmost element, regardless of whether it is an EXE or a DLL and regardless of what it is exporting.  The lower box shows the list of symbols that are being exported, regardless of whether there is a module above it in the tree that is using them.  So, an EXE should show both boxes empty when it is selected in the treeview and a DLL should (usually) show entries in the lower box when it is selected.  I found this issue by running Dependency Walker to see what DLLs and functions MongoDB was using.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Sat, 1 Oct 2011 15:21:37 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        12 years, 20 weeks, 4 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>
                            12 years, 20 weeks, 4 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="10022"><![CDATA[Windows]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>auto</customfieldvalue>
            <customfieldvalue>eliot</customfieldvalue>
            <customfieldvalue>tad</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrop27:</customfieldvalue>

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

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>8788</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_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|hrkwjr:</customfieldvalue>

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