hinko.kocevar at cetrtapot.si
Mon Jun 23 14:54:09 UTC 2008
Bernhard Fischer wrote:
> On Mon, Jun 23, 2008 at 04:41:32PM +0200, Hinko Kocevar wrote:
>> Bernhard Fischer wrote:
>>> On Mon, Jun 23, 2008 at 09:27:57AM +0200, Hinko Kocevar wrote:
>>>> Bernhard Fischer wrote:
>>>>>> +ifeq ($(BR2_ARCH),"cris")
>>>>>> + cp -a $(LINUX_HEADERS_UNPACK_DIR)/include/linux/user.h $(LINUX_HEADERS_DIR)/include/linux
>>>>>> + cp -a $(LINUX_HEADERS_UNPACK_DIR)/include/asm-cris/user.h $(LINUX_HEADERS_DIR)/include/asm
>>>>>> + cp -a $(LINUX_HEADERS_UNPACK_DIR)/include/asm-cris/elf.h $(LINUX_HEADERS_DIR)/include/asm
>>>>>> + cp -a $(LINUX_HEADERS_UNPACK_DIR)/include/asm-cris/arch-v10 $(LINUX_HEADERS_DIR)/include/asm/arch
>>>>>> + sed -i -e "/^#include <asm\/page\.h>/d" $(LINUX_HEADERS_DIR)/include/asm/user.h
>>>>> as you can see this wouldn't work for v8 and generally should be fixed
>>>>> in the kernel (also fails with 2.6.git).
>>>> This problem is because include/asm-cris/Kbuild does not include the correct headers when the kernel source is not configured. Both include/asm-cris/arch-vXX directories are left behind when install_headers goes through header-y target.
>>>> I'll let Axis people sort it out (if ever), till then I guess we are stuck with the hack..
>>> Yes, we'd need to use a prepared kernel ("archprepare"), which means
>>> dropping the one from tool_build and setting one up early in project_.
>>> I currently don't have time to do this properly, perhaps you want to
>>> give it a try?
>> The axis devs responded with the solution that does not rely on the CONFIG_ETRAX_ARCH_Vxx but instead includes arch-v10 and arch-v32 dirs in header-y target. I guess it is OK to do so, since we might need headers for v10 and/or v32 CPUs. The only catch would be to make correct symlink to the desired arch-vxx directory.
>> diff --git a/include/asm-cris/Kbuild b/include/asm-cris/Kbuild
>> index 1745545..d5b6319 100644
>> --- a/include/asm-cris/Kbuild
>> +++ b/include/asm-cris/Kbuild
>> @@ -1,7 +1,7 @@
>> include include/asm-generic/Kbuild.asm
>> -header-$(CONFIG_ETRAX_ARCH_V10) += arch-v10/
>> -header-$(CONFIG_ETRAX_ARCH_V32) += arch-v32/
>> +header-y += arch-v10/
>> +header-y += arch-v32/
> yes, i've done that too, but it is incomplete, see below.
>> header-y += ethernet.h
>> header-y += rtc.h
>> I think it is the correct path to take, but will still try to work out the best solution with the Axis devs later on..
> If cris does that then the other archprepare arches still need handling,
> so this is not a complete fix but purely cris-specific.
It is cris specific, I was not aware of the problem existing on other architectures.
I think that other arches are not affected as long as the whole need for headers goes (haven't really tried out). It is kernel bug in cris port that can't handle the headers for arch-v10 and arch-v32 correctly. So once the Axis has complete solution in order to pull all required headers from the source tree this problems will vanish.
ČETRTA POT, d.o.o., Kranj
Tel. +386 (0) 4 280 66 03
E-mail: hinko.kocevar at cetrtapot.si
More information about the buildroot