Name: Piotr Sokołowski
Background: I am a first-year undergraduate IT student. During the last few years, I participated in the Google Code-In Contest two times, in 2011 and in 2012. In the 2012 edition of this contest I worked under porting applications, written mainly in C/C++, from Linux to Haiku and as result of this I gained experience in resolving compiler and linker problems on different platforms.
Project title: Debian built with clang
Synopsis (copied): During the last couple years, important efforts have been produced to build Debian with clang instead of gcc. Clang is now features completed and compiles most of the archive. However, clang being stricter than gcc, it rejects a lot of packages.
The goal of this project is to patch all packages failing to build with clang. Forwarding to upstream the patches will be part of the project (even if it is usually the responsibility of the Debian maintainer).
Project details: I am going to fix all the errors, mentioned at clang.debian.net, and most of the warnings, like this related to unused variables or implicit functions declarations, also in packages which successfully compile with clang. Some of my most important project highlights are:
To fix missed dependencies like, for example, OpenMP or GObjc. Probably it is necessary to add new packages to Debian repository (like in the case of OpenMP, because this library has separate implementation for clang, see clang-omp.github.io for more detalis) or modify existing one.
- To fix common C/C++ errors, related to the differences between gcc and clang.
- To adapt makefiles and configure scripts so that they properly work with clang.
- Some of the packages, after valid compilation with clang, fails their unit tests and does not work properly, so I am going to fix also these types of errors.
Choice of build environment: I am going to modify build environment, eg. use pbuilder instead of chroot environment described at clang.debian.net, because I noticed that many errors, like this one with eglibc or some segmentation fault, are caused by its wrong configuration.
Benefits to Debian: To improve whole code quality of Debian source packages and make possibility to compile its by clang.
Deliverables: A repository of all Debian packages built with clang.
Project schedule: During Coding Period 1 I am going to fix all compiler and preprocessor errors, like for example wrong main declarations, and most of non-categorized errors. Next, during Coding Period 2, I am going to fix linker errors, like missing object-c headers and all other ones.
Exams and other commitments: I have an exam session between 17 June and 28 June.
Other summer plans: Between 31 July and 9 August I would like to go for a ten-day trip.
Why Debian?: I have been using Debian and their forks like Ubuntu for more than five years, and during this time I developed quite a good understanding of most common Debian tools. Now, I would like to draw on my experience to improve this operating system.
- I do not apply for other SoC projects.