Name: Fotis Koutoulakis Nickname: NlightNFotis Age: 21 Country: Greece Contact: - Email: [email protected] - Google+: goo.gl/9jeZi - Website: http://www.fotiskoutoulakis.com - IRC: NlightNFotis (#hurd, #archhurd) on freenode Projects: - Porting the GCC Go language frontend on the GNU/Hurd - Weekly Reports - Monday 17 - Wednesday 26 - I have managed to sent all the paperwork required by Google without meeting any obstacles. (Tax form and the School Identification) - I have managed to sent all the paperwork required by the FSF for copyright assignment, which included copyright assignments for GLIBC, GCC, GNU Mach and the GNU Hurd. (Also have got the Full legal documents which I have signed and sent from the 20th of June, and am currently waiting for an acknowledgment). - I have read plenty of documents on the Hurd. - More detailed: - I have read the FAQ available on the GNU Hurd website. (http://www.gnu.org/software/hurd/faq.html) - I have read the Paper Towards a New Strategy of OS Design (http://www.gnu.org/software/hurd/hurd-paper.html) - I have read Marcus Brinkmann's revisit (http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00651.html) - I have also read Jonathan Shapiro's comments on that (http://lists.gnu.org/archive/html/l4-hurd/2005-10/msg00654.html) - I have read the Critique (although I want to revisit it soon http://www.gnu.org/software/hurd/hurd/critique.html) - I have read Marcus Brinkmann's presentation of the Hurd (http://www.gnu.org/software/hurd/hurd-talk.html) - I have read the article "Examining the Legendary Hurd Kernel" on informit (http://www.informit.com/articles/printerfriendly.aspx?p=1180992) - I have managed to read the Hurd User's Guide (http://www.gnu.org/software/hurd/users-guide/using_gnuhurd.html) - I have read the articles Ghost's of Unix Past on lwn.net (http://lwn.net/Articles/411845/, http://lwn.net/Articles/412131/, http://lwn.net/Articles/414618/) - I have read the Hurd Hacking Guide (http://www.gnu.org/software/hurd/hacking-guide/hhg.html) - Apart from those I have read plenty other small documents available on the Hurd Website. - I have read some documents on the GCC (need to read more). - More detailed: - Read a general document on GCC architecture in wikibooks (http://en.wikibooks.org/wiki/GNU_C_Compiler_Internals/GNU_C_Compiler_Architecture) - Read some of the documents in The Getting Started page of the gcc wiki, including: - The Basics: Contributing to GCC in 10 easy steps (have read and understood all of the steps required) - I have read the blog posts about building a new GCC front end at this blog (http://blog.lxgcc.net/?page_id=116) - I have seen (although feel I have to revisit) all the slides of the Essential Abstractions in GCC Workshop (http://www.cse.iitb.ac.in/grc/gcc-workshop-10/index.php?page=slides) - I have read some papers on GCC (mostly by Diego Novillo) on the current status and the architecture of GCC. Revisiting them as we speak. They are located here (http://www.airs.com/dnovillo/Papers/#cgo2007) - Have also read plenty of presentations on GCC Internals and architecture, as well as GCC from a user's standpoint. Will revisit them today or tomorrow (http://www.seketeli.org/dodji/talks/eigen-2010/gcc-eigen-2010.pdf, http://guerby.org/ftp/gcc-toulibre-20091216.pdf - I have managed to setup a working environment. - I am running the Hurd on a virtual machine. My setup is a Debian GNU/Linux physical box (host) and Debian GNU/Hurd (QEMU guest) - It is running ok (performance wise). (KVM modules have been enabled, and QEMU-KVM is installed, processor is VT-x, VT-d enabled) - I have also set up working repositories in Github for GCC, Hurd and Mach. They are available under my Github account here (https://github.com/NlightNFotis?tab=repositories) - Those repositories are all cloned and working under both the Hurd and Linux. However, GIT under the Hurd is having some issues that I am currently investigating, that corrupt repositories (and seem fairly dangerous for the filesystem too) - I also managed to read two books that I perceived as beneficial for my work. The first one was Operating Systems in Depth (http://eu.wiley.com/WileyCDA/WileyTitle/productCd-EHEP001803.html) and the second one was Version Control with Git (http://shop.oreilly.com/product/9780596520137.do, Edit: I knew how to use git before reading this, but I read this book in order to leverage my knowledge seeing as I am about to work professionally with Git) - My Plans for the rest of the week and the week to come: - Finish reading the documentation for both GCC and the Hurd (will have done so until Friday. Maximum Saturday. It won't take more than that.) - Start hacking on the projects source code. - I also plan to (given that I find the time) continue reading some books to enhance both my skills and knowledge, with the next in my list being Expert C Programming: Deep C Secrets (http://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298) - Addressing the issue regarding my failure to attend the weekly IRC meeting: - This is something that I am taking full responsibility for, and would like to apologize for to anyone affected. - I would also like to apologize to my mentors for disappointing them with my lack of communication so early in the summer. - However, I would like my mentors (and anyone else for that matter) know that I will do my *VERY* best to avoid situations like this in the future. - From now on I will be available all day long (unless I am out of house) in the #Hurd channel in freenode under the usual nickname NlightNFotis. Just ping me if you would like to ask anything. - I am pretty open to criticism and suggestions. If my mentors (or anyone else for that matter) find that I fall short in any aspect (such as that issue that arose) please communicate it with me upfront. I generally appreciate criticism and try get better based on it. - I will also try to be more open regarding my progress. I will try to do mini reports on a daily basis on the #Hurd channel, and possibly also use my blog for more detailed reports on my progress. - Thursday 27 - July 1 (not much progress unfortunately) - Revisited some important Hurd and gcc documents (such as the critique, Marcus Brinkmann's presentation of the Hurd, and others) - Started hacking on the code, attempting to build the GCC codebase on the Hurd, Debian x64 (host) and XUbuntu x86 (another guest) and have not met any success in any of them. - My builds fail on each of them with linker errors. Fortunately, the errors are reproducible across the different platforms, and I have documented them here https://gist.github.com/NlightNFotis/5896188#file-build_results - Next week schedule: - I am trying to overcome the obstacles I am facing with building GCC. I am currently investigating the issue, and will report back as soon as I come up with a solution. - July 2 - July 9 - Continued attempting to build GCC on the Hurd. Managed to get past the linker errors pinpointed at the last report. - After getting past those errors, some other errors showed up. Fortunately they were tracked down with help from Hurd developers in the #hurd channel. The specific problem was that compilations seemed to completely freeze at some point. The reason this happened was that the Hurd image I was using wan't large enough for gcc to compile successfully (it was only 3GiB). I manually attempted to resize the qemu image, which was fairly easy to do so, however I had to employ several courses of action inside the VM in order to get it to recognize the extra disc space that was added. - After dealing with this issue too, I re attempted the compilation phase but this time stopped with compilation errors. The compiler log can be found here: https://www.dropbox.com/s/u5nx5ykebdx4sk5/build_results.txt - Having discussed that issue with my mentor Thomas Schwinge in the weekly meeting on July 8th I was told that there was a patch employed that was supposed to fix that issue. Seeing as in my case it was not so, it was suggested to me that I check the configuration and the state of my GCC repository inside the Hurd, make sure it's on the correct working branch, and that it had the latest commits from that branch pulled. Seeing as all the preconditions were met, I was also told to mount the Hurd image under my Linux host box, and get diff results for the Host and Vm repository of GCC. I have got 2 diffs, both of which don't have any relationship with the code that fails the build. For reference, my diff is here: https://www.dropbox.com/s/ilgc3skmhst7lpv/diffs_in_git.txt - Even though there didn't seem to be any issue with the integrity of the GCC repository under the Hurd, I still decided to clear the working directory, and recheckout the branch. Having done so, the results are the same with the original compilation errors (indicating that there must be an issue with the code itself. - Next week actions: - I am attempting to fix the issues that I am facing now (the ones with init_context and fix_context failing the compilation) - Meanwhile I want to attempt a compilation of GCC with the -w flag passed to make, so that warnings do not fail the compilation (the compilation fails because the -Werror option is passed to the compiler, and both init_context and fix_context produce a warning, that is elevated to an error due to that option) and see if it manages to build itself under the hurd and pass (at least some of its tests)