Verify Fiasco assertion using pingpong

eschierb at sci.kun.nl eschierb at sci.kun.nl
Thu Jun 7 12:56:16 CEST 2007


Hi,

I am trying to achieve a very simple thing, which is to test
an assertion in the Fiasco ICP path. More specifically, I want
to add the following assertion to the sys_ipc() function:

"
// This assertion is added by us
assert(!(state() & Thread_polling));

if (EXPECT_TRUE(have_send_part || have_receive_part))
   ret = do_ipc(have_send_part, partner,
          have_receive_part, sender,
          t, regs);
"

As can be seen, I want to assert that the Thread_polling bit
is not set before calling do_ipc(). I planned to do this by
compiling the modified Fiasco kernel and the pingpong package.
If the assertion would not fire after running the pingpong
test suite, I would have at least some confidence that the
assertion does not hold. I have already done something similar
a while ago, but with the newer versions I cannot seem to get
it working.

The first problem was with the DICE compiler, if I used the
latest version of the DICE compiler I got the
"collect2: ld returned 1 exit status". I solved this by using
the 3.1.1 DICE version. I then used the following commands:

"
svn co http://svn.tudos.org/repos/tudos/tags/dice/3.1.1 dice
  ./repomgr co hello
cd dice
./bootstrap
./configure
./make
cd ..
cd l4/pkg
svn up pingpong
cd ..
make O=/tmp/build config
make O=/tmp/build
"

However, this resulted in the following error

"
if [ -r ../dice/Makefile.drops ]; then                \
    make -C ../dice -f Makefile.drops;                        \
  fi
make[1]: Entering directory `/tmp/tudos/dice'
../l4/mk/Makeconf:155: Sorry, your object or source path became garbled.
../l4/mk/Makeconf:156: OBJ_BASE: /tmp/build
../l4/mk/Makeconf:157: SRC_BASE_ABS: /tmp/tudos/l4
../l4/mk/Makeconf:158: SRC_DIR: /tmp/tudos/dice
../l4/mk/Makeconf:159: OBJ_DIR: /tmp/tudos/dice
../l4/mk/Makeconf:160: PKGDIR:
../l4/mk/Makeconf:161: L4DIR_ABS: /tmp/tudos/l4
../l4/mk/Makeconf:162: PKGDIR_ABS:
../l4/mk/Makeconf:163: PKGDIR_OBJ: /tmp/tudos/dice
../l4/mk/Makeconf:164: *** Please investigate..  Stop.
make[1]: Leaving directory `/tmp/tudos/dice'
make: *** [../dice] Error 2
"

As an alternative to the last three lines, I tried to issue
the "make O=/tmp/build" command in the l4/pkg directory.
This resulted in the following error:

"/bin/bash: did_not_find_dice___please_install_dice: command not found"

Any idea how this can be remedied?

With regards,

Erik Schierboom





More information about the l4-hackers mailing list