tech-kern archive

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

build-testing rump



Some people have pointed out that it is taxing to test if rump
applications link after kernel changes because it requires doing a full
build.  I just committed an addition to build.sh which makes things a
lot snappier.

Basically you say:
    ./build.sh ${yourargs} tools ; ./build.sh ${yourargs} rumptest

Where yourargs are what have you, e.g. '-U -u -o -O /objs'.

The latter builds only the rump kernel libs and uses some ld+awk magic
to figure out if things go right or not.  This is to avoid having to
install headers and build libs (which is too slow since a full build is
too slow).  The magic is not a substitute for a full build, but it is
n+1 times faster and works probably 99.9% of the time.

The scheme uses a number of predefined component sets
(e.g. tmpfs+vfs+rumpkern) to test linkage.  They are currently listed
in build.sh.  This area probably needs some work in the future.  It would
be nice to autogenerate the combinations somehow.

If things go well, you get something like this:

        ===> Rump build&link tests successful
        ===> build.sh ended:   Wed Nov 18 20:10:59 EET 2009
        ===> Summary of results:

If things go less peachy, you should get an error like this:

        vfs_cwd.c:(.text+0x66): undefined reference to `rumpns_hideous_error'

        ERROR: Testlink of rump failed: 
                -lrumpvfs -lrump
        *** BUILD ABORTED ***

Meaning that the rump component symbol closure is broken because vfs_cwd.c
now contains a call to "somewhere".  There are three ways to address this,
in order of preference:

  1) include the implementation
  2) email me
  3) add a stub without further thought


Home | Main Index | Thread Index | Old Index