<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <generator uri="https://gohugo.io/" version="0.78.2">Hugo</generator><title type="html"><![CDATA[GNOME on Roy's Blog]]></title>
    
        <subtitle type="html"><![CDATA[Mainly about tech stuff I have a hand in]]></subtitle>
    
    
    
            <link href="https://roy.marples.name/blog/tags/gnome/" rel="alternate" type="text/html" title="HTML" />
            <link href="https://roy.marples.name/blog/tags/gnome/atom.xml" rel="self" type="application/atom+xml" title="Atom" />
            <link href="https://roy.marples.name/blog/tags/gnome/feed.json" rel="alternate" type="application/json" title="Json" />
    <updated>2021-03-12T11:08:32+00:00</updated>
    
    <id>https://roy.marples.name/blog/tags/gnome/</id>
        
        <entry>
            <title type="html"><![CDATA[Linking with style .... and speed]]></title>
            <link href="https://roy.marples.name/blog/posts/linking_with_style______and_speed/?utm_source=atom_feed" rel="alternate" type="text/html"  hreflang="en" />
            <id>https://roy.marples.name/blog/posts/linking_with_style______and_speed/</id>
            
            <published>2010-02-27T08:16:00+00:00</published>
            <updated>2010-02-27T08:16:00+00:00</updated>
            
            
            <content type="html"><![CDATA[<p>So, I&rsquo;ve been slowing going back to using <a href="http://www.gnome.org/">GNOME</a> instead of  using <a href="http://www.kde.org/">KDE-4</a>. I do this flip flop every once in a while as I&rsquo;m never truely satisfied by either. Now, GNOME works quite happily on my <a href="http://www.gentoo.org/">Gentoo/Linux</a> machines, but this is not the case on my favoured <a href="http://www.netbsd.org/">NetBSD</a> ones. Or rather, parts of GNOME don&rsquo;t work as they should, like the <a href="http://projects.gnome.org/evolution/">Evolution</a> mail client.</p>
<p>Evolution suffers two problems on my NetBSD box. One, it takes over 5 minutes to load and two, once it has checked and downloaded mail from my server it closes without error. The 2nd problem is probably a programming error in Evolution or one of its many dependencies, but the first problem could be anywhere! Research led me to <a href="http://lists.freebsd.org/pipermail/freebsd-gnome/2008-March/019514.html">this possible soltuion</a>. If you look closely, you&rsquo;ll find an old post by me in that thread fixing it with ld&ndash;as-needed on Gentoo/FreeBSD, but that isn&rsquo;t a real solution for NetBSD / pkgsrc users. Anyway, at first glance the patch on that thread makes perfect sense. So I came up with better patches (one for glib, one for Evolution) and it now loaded in under 3 seconds! All was well :)</p>
<p>Well, not entirely. Other applications started to show isses as a result. So at least we know we&rsquo;re in the right area. I then spent a few hours wading through the Evolution build chain and came to the conclusion I still hate autotools as it obscures everything but was no better off fixing it. But I did come up with a test case that opened an evolution library and searched for a symbol that did not exist. This should 30 seconds, which is far too long and is also probably what the poster of the FreeBSD patch did in the mail thread.</p>
<p>Cutting to the chase, the <a href="http://en.wikipedia.org/wiki/Linker_(computing)">runtime linker</a> on NetBSD was checking the same library for the same symbol over and over again. Going back to the FreeBSD linker, they have a patch which implements a negative cache which should solve this. But it doesn&rsquo;t, as it doesn&rsquo;t cache missed weak symbols. Luckily this is easy to rectify and you can <a href="http://mail-index.netbsd.org/tech-userlevel/2010/02/24/msg003325.html">find my patch here</a> and an updated one after performance testing elsewhere <a href="http://mail-index.netbsd.org/tech-userlevel/2010/02/25/msg003331.html">here</a>. Now Evolution loads in under 3 seconds and crashes right away- but that&rsquo;s an issue to fix another day :)</p>
]]></content>
            
                 
                    
                         
                        
                            
                             
                                <category scheme="https://roy.marples.name/blog/tags/gnome" term="gnome" label="GNOME" />
                             
                                <category scheme="https://roy.marples.name/blog/tags/netbsd" term="netbsd" label="NetBSD" />
                             
                                <category scheme="https://roy.marples.name/blog/tags/tech" term="tech" label="tech" />
                            
                        
                    
                
            
        </entry>
    
</feed>
