[kbuild-devel] Some feedback on using kbuild

2002-06-23 Thread Jak

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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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)

2002-06-23 Thread Greg Banks


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

2002-06-23 Thread Sam Ravnborg

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

2002-06-23 Thread Keith Owens

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

2002-06-23 Thread Jrg Prante

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