aboutsummaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
2008-03-23kbuild: soften modpost checks when doing cross buildsSam Ravnborg
The module alias support in the kernel have a consistency check where it is checked that the size of a structure in the kernel and on the build host are the same. For cross builds this check does not make sense so detect when we do cross builds and silently skip the check in these situations. This fixes a build bug for a wireless driver when cross building for arm. Acked-by: Michael Buesch <mb@bu3sch.de> Tested-by: Gordon Farquharson <gordonfarquharson@gmail.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: stable@kernel.org
2008-03-16Linux 2.6.25-rc6Linus Torvalds
2008-03-09Linux 2.6.25-rc5Linus Torvalds
2008-03-04Linux 2.6.25-rc4Linus Torvalds
2008-02-24Linux 2.6.25-rc3Linus Torvalds
2008-02-18Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: kbuild: explain why DEBUG_SECTION_MISMATCH is UNDEFINED kbuild: fix building vmlinux.o kbuild: allow -fstack-protector to take effect kconfig: fix select in combination with default
2008-02-15Linux 2.6.25-rc2Linus Torvalds
2008-02-14kbuild: fix building vmlinux.oSam Ravnborg
Ingo Molnar wrote: > > i've got a build log from a weird build error below: > > LD init/built-in.o > distcc[12023] ERROR: compile (null) on localhost failed > make: *** [vmlinux.o] Error 1 > make: *** Waiting for unfinished jobs.... > LD .tmp_vmlinux1 > Building vmlinux.o were moved up in the dependency chain so we started to build it before the kallsym stuff. This was done to let modpost report section mismatch bugs even when the final link failed. Originally I had expected the dependency of $(kallsyms.o) to cover this but it turns out that we need to be even more explicit. Fix this by adding a conditional dependency on firat target used in the kallsyms serie of builds. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Roland McGrath <roland@redhat.com>
2008-02-14kbuild: allow -fstack-protector to take effectSam Ravnborg
Arjan van de Ven <arjan@infradead.org> wrote: === I just read the excellent LWN writeup of the vmsplice security thing, and that got me wondering why this attack wasn't stopped by the CONFIG_CC_STACKPROTECTOR option... because it plain should have been... Some analysis later.. it turns out that the following line in the top level Makefile, added by you in October 2007, entirely disables CONFIG_CC_STACKPROTECTOR ;( With this line removed the exploit will be nicely stopped. CFLAGS += $(call cc-option, -fno-stack-protector) Now I realize that certain distros have patched gcc to compensate for their lack of distro wide CFLAGS, and it's great to work around that... but would there be a way to NOT disable this for CONFIG_CC_STACKPROTECTOR please? It would have made this exploit not possible for those kernels that enable this feature (and that includes distros like Fedora) === Move the assignment to KBUILD_CFLAGS up before including the arch specific Makefile so arch makefiles may override the setting. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Arjan van de Ven <arjan@infradead.org> Cc: stable@kernel.org
2008-02-10Linux 2.6.25-rc1Linus Torvalds
.. and I really need to call it something else. Maybe it is time to bring back the weasel series, since weasels always make me feel good about a kernel.
2008-02-03Typoes: "whith" -> "with"Robert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Adrian Bunk <bunk@kernel.org>
2008-01-28kbuild: link vmlinux.o before kallsyms passesSam Ravnborg
link vmlinux.o so we may report section mismatch bugs before we start with the real link - that may error out. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: introduce new option to enhance section mismatch analysisSam Ravnborg
Setting the option DEBUG_SECTION_MISMATCH will report additional section mismatch'es but this should in the end makes it possible to get rid of all of them. See help text in lib/Kconfig.debug for details. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: document 'make prepare' in 'make help'Valdis.Kletnieks@vt.edu
The output of 'make help' covers a lot of options, but doesn't include a listing for 'make prepare'. Here's a one-liner to fix that... Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: ignore cache modifiers for generating the tags filesUwe Kleine-König
With this patch I'm able to find the definition of _xmit_lock defined in include/linux/netdevice.h as follows: struct net_device { ... spinlock_t _xmit_lock ____cacheline_aligned_in_smp; } Otherwise this counts as definition of ____cacheline_aligned_in_smp. Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28Kbuild: Clarify the rpm-related make packaging targetsRobert P. J. Day
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: implement modules.orderTejun Heo
When multiple built-in modules (especially drivers) provide the same capability, they're prioritized by link order specified by the order listed in Makefile. This implicit ordering is lost for loadable modules. When driver modules are loaded by udev, what comes first in modules.alias file is selected. However, the order in this file is indeterministic (depends on filesystem listing order of installed modules). This causes confusion. The solution is two-parted. This patch updates kbuild such that it generates and installs modules.order which contains the name of modules ordered according to Makefile. The second part is update to depmod such that it generates output files according to this file. Note that both obj-y and obj-m subdirs can contain modules and ordering information between those two are lost from beginning. Currently obj-y subdirs are put before obj-m subdirs. Sam Ravnborg cleaned up Makefile modifications and suggested using awk to remove duplicate lines from modules.order instead of using separate C program. Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Bill Nottingham <notting@redhat.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Jon Masters <jonathan@jonmasters.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: Add missing srctree prefix for includecheck and versioncheckGeert Uytterhoeven
Add missing $(srctree)/ prefix for scripts used by the includecheck and versioncheck make targets Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: document versioncheck in make helpSam Ravnborg
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28kbuild: add 'includecheck' help textRandy Dunlap
Add 'includecheck' to the Static analyzers help list. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2008-01-28sh: Fix up uname -m matching for native sh64.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-01-24Linux 2.6.24Linus Torvalds
2008-01-21Makefile: Change typoed 'behavour' to 'behaviour'Linus Nilsson
Change two occurances of "behavour" to "behaviour". Signed-off-by: Linus Nilsson <lajnold@acc.umu.se> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-01-15Linux 2.6.24-rc8Linus Torvalds
2008-01-06Linux 2.6.24-rc7Linus Torvalds
2007-12-20Linux 2.6.24-rc6Linus Torvalds
2007-12-10Linux 2.6.24-rc5Linus Torvalds
2007-12-09kbuild: fix building with O=.. optionsSam Ravnborg
The check introduced in commit: 4f1127e204377cbd2a56d112d323466f668e8334 "kbuild: fix infinite make recursion" caused certain external modules not to build and also caused 'make targz-pkg' to fail. This is a minimal fix so we revert to previous behaviour - but we do not overwrite the Makefile in the top-level directory. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Tested-by: Jay Cliburn <jacliburn@bellsouth.net> Cc: Jay Cliburn <jacliburn@bellsouth.net>
2007-12-09kbuild: fix building with redirected output.Sam Ravnborg
Jan Altenberg <jan.altenberg@linutronix.de> reported that building with redirected input like this failed: make O=dir oldconfig bzImage < /dev/null The problem were caused by a make silentoldconfig being run before oldconfig and with a non-recent .config the build failed because silentoldconfig requires non-redirected stdin. Silentoldconfig was run as a side-effect of having the top-level Makefile re-made by make. Introducing an empty rule for the top-level Makefile (and Kbuild.include) fixed the issue. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-12-03Linux 2.6.24-rc4Linus Torvalds
2007-11-17x86: simplify "make ARCH=x86" and fix kconfig all.configSam Ravnborg
Simplify "make ARCH=x86" and fix kconfig so we again can set 64BIT in all.config. For a fix the diffstat is nice: 6 files changed, 3 insertions(+), 36 deletions(-) The patch reverts these commits: 0f855aa64b3f63d35a891510cf7db932a435c116 -> kconfig: add helper to set config symbol from environment variable 2a113281f5cd2febbab21a93c8943f8d3eece4d3 -> kconfig: use $K64BIT to set 64BIT with all*config targets Roman Zippel pointed out that kconfig supported string compares so the additional complexity introduced by the above two patches were not needed. With this patch we have following behaviour: # make {allno,allyes,allmod,rand}config [ARCH=...] option \ host arch | 32bit | 64bit ===================================================== ./. | 32bit | 64bit ARCH=x86 | 32bit | 32bit ARCH=i386 | 32bit | 32bit ARCH=x86_64 | 64bit | 64bit The general rule are that ARCH= and native architecture takes precedence over the configuration. So make ARCH=i386 [whatever] will always build a 32-bit kernel no matter what the configuration says. The configuration will be updated to 32-bit if it was configured to 64-bit and the other way around. This behaviour is consistent with previous behaviour so no suprises here. make ARCH=x86 will per default result in a 32-bit kernel but as the only ARCH= value x86 allow the user to select between 32-bit and 64-bit using menuconfig. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Andreas Herrmann <aherrman@arcor.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com>
2007-11-17Remove x86 merge artifact from top MakefileThomas Gleixner
The x86 merge modified the tags target to handle the two separate source directories. Remove it now that i386/x86_64 are gone completely. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-11-16Linux 2.6.24-rc3Linus Torvalds
2007-11-12x86: enable "make ARCH=x86"Sam Ravnborg
After unification of the Kconfig files and introducing K64BIT support in kconfig it required only trivial changes to enable "make ARCH=x86". With this patch you can build for x86_64 in several ways: 1) make ARCH=x86_64 2) make ARCH=x86 K64BIT=y 3) make ARCH=x86 menuconfig => select 64-bit Likewise for i386 with the addition that i386 is default is you say ARCH=x86. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com>
2007-11-12x86: do not use $(ARCH) when not neededSam Ravnborg
For x86 ARCH may say i386 or x86_64 and soon x86. Rely on CONFIG_X64_32 to select between 32/64 or just hardcode the value as appropriate. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com>
2007-11-06Linux 2.6.24-rc2Linus Torvalds
2007-11-04kbuild: do not pick up CFLAGS from the environmentSam Ravnborg
Too many people have CFLAGS set to support building userspace. And now Kbuild picks up CFLAGS this caused troubles. Although people should realise that setting CFLAGS has a 'global' effect the impact on the kernel build is a suprise. So change kbuild to pick up value from KCFLAGS that is much less used. When kbuild pick up a value it will warn like this: Makefile:544: "WARNING: Appending $KCFLAGS (-O3) from environment to kernel $CFLAGS" Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Bächler <thomas@archlinux.org> Cc: David Miller <davem@davemloft.net> Cc: Ingo Molnar <mingo@redhat.com>
2007-11-02sh: Correct SUBARCH matching.Paul Mundt
When configuring the kernel natively the uname matching is off, so fix up the uname mangling to get the proper SUBARCH. Needs an explicit range so that SH-5 doesn't break. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-10-25x86: move i386 and x86_64 Makefiles to arch/x86Sam Ravnborg
Moving the ARCH specific Makefiles for i386 and x86_64 required a litle bit tweaking in the top-lvel Makefile. SRCARCH is now set in the top-level Makefile because we need this info to include the correct arch Makefile. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-10-23Linux 2.6.24-rc1Linus Torvalds
The patch is big. Really big. You just won't believe how vastly hugely mindbogglingly big it is. I mean you may think it's a long way down the road to the chemist, but that's just peanuts to how big the patch from 2.6.23 is. But it's all good. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-22kbuild: allow depmod in cross builds againSam Ravnborg
depmod from module-init-tools 3.3-pre2 are reported to work fine in cross build. depmod from module-init-tools 3.1-pre5 are known to SEGV Do not workaround older module-init-tools bugs here. The right fix is for users to upgrade module-init-tools. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org>
2007-10-22kbuild: fix modules_install after a 'make vmlinux'Sam Ravnborg
make vmlinux would delete the content of $(MODVERDIR) equals .tmp_versions. This caused a subsequent make modules_install to fail. Fix it so we clean the directory only for the modules build - but we still unconditionally create it so we can do: make dir/file.ko without a preceeding make modules. Reported by David Miller <davem@davemloft.net> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: David Miller <davem@davemloft.net>
2007-10-20kbuild: fix toplevel Makefile/depmodDavid Brownell
This removes a syntax error (seen building on Ubuntu Feisty). Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-10-19Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: kbuild: fix first module build kconfig: update kconfig-language text kbuild: introduce cc-cross-prefix kbuild: disable depmod in cross-compile kernel build kbuild: make deb-pkg - add 'Provides:' line kconfig: comment typo in scripts/kconfig/Makefile. kbuild: stop docproc segfaulting when SRCTREE isn't set. kbuild: modpost problem when symbols move from one module to another kbuild: cscope - filter out .tmp_* in find_sources kbuild: mailing list has moved kbuild: check asm symlink when building a kernel
2007-10-19kbuild: fix first module buildSam Ravnborg
When building a specific module before doing a total kernel build it failed because $(MORVERDIR) were missing. Creating the MODVERDIR explicit (independent of KBUILD_MODULES) fixed this. As a side-effect the MODVERDIR will be created also for a non-module build - but no harm done by that. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-10-19markers: Add samples subdirMathieu Desnoyers
Begin infrastructure for kernel code samples in the samples/ directory. Add its Kconfig and Kbuild files. Source its Kconfig file in all arch/ Kconfigs. Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-18kbuild: disable depmod in cross-compile kernel buildSam Ravnborg
When building embedded systems in a cross-compile environment and populating a target's file system image, we don't want to run the depmod on the host as we may be building for a completely different architecture. Since there's no such thing as a cross-depmod, we just disable running depmod in the cross-compile case and we just run depmod on the target at bootup. Inspired by patches from Christian, Armin and Deepak. This solves: http://bugzilla.kernel.org/show_bug.cgi?id=3881 Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Christian Bjølevik <nafallo@magicalforest.se> Cc: Deepak Saxena <dsaxena@mvista.com> and Cc: Armin Kuster <akuster@mvista.com>,
2007-10-18kbuild: cscope - filter out .tmp_* in find_sourcesYinghai Lu
remove .tmp_kallsyms*.S in cscope.files Signed-off-by: Yinghai Lu <yinghai.lu@sun.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-10-18kbuild: check asm symlink when building a kernelSam Ravnborg
We often hit the situation where the asm symlink in include/ points to the wrong architecture. In 9 out of 10 cases thats because we forgot to set ARCH but sometimes we just reused the same tree for another ARCH. For the merged x86 tree we need to create a new symlink but this is not obvious. So with the following patch we check if the symlink points to the correct architecture and error out if this is not the case. Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-10-17kbuild: fix typo SRCARCH in find_sourcesYinghai Lu
otherwise get the two copy file list in SRCARCH for cscope: C symbol: start_kernel File Function Line 0 proto.h <global> 11 extern void start_kernel(void ); 1 start_kernel.h <global> 10 extern asmlinkage void __init start_kernel(void ); 2 head32.c i386_start_kernel 37 start_kernel(); 3 head32.c i386_start_kernel 37 start_kernel(); 4 head64.c x86_64_start_kernel 85 start_kernel(); 5 head64.c x86_64_start_kernel 85 start_kernel(); 6 head_32.S options 199 cmpb $0,%cl #the first CPU calls start_kernel 7 head_32.S options 199 cmpb $0,%cl #the first CPU calls start_kernel 8 enlighten.c xen_start_kernel 1145 start_kernel(); 9 enlighten.c xen_start_kernel 1145 start_kernel(); a lguest.c lguest_init 1095 start_kernel(); b main.c start_kernel 513 asmlinkage void __init start_kernel(void ) after the patch: C symbol: start_kernel File Function Line 0 proto.h <global> 11 extern void start_kernel(void ); 1 start_kernel.h <global> 10 extern asmlinkage void __init start_kernel(void ); 2 head32.c i386_start_kernel 37 start_kernel(); 3 head64.c x86_64_start_kernel 85 start_kernel(); 4 head_32.S options 199 cmpb $0,%cl #the first CPU calls start_kernel 5 enlighten.c xen_start_kernel 1145 start_kernel(); 6 lguest.c lguest_init 1095 start_kernel(); 7 main.c start_kernel 513 asmlinkage void __init start_kernel(void ) Signed-off-by: Yinghai Lu <yinghai.lu@sun.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>