2012 Feb 16 at 10:30
DC 2314
Sarah Nadi, PhD candidate, David R. Cheriton School of Comp. Sci., Univ. Waterloo
The Linux kernel has long been an interesting subject of study in terms of its source code. Recently, it has also been studied in terms of its variability since the Linux kernel can be configured to include or omit certain features according to the users selection. These features are defined in the Kconfig files included in the Linux kernel code. Several articles study both the source code and Kconfig files to ensure variability is correctly implemented and to detect anomalies. However, these studies ignore the Makefiles which are another important component that controls the variability of the Linux kernel. The Makefiles are responsible for specifying what actually gets compiled and built into the final kernel. With over 1,300 Makefiles, more than 35,000 source code files, and over 10,000 Kconfig features, inconsistencies and anomalies are inevitable. In this seminar, we present the first part of our series of work exploring variability in Linux's Makefiles (Kbuild). In this talk, we focus on sytactic anomalies in Kbuild. We develop three rules to identify anomalies in the Makefiles. Using these rules, we detect 89 anomalies in the latest release of the Linux kernel (2.6.38.6). We also perform a longitudinal analysis to study the evolution of Kbuild anomalies over time, and the solutions implemented to correct them. Our results show that many of the anomalies we detect are eventually corrected in future releases.