Re: Build problem on 2.6.25.4 kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jacques is correct so far as the simple compiling goes.

With the kmodule/Makefile  containing both FLAG varianst:
.-------------
EXTRA_CPPFLAGS += -DKMARTIAN_STAMP=20061202
EXTRA_CFLAGS += -DKMARTIAN_STAMP=20061202

the compile is succesful on both 2.6.24 and earlier kernels.

Tests using linux-headers representing earlier kernels can be done
with commands like:

make KERNEL_DIR=/usr/src/linux-headers--2.6.20-15-generic

I'm sending the tarball to cogent folk for testing under diveres kernels.
It is  "Stefan Foerster"  <stefan.foerster@xxxxxxxxxxxxxx> package
obtained through Antonio
EXCEPT in kmodule/Makefile
for containing both lines above and the lines enabling cross version compiling:

 ifdef  KERNEL_DIR
 KBUILD_DIR = $(KERNEL_DIR)
 else
 KBUILD_DIR = /lib/modules/$(KRELEASE)/build
 endif

On this particular laptop, I can test for actual functionality however

MarvS


2008/6/10 Jacques Goldberg <Jacques.Goldberg@xxxxxxx>:
> Here attached is the "product" which you say you need but I continue to say
> that it is a useless complication, because if both
> EXTRA_CFLAGS += -DKMARTIAN_STAMP=20061202
> EXTRA_CPPFLAGS += -DKMARTIAN_STAMP=20061202
> were present in the Makefile, one or the other would be ignored depending on
> the compiler used for modules depending on that flag.
>
> Never mind, enjoy the Makefile
> Jacques Goldberg wrote:
>>
>> Marv,
>> I will try tomorrow but let me please candidly ask:
>> Is EXTRA_CPPFLAGS used for kernels < 24 and is EXTRA_CFLAGS used with 24
>> and above?
>> This would mean that not the same compiler is used by the Makefile, or
>> that I missed something.
>> Why couldn't you then just define both?
>> Or do you have a typo and mean to define a different value for
>> DKMARTIAN_STAMP in the same variable EXTRA_CFLAGS or EXTRA_CPPFLAGS?
>>
>> Jacques
>>
>> Marvin Stodolsky wrote:
>>>
>>> Folks
>>>
>>> Is any erudite enough in Makefile syntax to help with a needed
>>> Conditional.
>>>
>>> With SUBLEVEL being the third component of the Kernel-Version
>>> which can be read out with
>>> SUBLEVEL := $(shell uname -r | cut -d. -f3 | cut -d. -f1 | cut -d-  -f1)
>>> with cogency in the 22   24+ range
>>>
>>> a  Makefile  conditional is needed to use
>>> EXTRA_CFLAGS += -DKMARTIAN_STAMP=20061202
>>> for SUBLEVEL < 24 ,
>>> and for greater or equal 24
>>> EXTRA_CPPFLAGS += -DKMARTIAN_STAMP=20061202
>>>
>>> Otherwise we would need separate martian packages for 2.6.24 and later
>>> kernels
>>> versus 2.6.22 and earlier
>>>
>>> Sadly I'm not adequately knowledgeable  in Makefile syntax.
>>>
>>> Incidentally, in the kmodule/Makefile , the role of this section:
>>>
>>> ifdef  KERNEL_DIR
>>> KBUILD_DIR = $(KERNEL_DIR)
>>> else
>>> KBUILD_DIR = /lib/modules/$(KRELEASE)/build
>>> endif
>>>
>>> is to enable compiling for other kernels, other than the current boot
>>> kernel.
>>> The syntax is like:
>>> $ make  KERNEL_DIR=/usr/src/linux-headers-SomeKernelVersion
>>> that is
>>>  KERNEL_DIR  is the path to the linux-headers for the desired kernel
>>> version.
>>> This saves rebooting when one wants to test compiling for several
>>> different linux-headers
>>>
>>> IIf the command is only:
>>> $ make
>>> then there is used the default  /lib/modules/kernel-version-bootup/build
>>>
>>> Thus I will retain this section in the update.
>>>
>>> MarvS
>>>
>>> On Sat, Jun 7, 2008 at 3:08 PM, Ivica Grujic <grujakg@xxxxxxxxx> wrote:
>>>>
>>>> Antonio I'm thinking that others should know about your good deed, so
>>>> I've
>>>> posted this on the thread also ;)
>>>>
>>>> You would also need to keep in mind the patch for Makefile already
>>>> applied to martian-full-20080407.
>>>>
>>>> diff -u -w -r martian-full-20080407/kmodule/Makefile
>>>> martian/kmodule/Makefile
>>>> --- martian-full-20080407/kmodule/Makefile      2008-04-08
>>>> 02:52:13.000000000 +0200
>>>> +++ martian/kmodule/Makefile    2006-12-03 00:39:24.000000000 +0100
>>>> @@ -1,14 +1,8 @@
>>>>  KRELEASE = $(shell uname -r)
>>>> -
>>>> -ifdef  KERNEL_DIR
>>>> -KBUILD_DIR = $(KERNEL_DIR)
>>>> -else
>>>>  KBUILD_DIR = /lib/modules/$(KRELEASE)/build
>>>> -endif
>>>> -
>>>>  MSRC_DIR = $(shell pwd)
>>>>
>>>> -EXTRA_CFLAGS += -DKMARTIAN_STAMP=20061202
>>>> +EXTRA_CPPFLAGS += -DKMARTIAN_STAMP=20061202
>>>>  CPPFLAGS += -DKMARTIAN_STAMP=20061202
>>>>
>>>>  # kbuild
>>>>
>>>> Think that EXTRA_CFLAGS make a difference.
>>>>
>>>> This Makefile is all I had to keep, not to build but to successfully run
>>>> martian.
>>>>
>>>> Thanks again for great work.
>>>>
>>>> Regards
>>>>
>>>> grujakg
>>>>
>>>> Antonio Olivares wrote:
>>>>>
>>>>> If compiling fails, there is a file that asks for # linux/ioctl32.h>
>>>>>
>>>>> comment it out and the compilation will succeed.
>>>>> /* # linux/ioctl32.h>  */
>>>>>
>>>>> I forgot to mention this in the previous emails.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Antonio
>>>>>
>>>>> --- On Sat, 6/7/08, Ivica Grujic <grujakg@xxxxxxxxx> wrote:
>>>>>
>>>>>> From: Ivica Grujic <grujakg@xxxxxxxxx>
>>>>>> Subject: Re: Fw: [Fwd: [Fwd: Re: Another Patch will be needed for
>>>>>> kernel
>>>>>> version 2.6.25]]
>>>>>> To: olivares14031@xxxxxxxxx
>>>>>> Date: Saturday, June 7, 2008, 8:27 AM
>>>>>> Yes, I got it.
>>>>>>
>>>>>> Thanks a lot.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> grujakg
>>>>>>
>>>>>> Antonio Olivares wrote:
>>>>>>>
>>>>>>> Done,
>>>>>>>
>>>>>>> please let me know if you receive it without problems.
>>>>>>
>>>>>> :)
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Antonio
>>>>>>>
>
> SUBLEVEL=$(shell uname -r | cut -d. -f3 | cut -d. -f1 | cut -d-  -f1)
> AGE=$(shell if [ "$(SUBLEVEL)" -lt 24 ] ;then echo OLD; else echo NEW;fi)
>
> # The two lines above could be merged into one, making the script unreadable
> # for a normal human being
> # Tricky because comparisons inside a Makefile are limited to equal/not
> equal,
> # thus an intermediate string is necessary.
>
> ifeq ($(AGE),OLD)
> EXTRA_CFLAGS += -DKMARTIAN_STAMP=20061202
> else
> EXTRA_CPPFLAGS += -DKMARTIAN_STAMP=20061202
> endif
>
> all:
> # The @echo lines are for debugging and can of course be removed!
>
>        @echo "SUBLEVEL = $(SUBLEVEL)"
>        @echo "SUBLEVEL is $(AGE)"
>        @echo "EXTRA_CFLAGS = $(EXTRA_CFLAGS)"
>        @echo "EXTRA_CPPFLAGS = $(EXTRA_CPPFLAGS)"
>        gcc hello.c -o hello
>
>

[Index of Archives]     [Linux Media Development]     [Asterisk]     [DCCP]     [Netdev]     [X.org]     [Xfree86]     [Fedora Women]     [Linux USB]

  Powered by Linux