[kbuild-devel] Some feedback on using kbuild
Keith, thanks for your previous reply. ( Re: kbuild2.5 does not actually install vmlinux for debugging as claimed ) Here are some more questions/observations on using kbuild : I hope this kind of feedback is useful. 1) what version of make ? Makefile-2.5 suggests I need at least 3.79.1 but kbuild-2.5.txt says 3.7[78] will work ( section CONTROLLING KBUILD ). 2) $USER_VERSION versus $USERVERSION ? Documentation/kbuild/kbuild-2.5.txt refers to USER_VERSION, but Makefile-2.5 uses USERVERSION. Also, kbuild-2.5.txt refers to file .tmp_A_version which does not seem to exist. Assuming .tmp_A_version is not required, this is my take on USERVERSION --- 2.5-kbuild-src/Documentation/kbuild/kbuild-2.5.txt Wed Jun 19 12:17:11 2002 +++ 2.5-kbuild-src/Documentation/kbuild/kbuild-2.5.txt.jak Sun Jun 23 11:39:43 +2002 @@ -1994,6 +1994,22 @@ forces a complete rebuild. 'arch_opt' is a set of architecture specific config variables, such as a list of machine types. + USERVERSION +In current kernels the kernel version information is part of the top +level Makefile. I want to move them to a separate file so the top level +Makefile it is only changed for kbuild, not for every kernel. The plan +is to ship a file A_version containing just the VERSION, PATCHLEVEL, +SUBLEVEL and EXTRAVERSION variables with the kernel sources. +In the meantime, we generate our own $KBUILD_OBJTREE/A_version containing +these variables based on the old Makefile. + +Variable USERVERSION is _not_ part of A_version, this variable is +reserved for the end user and must never be set in any distributed kernel. +The user can then customize the kernel version by setting USERVERSION as +part of the make command line e.g. + make -f $KBUILD_SRCTREE_000/Makefile-2.5 -j2 USERVERSION=whatever +The USERVERSION text gets appended to the existing kernel version info. + TEMPORARY FILES FOR KBUILD @@ -2013,17 +2029,6 @@ modules, converting vmlinix to a bootable format, installing the bootable kernel, installing the modules and running the post install script, if any. - - .tmp_A_version -In current kernels the kernel version information is part of the top -level Makefile. I want to move them to a separate file so the top level -Makefile it is only changed for kbuild, not for every kernel. The plan -is to create file A_version containing just the VERSION, PATCHLEVEL, -SUBLEVEL and EXTRAVERSION variables. In the meantime, create -.tmp_A_version from the old Makefile and compare against the generated -A_version file. Variable USER_VERSION is _not_ part of A_version, this -variable is reserved for the end user and must never be set in any -distributed kernel. .tmp_db_main The main kbuild database. This uses Larry McVoy's memory mapped database ### end 3) what are the legal options for using shadow tree(s) e.g. what is the proper procedure for switching between using shadow tree(s), then reverting to Linus sources. It looks like I need to do make mrproper and full recompile, even though I am only ever likely to be changing/adding/dropping compilation of a small number of objects. I would have expected the only rebuild what's necessary philosophy to apply here. I think shadow tree support is a feature that will impress lots of people most, and deserves more detailed description/instructions. 4) make *config insists I must do make dep ( I am trying kbuild-*-2.4.19-pre10 while 2.5.x plays hard to compile ). --- 2.4-src/scripts/Configure Mon Jun 17 16:36:27 2002 +++ 2.4-src/scripts/Configure.jak Tue Jun 18 22:42:18 2002 @@ -696,7 +696,7 @@ echo *** End of Linux kernel configuration. echo *** Check the top-level Makefile for additional configuration. if [ ! -f .hdepend -o $CONFIG_MODVERSIONS = y ] ; then -echo *** Next, you must run 'make dep'. +echo *** Next, you must run 'make dep' ( unless you are using kbuild-2.5 ). else echo *** Next, you may run 'make bzImage', 'make bzdisk', or 'make install'. fi --- 2.4-src/scripts/Menuconfig Mon Jun 10 14:17:11 2002 +++ 2.4-src/scripts/Menuconfig.jak Tue Jun 18 22:43:23 2002 @@ -1454,7 +1454,7 @@ echo *** End of Linux kernel configuration. echo *** Check the top-level Makefile for additional configuration. if [ ! -f .hdepend -o $CONFIG_MODVERSIONS = y ] ; then - echo *** Next, you must run 'make dep'. + echo *** Next, you must run 'make dep' ( unless you are using kbuild-2.5 +). else echo *** Next, you may run 'make bzImage', 'make bzdisk', or 'make install'. fi --- 2.4-src/scripts/header.tk Mon Jul 2 21:56:40 2001 +++ 2.4-src/scripts/header.tk.jak Tue Jun 18 22:44:31 2002 @@ -551,7 +551,7 @@ global CONFIG_MODVERSIONS; vfix CONFIG_MODVERSIONS if { ([file exists .hdepend] != 1) || ($CONFIG_MODVERSIONS == 1) } then { message $w.m
[kbuild-devel] PATCH 2.5: kconfig missing EXPERIMENTAL 2 (1/7)
Three symbols CONFIG_SCSI_CUMANA_1, CONFIG_SCSI_ECOSCSI, and CONFIG_SCSI_OAK1 depend on CONFIG_EXPERIMENTAL but do not say so in their banners. diff -ruN linux-2.5.21+patches3/drivers/acorn/scsi/Config.in linux-2.5.21/drivers/acorn/scsi/Config.in --- linux-2.5.21+patches3/drivers/acorn/scsi/Config.in Sun Jun 16 14:15:27 2002 +++ linux-2.5.21/drivers/acorn/scsi/Config.in Sun Jun 16 12:40:16 2002 @@ -14,10 +14,10 @@ if [ $CONFIG_EXPERIMENTAL = y ]; then comment 'The following drivers are not fully supported' - dep_tristate 'CumanaSCSI I support' CONFIG_SCSI_CUMANA_1 $CONFIG_SCSI + dep_tristate 'CumanaSCSI I support (EXPERIMENTAL)' CONFIG_SCSI_CUMANA_1 +$CONFIG_SCSI if [ $CONFIG_ARCH_ARC = y -o $CONFIG_ARCH_A5K = y ]; then - dep_tristate 'EcoScsi support' CONFIG_SCSI_ECOSCSI $CONFIG_SCSI + dep_tristate 'EcoScsi support (EXPERIMENTAL)' CONFIG_SCSI_ECOSCSI $CONFIG_SCSI fi - dep_tristate 'Oak SCSI support' CONFIG_SCSI_OAK1 $CONFIG_SCSI + dep_tristate 'Oak SCSI support (EXPERIMENTAL)' CONFIG_SCSI_OAK1 $CONFIG_SCSI fi Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig use of $ARCH (1/12)
Use of the $ARCH variable is undocumented; the alpha port defines the bool constant CONFIG_ALPHA for this purpose. diff -ruN linux-2.5.21+trivial/drivers/char/ftape/Config.in linux-2.5.21/drivers/char/ftape/Config.in --- linux-2.5.21+trivial/drivers/char/ftape/Config.in Wed Jun 12 17:34:51 2002 +++ linux-2.5.21/drivers/char/ftape/Config.in Wed Jun 12 17:42:15 2002 @@ -35,7 +35,7 @@ int ' Maximal data rate to use (EXPERIMENTAL)' CONFIG_FT_FDC_MAX_RATE 2000 fi -if [ $ARCH = alpha ]; then +if [ $CONFIG_ALPHA = y ]; then int ' CPU clock frequency of your DEC Alpha' CONFIG_FT_ALPHA_CLOCK 0 else define_int CONFIG_FT_ALPHA_CLOCK 0 Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig use of $ARCH (2/12)
Use of the $ARCH variable is undocumented; the alpha port defines the bool constant CONFIG_ALPHA for this purpose. diff -ruN linux-2.5.21+trivial/fs/partitions/Config.in linux-2.5.21/fs/partitions/Config.in --- linux-2.5.21+trivial/fs/partitions/Config.inWed Jun 12 17:34:51 2002 +++ linux-2.5.21/fs/partitions/Config.inWed Jun 12 17:39:11 2002 @@ -34,7 +34,7 @@ bool ' Sun partition tables support' CONFIG_SUN_PARTITION bool ' EFI GUID Partition support' CONFIG_EFI_PARTITION else - if [ $ARCH = alpha ]; then + if [ $CONFIG_ALPHA = y ]; then define_bool CONFIG_OSF_PARTITION y fi if [ $CONFIG_AMIGA != y -a $CONFIG_ATARI != y -a \ Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig use of $ARCH (4/12)
Use of the $ARCH variable is undocumented; the sparc and sparc64 ports define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively for this purpose. diff -ruN linux-2.5.21+trivial/drivers/fc4/Config.in linux-2.5.21/drivers/fc4/Config.in --- linux-2.5.21+trivial/drivers/fc4/Config.in Wed Jun 12 17:34:51 2002 +++ linux-2.5.21/drivers/fc4/Config.in Wed Jun 12 17:42:50 2002 @@ -7,13 +7,13 @@ tristate 'Fibre Channel and FC4 SCSI support' CONFIG_FC4 if [ ! $CONFIG_FC4 = n ]; then comment 'FC4 drivers' - if [ $ARCH = sparc -o $ARCH = sparc64 ]; then + if [ $CONFIG_SPARC32 = y -o $CONFIG_SPARC64 = y ]; then tristate 'Sun SOC/Sbus' CONFIG_FC4_SOC tristate 'Sun SOC+ (aka SOCAL)' CONFIG_FC4_SOCAL fi comment 'FC4 targets' dep_tristate 'SparcSTORAGE Array 100 and 200 series' CONFIG_SCSI_PLUTO $CONFIG_SCSI - if [ $ARCH = sparc -o $ARCH = sparc64 ]; then + if [ $CONFIG_SPARC32 = y -o $CONFIG_SPARC64 = y ]; then dep_tristate 'Sun Enterprise Network Array (A5000 and EX500)' CONFIG_SCSI_FCAL $CONFIG_SCSI else dep_tristate 'Generic FC-AL disk driver' CONFIG_SCSI_FCAL $CONFIG_SCSI Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig use of $ARCH (6/12)
Use of the $ARCH variable is undocumented; the sparc and sparc64 ports define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively for this purpose. diff -ruN linux-2.5.21+trivial/drivers/sbus/char/Config.in linux-2.5.21/drivers/sbus/char/Config.in --- linux-2.5.21+trivial/drivers/sbus/char/Config.inWed Jun 12 17:34:51 2002 +++ linux-2.5.21/drivers/sbus/char/Config.inWed Jun 12 17:39:52 2002 @@ -2,7 +2,7 @@ comment 'Misc Linux/SPARC drivers' tristate '/dev/openprom device support' CONFIG_SUN_OPENPROMIO tristate 'Mostek real time clock support' CONFIG_SUN_MOSTEK_RTC -if [ $ARCH = sparc64 ]; then +if [ $CONFIG_SPARC64 = y ]; then if [ $CONFIG_PCI = y ]; then tristate 'Siemens SAB82532 serial support' CONFIG_SAB82532 fi Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig use of $ARCH (9/12)
Use of the $ARCH variable is undocumented; the sparc and sparc64 ports define the bool constants CONFIG_SPARC32 and CONFIG_SPARC64 respectively for this purpose. diff -ruN linux-2.5.21+trivial/drivers/video/Config.in linux-2.5.21/drivers/video/Config.in --- linux-2.5.21+trivial/drivers/video/Config.inWed Jun 12 17:34:51 2002 +++ linux-2.5.21/drivers/video/Config.inWed Jun 12 17:41:51 2002 @@ -175,7 +175,7 @@ bool 'Leo (ZX) support' CONFIG_FB_LEO fi fi - if [ $ARCH = sparc ]; then + if [ $CONFIG_SPARC32 = y ]; then if [ $CONFIG_PCI != n ]; then bool ' PCI framebuffers' CONFIG_FB_PCI if [ $CONFIG_FB_PCI != n ]; then Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH: kconfig choice defaults 2 (2/3)
The default value specified as the last word of the choice statement should be a unique abbreviation of one of the sub-prompts. Using one of the sub-symbols is not legal. Fix 'Nino Model Number'. [Rusty: this is 2/3 partial resends of 'PATCH: kconfig choice defaults (1/2)'] diff -ruN linux-2.5.20-orig/arch/mips/config.in linux-2.5.20/arch/mips/config.in --- linux-2.5.20-orig/arch/mips/config.in Mon Jun 3 18:54:51 2002 +++ linux-2.5.20/arch/mips/config.inMon Jun 10 18:09:37 2002 @@ -33,7 +33,7 @@ choice 'Nino Model Number' \ Model-300/301/302/319 CONFIG_NINO_4MB \ Model-200/210/312/320/325/350/390 CONFIG_NINO_8MB \ - Model-500/510 CONFIG_NINO_16MB CONFIG_NINO_8MB + Model-500/510 CONFIG_NINO_16MB Model-200 fi fi bool 'Support for Mips Magnum 4000' CONFIG_MIPS_MAGNUM_4000 Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH: kconfig choice defaults 2 (3/3)
The default value specified as the last word of the choice statement should be a unique abbreviation of one of the sub-prompts. Using one of the sub-symbols is not legal. Fix 'Type of PHY'. [Rusty: this is 3/3 partial resends of 'PATCH: kconfig choice defaults (1/2)'] diff -ruN linux-2.5.24-orig/arch/ppc/8260_io/Config.in linux-2.5.24/arch/ppc/8260_io/Config.in --- linux-2.5.24-orig/arch/ppc/8260_io/Config.inSun Jun 23 14:22:54 2002 +++ linux-2.5.24/arch/ppc/8260_io/Config.in Mon Jun 24 00:04:04 2002 @@ -26,7 +26,7 @@ choice 'Type of PHY' \ LXT970 CONFIG_FCC_LXT970 \ LXT971 CONFIG_FCC_LXT971 \ -QS6612 CONFIG_FCC_QS6612 CONFIG_FCC_LXT971 +QS6612 CONFIG_FCC_QS6612 LXT971 fi fi fi Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] PATCH 2.5: kconfig missing EXPERIMENTAL 2 (2/7)
Symbol CONFIG_SOFTWARE_SUSPEND depends on CONFIG_EXPERIMENTAL but does not say so in its banner. diff -ruN linux-2.5.21+patches3/drivers/video/Config.in linux-2.5.21/drivers/video/Config.in --- linux-2.5.21+patches3/drivers/video/Config.in Sun Jun 16 14:15:27 2002 +++ linux-2.5.21/drivers/video/Config.inSun Jun 16 13:19:00 2002 @@ -208,7 +208,7 @@ bool ' TMPTX3912/PR31700 frame buffer support' CONFIG_FB_TX3912 fi if [ $CONFIG_EXPERIMENTAL = y ]; then - tristate ' Virtual Frame Buffer support (ONLY FOR TESTING!)' CONFIG_FB_VIRTUAL + tristate ' Virtual Frame Buffer support (ONLY FOR TESTING!) (EXPERIMENTAL)' +CONFIG_FB_VIRTUAL fi bool ' Advanced low level driver options' CONFIG_FBCON_ADVANCED Greg. -- the price of civilisation today is a courageous willingness to prevail, with force, if necessary, against whatever vicious and uncomprehending enemies try to strike it down. - Roger Sandall, The Age, 28Sep2001. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
Re: [kbuild-devel] Some feedback on using kbuild
On Mon, Jun 24, 2002 at 12:41:28AM +0200, Arnd Bergmann wrote: Why do you see so much added value in kbuild support for shadow trees compared to what a proper SCM tool give you? For my (linux on s390) purpose, shadow trees are the most important feature of kb25, because they allow us to use a proper SCM at all. Currently, we use a CVS repository that includes the official Linux tree as well as our closed source drivers. I would love to use Bitkeeper, but that's only possible if we can easily seperate the free from the the nonfree stuff without having two complete (incompatible) repositories. Shadow trees allow just that. So basically you need a tool to merge two directory structures without touching unchanged files. You could say that this is what you get for free in kbuild-2.5. But I do not see this as part of the kernel build system. Do you need this feature then create a small script that do exactly what you need and run it before the build process. The script should basically just copy modified files to the build tree. My point is that the kernel build system should not be cluttered with functionality that belongs in supporting tools. Hmm, and I did not see why you could not use BitKeeper or some other SCM for both the free anf non-free stuff?? A matter of dollars to spend? For most other people, the added value is that they don't have to use the same SCM tool as anyone else. Giving the user a tarball with a driver (or multiple ones, for that matter) is just so much easier than telling him/her how to patch the source with all things that can go wrong there. When the functionality in question touches common files this approach does no longer work. Therefore keep half solution out of the kernel build system. Sam --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
Re: [kbuild-devel] Some feedback on using kbuild
On Sun, 23 Jun 2002 22:14:58 +0200, Sam Ravnborg [EMAIL PROTECTED] wrote: On Sun, Jun 23, 2002 at 11:54:29PM +1000, Keith Owens wrote: Linus and Kai do not think that shadow trees are useful. I have given up explaining why they are useful. Now I am waiting until Kai hits a dead end using the current syntax (there is no way that the current syntax can cope with shadow trees) then I will try to raise some interest in using the new syntax to get the advanced features of kbuild 2.5. Hi Keith. To me the functionality provided by kbuild-2.5 with respect to shadow trees belongs to the SCM system. What kbuild-2.5 address is only the simplest part namely the compile step. A proper SCM system allow you to do parrallel development with a seperate integration branch, or whatever term the SCM in question like to use. Compiling from an SCM system only works if everybody uses the same SCM tool, that is not an option for the kernel. kbuild 2.5 works for everyone, no matter what other tools the developer uses. Some architecture dependent code is not in Linus's tree because it requires changes to common code that will break other architectures. For a long time you could not apply the ia64 patch to the kernel then compile for other architectures, the other architectures would break. Merging change sets for arch dependent code is a problem for any SCM. I was using PRCS for my kernel work long before BK came along, it has patch sets and branches with good tools for merging changes together. Larry has said that PRCS is one of the best SCM's other than BK, it is only the lack of a distributed repository that stopped PRCS being used more widely. Even with a decent SCM like PRCS, handling multiple patches and testing all the combinations is a nightmare. I was working on ia64, xfs and kdb and had to ensure that these patch combinations worked :- Standard kernel Standard + ia64 Standard + ia64 + xfs Standard + ia64 + kdb(ia64) Standard + ia64 + xfs + kdb Standard + xfs Standard + kdb(i386) Standard + xfs + kdb Without shadow trees, I had to maintain 8 separate source trees to support those combinations. Any xfs change had to be manually replicated over 4 trees, any ia64 change had to manually replicated over 4 other trees. Any change to the standard kernel had to be manually replicated over all 8 trees. kdb was even worse, it consists of arch independent patches plus arch dependent patches. kdb has to be done that way because some of the kdb arch patches go over other arch patches that are not in base kernel. Add devfs to that mix and you need at least another 7 trees. Manually tracking and replicating changes across multiple source trees takes far too much time and is error prone. Using an SCM introduces its own set of problems. You are hacking away, you decide that a change was a mistake and you want to revert to the SCM version of that file. In some (most?) SCM systems, the checkout process on a file resets the timestamp to when it was checked in. Standard 'make' processing cannot cope, it expects timestamps to always go forward, not backwards. kbuild 2.5 tracks all timestamp changes. Another set of problems with an SCM is separating the change sets when you are satisfied with the updates and you do the check in. With two or more change sets in the same source tree, how do you do a check in as separate change sets? Once you mingle two change sets in the same source tree, splitting again is extremely messy and error prone. It is far better to keep them separate in the first place. An SCM might work for just one set of changes (ignoring the checkout timestamp problem). It falls down when you are working on multiple change sets, expecially when they are arch dependent. When shadow trees were first suggested I argued against them, but experience has shown that they are better than an SCM system. For ia64 + xfs + kdb I keep one copy of the sources for the standard kernel, ia64, xfs and kdb (i386 and ia64) then use shadow trees to mix and match all the combinations, each combination has its own object tree. Each change set is kept separate and can be checked in and out separately, without worrying about timestamp problems or manual replication of changes. --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
[kbuild-devel] XFS 2.4.19-pre10 and kbuild 2.5
Hi, I am trying to build XFS from CVS (2.4.19-pre10) with the backport of kbuild 2.5 by Paul P Komkoff Jr http://www.uwsg.iu.edu/hypermail/linux/kernel/0206.0/0044.html Unfortunately, the build structure in XFS CVS for the 2.4 kernel is giving me headache. It looks like these are simply the files copied from the XFS 2.5 kernel tree. E.g. the fs/xfs_support subdirectory is not addressed. I played around with the existing files in XFS CVS (Makefile.in/Makefile.in.append), added link_subdirs(xfs xfs_dmapi xfs_support) to fs/Makefile.in, and it compiles, but got linker errors when linking vmlinux (multiple definitions). --snip 'make -f Makefile-2.5'- [...] USER include/linux/compile.h CC init/version.o USER vmlinux fs/xfs_dmapi/xfs_dmapi.o: In function `dm_send_destroy_event': fs/xfs_dmapi/xfs_dmapi.o(.text+0x18c8): multiple definition of `dm_send_destroy_event' fs/xfs/xfs.o(.text+0x61358): first defined here ld: Warning: size of symbol `dm_send_destroy_event' changed from 6 to 514 in fs/xfs_dmapi/xfs_dmapi.o fs/xfs_dmapi/xfs_dmapi.o: In function `dm_send_unmount_event': fs/xfs_dmapi/xfs_dmapi.o(.text+0x1e94): multiple definition of `dm_send_unmount_event' fs/xfs/xfs.o(.text+0x61368): first defined here ld: Warning: size of symbol `dm_send_unmount_event' changed from 1 to 358 in fs/xfs_dmapi/xfs_dmapi.o [...very long error list deleted...] --snap- I think I didn't set up kbuild 2.5 correctly. I am not a kbuild expert so please forgive me if this is a newbie question: Can somebody help me out with working Makefile.in's for 2.4 XFS CVS tree and kbuild 2.5 Version 3.0? It would be great to supply the 2.4 XFS kernel tree in the SGI CVS ready for kbuild 2.5. Many thanks, and keep up the good work, I enjoy XFS very much! Jörg --- Sponsored by: ThinkGeek at http://www.ThinkGeek.com/ ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel