Skip to contentSkip to conversation

Building linux headers in an non-linux environment

DISCUSSION Richard H Lee 2 participants 2 messages Nov 5, 2012 – Dec 9, 2012 Kbuild

lore
Share & tools
lore
#0 lore raw

I'm trying to install linux headers for cygwin using crostool-ng.

ct-ng basically invokes the line:

make -C /home/richard/scratch/x86linux/.build/src/linux-3.5 O=/home/richard/scratch/x86linux/.build/i386-unknown-linux-gnu/build/build-kernel-headers ARCH=x86 INSTALL_HDR_PATH=/home/richard/x-tools/i386-unknown-linux-gnu/i386-unknown-linux-gnu/sysroot/usr V=1 headers_install

and it seems to have checked out v3.5 of the linux kernel.

The problem is that making the headers seems to require an existing set of headers already installed. The required headers seem to be in the include/ and arch/[target]/ directories.

What is the "correct" way to get the Makefile to use the source tree as the source for the linux headers?

In the top-level Makefile, I can see the following variable

Quoted 4 lines
LINUXINCLUDE    := -I$(srctree)/arch/$(hdr-arch)/include \
                  -Iarch/$(hdr-arch)/include/generated -Iinclude \
                  $(if $(KBUILD_SRC), -I$(srctree)/include) \
                  -include $(srctree)/include/linux/kconfig.h

but I'm not sure how to get this variable picked up. And I don't exactly know what to do with KBUILD_SRC.

Richard

#1 lore raw
Quoted 10 lines · Richard H Lee

I'm trying to install linux headers for cygwin using crostool-ng.

ct-ng basically invokes the line:

make -C /home/richard/scratch/x86linux/.build/src/linux-3.5 O=/home/richard/scratch/x86linux/.build/i386-unknown-linux-gnu/build/build-kernel-headers ARCH=x86 INSTALL_HDR_PATH=/home/richard/x-tools/i386-unknown-linux-gnu/i386-unknown-linux-gnu/sysroot/usr V=1 headers_install

Quoted 5 lines

and it seems to have checked out v3.5 of the linux kernel.

The problem is that making the headers seems to require an existing set of headers already installed. The required headers seem to be in the include/ and arch/[target]/ directories.

Can you be more specific? What error messages are you getting? make headers_install needs to compile scripts/unifdef.c, but this is not linux specific.

Michal