Thursday 23 March 2017

GLIBC: Learning to Build It

One of the first things we need to do in order to get our work on GLIBC incorporated into the mainstream library is to test it. In order to test it, we need to build it and make changes and see the results of our changes.

In this post, I will document my efforts to build glibc on my local machine.
Since changes to glibc happen from time to time, its probably better to get the source files from Git, and then get new changes as they come. The website suggests doing:


git clone git://sourceware.org/git/glibc.git
cd glibc
git checkout --track -b local_glibc-2.25 origin/release/2.25/master

I followed the code precisely and now I have the cloned repository in my local machine with a branch. From there I made another branch called 'mktime-optimize' so that I can do my own work without messing up the master branch.

For building instructions, a link is given: https://sourceware.org/glibc/wiki/Testing/Builds

I think I want to build without installing, and hopefully the build will be enough to run tests on. The website gives a basic prototype:


$ mkdir $HOME/src $ cd $HOME/src $ git clone git://sourceware.org/git/glibc.git $ mkdir -p $HOME/build/glibc $ cd $HOME/build/glibc $ $HOME/src/glibc/configure --prefix=/usr $ make

Now.. I will apply the same logic to my branch and see what happens. Since I was in my home directory when I cloned the repository, I'll check for /src inside the glibc/ directory I have. I didn't see any /src, so this is confusing me a bit. I think that /src is a directory name that we create so that we don't get confused about which file group we are in. I THINK, as long as I remember that the /glibc on my root directory is the "source"... I should be fine. I'm going to try: mkdir -p /build/glibc, while in the root directory (not inside /glibc) and see what happens..

So, it didn't work, but using ' mkdir -p $HOME/build/glibc ' worked out and there is a /build directory in my root directory. Next, for step 5, I typed ' $HOME/glibc/configure --prefix=/usr (making sure to omit the /src part). I got the following:












It seems I have a problem since I am trying to build a Linux library system inside of Windows. I'm going to try to get a gcc or something close enough to work with:

http://stackoverflow.com/questions/6394755/how-to-install-gcc-on-windows-7-machine
https://sourceforge.net/projects/mingw-w64/files/

I started the download and selected the following options:

















Still didn't work.. so in a mixture of frustration and also some curiousity, I did all the build steps inside the Xerxes account (because its Linux-based out of my Matrix account). And.. after several minutes of seeing text screaming away.. it finished and appears to be built inside XERXES!! Hopefully I didn't or will not soon break the server!!

No comments:

Post a Comment