Skip to contentSkip to conversation

file names embedded in kernel image

DISCUSSION Rasmus Villemoes 2 participants 2 messages Aug 27, 2015 – Oct 26, 2015 Kbuild

lore
Share & tools
lore
#0 lore raw

Hi

I just noticed that when one build the kernel outside the source tree, all __FILE__ occurences get replaced with the absolute path (since that's what is given to gcc, and most -I paths are also absolute). This ends up wasting quite a lot of space in .rodata, and I suppose most distro supplied kernels have this issue. For example, my ubuntu kernel is full of strings like

/build/linux-hFNI9K/linux-3.13.0/arch/x86/platform/sfi/sfi.c /build/linux-hFNI9K/linux-3.13.0/kernel/fork.c

The /build/linux-hFNI9K/linux-3.13.0/ prefixes add up (and since it's an artifact of the build process, wouldn't add any value in a bug-report which one wouldn't also get from uname -a).

Distros could avoid this by building in-tree (maybe some already do) but I was wondering if we could do something upstream.

Rasmus

#1 lore raw

Dne 27.8.2015 v 11:44 Rasmus Villemoes napsal(a):

Quoted 11 lines

Hi

I just noticed that when one build the kernel outside the source tree, all __FILE__ occurences get replaced with the absolute path (since that's what is given to gcc, and most -I paths are also absolute). This ends up wasting quite a lot of space in .rodata, and I suppose most distro supplied kernels have this issue. For example, my ubuntu kernel is full of strings like

/build/linux-hFNI9K/linux-3.13.0/arch/x86/platform/sfi/sfi.c /build/linux-hFNI9K/linux-3.13.0/kernel/fork.c

If you build in a subdirectory of the source tree, the filenames will look like

../arch/x86/platform/sfi/sfi.c
../kernel/fork.c

Michal