<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:08:11 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>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-7356] configure --disable-shared broken for server builds</title>
                <link>https://jira.whamcloud.com/browse/LU-7356</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;While testing &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5541&quot; title=&quot;improve liblustreapi build&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5541&quot;&gt;&lt;del&gt;LU-5541&lt;/del&gt;&lt;/a&gt; patch it was discovered that if you use --disable-shared for configure for lustre that lustre snmp and the mount utility components for zfs and ldiskfs will not build. This is due to the Makefiles hardcoding the --shared option.&lt;/p&gt;</description>
                <environment></environment>
        <key id="32907">LU-7356</key>
            <summary>configure --disable-shared broken for server builds</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="utopiabound">Nathaniel Clark</assignee>
                                    <reporter username="simmonsja">James A Simmons</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Thu, 29 Oct 2015 20:19:20 +0000</created>
                <updated>Sat, 5 Aug 2017 02:01:38 +0000</updated>
                            <resolved>Sat, 5 Aug 2017 02:01:38 +0000</resolved>
                                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="132181" author="pjones" created="Fri, 30 Oct 2015 17:17:43 +0000"  >&lt;p&gt;Nathaniel&lt;/p&gt;

&lt;p&gt;Could you please advise?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="132258" author="simmonsja" created="Sat, 31 Oct 2015 00:31:03 +0000"  >&lt;p&gt;Just to make people aware the patch from &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5541&quot; title=&quot;improve liblustreapi build&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5541&quot;&gt;&lt;del&gt;LU-5541&lt;/del&gt;&lt;/a&gt; does not cause the breakage.What is causing this breakage is in two spots. One is in snmp/Makefile.am:&lt;/p&gt;

&lt;p&gt;lustresnmp_la_CFLAGS := -fPIC $(NET_SNMP_CFLAGS)&lt;br/&gt;
lustresnmp_la_LDFLAGS = -fPIC -shared -module -avoid-version&lt;/p&gt;

&lt;p&gt;Both -fPIC -shared are shared file options.&lt;/p&gt;

&lt;p&gt;Same problem exist in lustre/utils/Makefile.am:&lt;/p&gt;

&lt;p&gt;mount_osd_ldiskfs_la_LDFLAGS  := -shared -export-dynamic -module -avoid-version&lt;br/&gt;
...&lt;br/&gt;
mount_osd_zfs_la_LDFLAGS  += -shared -export-dynamic -module -avoid-version&lt;/p&gt;</comment>
                            <comment id="132276" author="simmonsja" created="Sun, 1 Nov 2015 18:57:51 +0000"  >&lt;p&gt;Looking the the configuration the question is do we want to keep mount_osd_&lt;span class=&quot;error&quot;&gt;&amp;#91;zfs|ldisk&amp;#93;&lt;/span&gt;fs.so as dynamic plugins when --disable-shared is enabled or make the *.so files merge into mount_lustre like a true static file.&lt;/p&gt;</comment>
                            <comment id="132743" author="utopiabound" created="Thu, 5 Nov 2015 16:17:58 +0000"  >&lt;p&gt;This will require changing how the build works for those plugins when disable-shared is used.  It should be doable.  It will also require a change in &lt;tt&gt;lustre/utils/mount_utils.c&lt;/tt&gt; since we explicitly load the .so files.  &lt;/p&gt;</comment>
                            <comment id="132745" author="simmonsja" created="Thu, 5 Nov 2015 16:40:40 +0000"  >&lt;p&gt;I wonder if ltdl library to make dlopen portal would be the solution for both static and dynamic loading for mount_utils.c?&lt;/p&gt;</comment>
                            <comment id="133292" author="utopiabound" created="Wed, 11 Nov 2015 19:44:37 +0000"  >&lt;p&gt;I&apos;m not sure it would.  ZFS doesn&apos;t ship with .a files so the mount_osd_zfs.so would have to be dynamically linked to libzfs unless zfs was built with different options than default.&lt;/p&gt;</comment>
                            <comment id="133300" author="simmonsja" created="Wed, 11 Nov 2015 20:59:10 +0000"  >&lt;p&gt;In that case the best option would be to create a temporary &amp;#42;.a file and turn it into a &lt;br/&gt;
&amp;#42;.so. Much like what liblustreapi.* does. This avoids the libtool configure --disable-sharedinfluence.&lt;/p&gt;</comment>
                            <comment id="133701" author="utopiabound" created="Tue, 17 Nov 2015 15:51:51 +0000"  >&lt;p&gt;James, &lt;br/&gt;
Do you mean change the ZFS build to create libzfs.a along with libzfs.so?  I don&apos;t think there&apos;s a way to convert a .so to a .a.  If you know of a way do to this, can you please share it with me?  If you don&apos;t I don&apos;t see a way to resolve this issue.&lt;/p&gt;</comment>
                            <comment id="135123" author="jfc" created="Thu, 3 Dec 2015 18:02:29 +0000"  >&lt;p&gt;James,&lt;/p&gt;

&lt;p&gt;Looks like we are not going to be able to progress this any further. If you have any new ideas you would like us to investigate, please let us know.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
~ jfc.&lt;/p&gt;</comment>
                            <comment id="135237" author="simmonsja" created="Fri, 4 Dec 2015 16:23:22 +0000"  >&lt;p&gt;Please don&apos;t close this ticket. It is a real bug. What I like to recommend at this point is to do the reverse Nathaniel. We create a static library and if shared libraries are supported then convert it to a shared library. liblustreapi.so actually does this approach today.&lt;/p&gt;</comment>
                            <comment id="135264" author="utopiabound" created="Fri, 4 Dec 2015 18:33:27 +0000"  >&lt;p&gt;James,&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;libzfs.so&lt;/tt&gt; is provided by the libzfs2-devel package from &lt;a href=&quot;http://zfsonlinux.org&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ZFS on Linux&lt;/a&gt;.  A patch would need to be pushed upstream to have libzfs2-devel include static versions, then  those would be need to used to build a statically linked version of &lt;tt&gt;mount_osd_zfs.so&lt;/tt&gt;.  But the end result would still be a .so file, just statically linked, because it&apos;s explicitly dlloaded by mount/mkfs/tunefs utils.&lt;/p&gt;

&lt;p&gt;Or am I still misunderstanding your view of this?&lt;/p&gt;

&lt;p&gt;~ Nathaniel&lt;/p&gt;</comment>
                            <comment id="135290" author="simmonsja" created="Fri, 4 Dec 2015 20:53:44 +0000"  >&lt;p&gt;The --disable-shared flags only matter if you use libtool to build the zfs mount module code. Currently it doesn&apos;t build due to the build system using lib tool. I will play with it once I get home.&lt;/p&gt;</comment>
                            <comment id="136144" author="gerrit" created="Sun, 13 Dec 2015 02:19:54 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/17576&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17576&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7356&quot; title=&quot;configure --disable-shared broken for server builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7356&quot;&gt;&lt;del&gt;LU-7356&lt;/del&gt;&lt;/a&gt; build: fix --disable-shared configure option&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 028df461ff16d0c83c8cb2edc6ee53b31b9f6085&lt;/p&gt;</comment>
                            <comment id="136218" author="gerrit" created="Mon, 14 Dec 2015 18:02:35 +0000"  >&lt;p&gt;James Simmons (uja.ornl@yahoo.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/17581&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17581&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7356&quot; title=&quot;configure --disable-shared broken for server builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7356&quot;&gt;&lt;del&gt;LU-7356&lt;/del&gt;&lt;/a&gt; build: handle static/shared configure option for mount plugin&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ffa58f79c3303ea02b24b799086f3181ec4c2e66&lt;/p&gt;</comment>
                            <comment id="136222" author="simmonsja" created="Mon, 14 Dec 2015 18:20:00 +0000"  >&lt;p&gt;Nathaniel I submitted two patches to handle this issue. The first patch makes the lustre SNMP and liblnetconfig to obey the configure --disable-shared --disable-static. That is straight forward and . The challenge is the mount plugins. The mount plugins are always built as dynamic using libtool but libtool always obeys the configure options. So if you do a configure --disable-shared this breaks the mount plugins build. The approach I took was to not use libtool with the mount plugins. First I build it as a static library then link it into a dynamic library type code. I broke the mount plugin changes out from the original patch since dlopen didn&apos;t like what I did so I&apos;m doing something wrong but I feel it is a good starting point.&lt;/p&gt;</comment>
                            <comment id="136383" author="utopiabound" created="Tue, 15 Dec 2015 17:58:29 +0000"  >&lt;p&gt;They look good.  I updated the second to account some debug code in &lt;tt&gt;mount_utils.c&lt;/tt&gt;.&lt;/p&gt;</comment>
                            <comment id="138027" author="gerrit" created="Wed, 6 Jan 2016 02:56:35 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/17576/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/17576/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7356&quot; title=&quot;configure --disable-shared broken for server builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7356&quot;&gt;&lt;del&gt;LU-7356&lt;/del&gt;&lt;/a&gt; build: handle library configure options for SNMP/LNet&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 75f07b2fa054b69d1c20eef8dddb831af41fd7a5&lt;/p&gt;</comment>
                            <comment id="138042" author="simmonsja" created="Wed, 6 Jan 2016 03:59:49 +0000"  >&lt;p&gt;A patch is still needed to handle building the mount plugins when --disable-shared is set.&lt;/p&gt;</comment>
                            <comment id="139984" author="simmonsja" created="Mon, 25 Jan 2016 23:06:54 +0000"  >&lt;p&gt;Nathaniel did you ever make any progress on this?&lt;/p&gt;</comment>
                            <comment id="139990" author="simmonsja" created="Tue, 26 Jan 2016 01:20:25 +0000"  >&lt;p&gt;Looked at the patch with fresh eyes and I see the problem. I needed to link in libdl explicitly in the Makefile. Just tested it with --disabled-shared and normal configuration and it worked.&lt;/p&gt;</comment>
                            <comment id="140078" author="utopiabound" created="Tue, 26 Jan 2016 18:06:23 +0000"  >&lt;p&gt;I reviewed patch and restarted autotest as you requested.&lt;/p&gt;</comment>
                            <comment id="140079" author="simmonsja" created="Tue, 26 Jan 2016 18:08:18 +0000"  >&lt;p&gt;Thank you.&lt;/p&gt;</comment>
                            <comment id="140158" author="morrone" created="Wed, 27 Jan 2016 02:50:55 +0000"  >&lt;p&gt;Must we do this?  Do we really care that --disable-shared doesn&apos;t work?  I would prefer that we stick with the simple cleaner libtool method unless there is a really, really, good reason to need a static build.&lt;/p&gt;</comment>
                            <comment id="140212" author="simmonsja" created="Wed, 27 Jan 2016 15:53:39 +0000"  >&lt;p&gt;Yes due to Oleg making this a requirement for the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5541&quot; title=&quot;improve liblustreapi build&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5541&quot;&gt;&lt;del&gt;LU-5541&lt;/del&gt;&lt;/a&gt; work. In Oleg&apos;s personal testing he uses the static versions of things. The ugliness is mainly due to liblustreapi not being built with libtool. That changes in the first &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5541&quot; title=&quot;improve liblustreapi build&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5541&quot;&gt;&lt;del&gt;LU-5541&lt;/del&gt;&lt;/a&gt; patch&lt;/p&gt;</comment>
                            <comment id="140268" author="morrone" created="Wed, 27 Jan 2016 19:14:08 +0000"  >&lt;p&gt;Ah, I see.  Thanks for the explanation.&lt;/p&gt;</comment>
                            <comment id="193077" author="simmonsja" created="Fri, 21 Apr 2017 20:31:30 +0000"  >&lt;p&gt;Nathaniel I updated the patch. Easy work since it mostly was done. Now if you do a --disable-shared the mount plugins will be built into the utilities. This should make Oleg happy.&lt;/p&gt;</comment>
                            <comment id="204543" author="gerrit" created="Sat, 5 Aug 2017 00:36:38 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/17581/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/17581/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7356&quot; title=&quot;configure --disable-shared broken for server builds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7356&quot;&gt;&lt;del&gt;LU-7356&lt;/del&gt;&lt;/a&gt; build: handle configure options for mount plugin&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: d6f57eda898cc80a1cff49ad3875021749563dbf&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="26142">LU-5541</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10490" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 27 Jan 2016 20:19:20 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>build</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzxrtj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10493" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 29 Oct 2015 20:19:20 +0000</customfieldvalue>

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