Re: Build problem on 2.6.25.4 kernel

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

 



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
#include <stdio.h>
main (){printf("Hello, World!  \n");}

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

  Powered by Linux