Monday, November 16, 2009

Using Modifed G++ and C++ to Build

Two weeks ago, we were given the task to build a package using a modified version of G++ and C++. The purpose of this tasks is to see if there would be a significant time delay or increase building with the modified g++/c++ tools compared to building with the regular g++/c++ tools.

So, in order to build the packages with the modified G++ and C++, we require a script David Humphrey a professor at Seneca created. The script can be found here

The Package that everyone is using is Abiword.

So, first we download the source rpm for abiword by issuing the following command
yumdownload --source abiword

once downloaded, issue the following command rpmdev-steuptree if you do not have the rpmbuild.

Finally run this command to install the Source RPM and extract the spec file.
rpm -i "package name"

For this task, I created two scripts, one script is for building with the Generic C++/C++ and the other one is for the modified G++/C++. These scripts will basically rename the G++/C++ file, create symbolic links, run the rpmbuild command 3 times and finally log the time it takes to run the build.

Here are the two script I used:
Generic G++/C++
Modified G++/C++


When building with the regular G++/C++ it flew by quickly with no errors, but when it came to modified g++ / c++ I like everyone else was coming into issues with it failing at the install section. As one of my fellow colleague Adam Hilts stated to bypass this problem was to add the following string QA_RPATHS=$[ 0x003f ] to your rpmbuild line.
So in the end my line looked like this in my script
time -o modified.log -a QA_RPATHS=$[ 0x003f ] rpmbuild -ba abiword.spec >/dev/null 2>&1
and success everything was rolling smoothly.

The overall outcome was really not that significant, it did shave some time off a little maybe a 5% increase using the modified version of g++ and c++.

Here Are My Out Comes


Non-Modified Modified
Run Time Real-User-System Real-User-System
1 208.23-205.81-127.99 198.28-196.82-126.28
2 207.97-206.03-128.07 200.82.198.89.127.76
3 211.03-205.86-128.37 199.19-197.30-127.98

0 comments:

Post a Comment