The Difference

As I wrote in my last post, I tried solving the software build time problems by deploying ccache on two branches that have biggest build time.

I was hoping that our designer community “learns” and “uses” the easy and fast ways of building software as communicated. But, some of these guys are so ridiculously dumb that they are habitual to running one command, and they simply do not care for other build commands that are more apt. So, as my colleague said, I enforced ccache carefully to reduce build times. I am waiting to know the results during next week.

In the midst of these annoying problems, I’m often awestruck by the commitment, coordination, power of the open source projects. Being so disconnected physically, they are connected only via internet, or irc, yet, they produce wonderful products. In contrary at certain places, although people are sitting right beside each other, they do not follow the instructions given, creating whole lot of mess for themselves and others delaying the whole delivery.. I simply do not know whom to blame.. I wonder what is the difference between the two set of people..

Change in the linker behavior(binutils2.2?)

I’m currently handling the task of migrating/trying our builds on RedHat6.x So far our builds are run on RedHat 5.3/5.5 and given that we are running on relatively older version of RedHat, we are planning on migrating.

One of the issues I observed was with the way version 2.2 of gnu ld works. I’d built binutils 2.2 on redhat 6.1 machine and it looks like the way dynamic linking works has changed slightly. The following was the error I got. I don’t see this on binutils 2.1.x

/usr/bin/ld: note: 'some_reference' is defined in DSO some.so so try adding it to the linker command line

I read about the possible work-around, rather fix I’d say, at Fedora Wiki page http://fedoraproject.org/wiki/UnderstandingDSOLinkChange , and it worked just fine in our case.

The bottomline is, while generating binary/.so out of objects/shared objects, you should make sure that any dynamic linked library that resolves the references to the symbols in these objects/shared objects must also be linked dynamically even while generating binary/.so i.e no indirect linking anymore..

If my explanation doesn’t make sense, read through the wiki link given above, and you will be out of confusion.