]> xenbits.xensource.com Git - osstest/rumprun.git/log
osstest/rumprun.git
9 years agoBring back chuck magic checks.
Antti Kantee [Mon, 5 Oct 2015 00:40:16 +0000 (00:40 +0000)]
Bring back chuck magic checks.

Problem they caught should be fixed now.

9 years agoprevent integer truncation in allocated_in_map()
Antti Kantee [Mon, 5 Oct 2015 00:38:09 +0000 (00:38 +0000)]
prevent integer truncation in allocated_in_map()

9 years agoRevert "Put a magic number into the allocator chunks."
Antti Kantee [Sun, 4 Oct 2015 22:47:04 +0000 (22:47 +0000)]
Revert "Put a magic number into the allocator chunks."

Breaks Travis CI tests.  No idea why, so revert so that the
situation can be investigated.

This reverts commit 7dfdbb170ed8fffff11b2ad12a288e976b55a89d.

9 years agoTurn travis tests for hw/x86_64 back on
Antti Kantee [Sun, 4 Oct 2015 21:54:49 +0000 (21:54 +0000)]
Turn travis tests for hw/x86_64 back on

Need to try to figure out what's wrong ...

9 years agodon't overallow bitmap if memory starts from high up
Antti Kantee [Sun, 4 Oct 2015 21:54:16 +0000 (21:54 +0000)]
don't overallow bitmap if memory starts from high up

9 years agoMake "Best effort" to display something for a test.
Antti Kantee [Sun, 4 Oct 2015 21:15:14 +0000 (21:15 +0000)]
Make "Best effort" to display something for a test.

We might not get full output for whatever reason, so not-pretty
stuff is better than no stuff.

9 years agoDisable x86_64 tests for a short while.
Antti Kantee [Sun, 4 Oct 2015 17:24:41 +0000 (17:24 +0000)]
Disable x86_64 tests for a short while.

Can't repeat locally, so can't be anything too serious.
Will fix it later tonight.

9 years agoForce retravis
Antti Kantee [Sun, 4 Oct 2015 17:17:31 +0000 (17:17 +0000)]
Force retravis

Can't repeat the test failure locally ...

9 years agoBunch of misc improvements
Antti Kantee [Sun, 4 Oct 2015 17:01:19 +0000 (17:01 +0000)]
Bunch of misc improvements

* misnamed FREELIST_SIZE
* misused FREELIST_EMPTY
* debug prints
* comments

9 years agoAllocate freelist head/tail at compile-time.
Antti Kantee [Sun, 4 Oct 2015 16:47:28 +0000 (16:47 +0000)]
Allocate freelist head/tail at compile-time.

9 years agoPut a magic number into the allocator chunks.
Antti Kantee [Sun, 4 Oct 2015 16:40:52 +0000 (16:40 +0000)]
Put a magic number into the allocator chunks.

Use that as an internal invariant.  Free chunks must contain
the magic number.

9 years agochunk_tail is not used in pgalloc => g/c
Antti Kantee [Sun, 4 Oct 2015 16:27:30 +0000 (16:27 +0000)]
chunk_tail is not used in pgalloc => g/c

9 years agointroduce order2size() for common calculation
Antti Kantee [Sun, 4 Oct 2015 16:03:50 +0000 (16:03 +0000)]
introduce order2size() for common calculation

9 years agoGet rid of stupid_t and hide pointer arith in macros.
Antti Kantee [Sun, 4 Oct 2015 15:58:18 +0000 (15:58 +0000)]
Get rid of stupid_t and hide pointer arith in macros.

9 years agoActually fix the "is address managed?" check
Antti Kantee [Sun, 4 Oct 2015 14:47:35 +0000 (14:47 +0000)]
Actually fix the "is address managed?" check

No, for real this time.

9 years agoMake sanity_check() compile again.
Antti Kantee [Sun, 4 Oct 2015 14:31:28 +0000 (14:31 +0000)]
Make sanity_check() compile again.

Run it after every allocation and deallocation if BMK_PGALLOC_DEBUG
is turned on.

9 years agoRecord min/max addresses as pages instead of bytes
Antti Kantee [Sun, 4 Oct 2015 14:12:05 +0000 (14:12 +0000)]
Record min/max addresses as pages instead of bytes

They're always used as pages...

9 years agog/c no longer valid comment
Antti Kantee [Sun, 4 Oct 2015 13:58:37 +0000 (13:58 +0000)]
g/c no longer valid comment

9 years agoAccept -h as an alias for -?
Antti Kantee [Sun, 4 Oct 2015 13:48:22 +0000 (13:48 +0000)]
Accept -h as an alias for -?

Was missing from getopts param

9 years agoimprove help message formatting and option grouping
Antti Kantee [Sun, 4 Oct 2015 13:47:47 +0000 (13:47 +0000)]
improve help message formatting and option grouping

9 years agoPull in new buildrump.sh
Antti Kantee [Sun, 4 Oct 2015 12:34:44 +0000 (12:34 +0000)]
Pull in new buildrump.sh

Stops unwanted "obj" directory from being created as part of
running ./build-rr.sh

9 years agoMake sure we don't under/overflow our chunk merges.
Antti Kantee [Fri, 2 Oct 2015 15:55:36 +0000 (15:55 +0000)]
Make sure we don't under/overflow our chunk merges.

9 years agoMake sure we don't access alloc_bitmap[] beyond its bounds.
Antti Kantee [Fri, 2 Oct 2015 15:38:10 +0000 (15:38 +0000)]
Make sure we don't access alloc_bitmap[] beyond its bounds.

9 years agono casting for void *
Antti Kantee [Fri, 2 Oct 2015 15:37:52 +0000 (15:37 +0000)]
no casting for void *

9 years agoPrint alloc/free when BMK_PGALLOC_DEBUGging
Antti Kantee [Fri, 2 Oct 2015 14:54:50 +0000 (14:54 +0000)]
Print alloc/free when BMK_PGALLOC_DEBUGging

9 years agomake BMK_PGALLOC_DEBUG code compile
Antti Kantee [Fri, 2 Oct 2015 14:42:23 +0000 (14:42 +0000)]
make BMK_PGALLOC_DEBUG code compile

9 years agoAdd -n (does the usual -n thing)
Antti Kantee [Fri, 2 Oct 2015 14:22:01 +0000 (14:22 +0000)]
Add -n (does the usual -n thing)

9 years agoAlso stop at #GP on amd64
Antti Kantee [Fri, 2 Oct 2015 12:06:38 +0000 (12:06 +0000)]
Also stop at #GP on amd64

9 years agoMake sure -lc++ comes before -lunwind in C++ compilations
Antti Kantee [Thu, 1 Oct 2015 22:24:29 +0000 (22:24 +0000)]
Make sure -lc++ comes before -lunwind in C++ compilations

from issue #52

9 years agoInstall unwind.h
Antti Kantee [Thu, 1 Oct 2015 22:08:07 +0000 (22:08 +0000)]
Install unwind.h

from #52

9 years agoAttempt to print RIP for invalid opcode trap.
Antti Kantee [Thu, 1 Oct 2015 19:50:58 +0000 (19:50 +0000)]
Attempt to print RIP for invalid opcode trap.

9 years agoImprove serial console detection
Martin Lucina [Thu, 1 Oct 2015 15:35:34 +0000 (17:35 +0200)]
Improve serial console detection

When running on Xen hypervisor, default to serial console

9 years agoTranslate LF to CRLF in serialcons.c
Martin Lucina [Thu, 1 Oct 2015 15:34:44 +0000 (17:34 +0200)]
Translate LF to CRLF in serialcons.c

9 years agoAdd function to detect if running under hypervisor
Martin Lucina [Thu, 1 Oct 2015 15:34:07 +0000 (17:34 +0200)]
Add function to detect if running under hypervisor

9 years agoRemove broken abstraction in x86_cpuid()
Martin Lucina [Thu, 1 Oct 2015 15:32:05 +0000 (17:32 +0200)]
Remove broken abstraction in x86_cpuid()

CPUID is a mess, remove the broken abstraction in x86_cpuid() which
tries to detect the maximum supported level, as it gets in the way of
using other CPUID leaves (hypervisor detection).

9 years agoCleanup platform config detection.
Antti Kantee [Thu, 1 Oct 2015 11:29:58 +0000 (11:29 +0000)]
Cleanup platform config detection.

Use a bit of awk instead of an undocumented rumpbake command.
We'd need a bit of grep there already anyway to match the config
with the platform.

9 years agoWrite xen_pci rule in simpler terms.
Antti Kantee [Thu, 1 Oct 2015 11:23:33 +0000 (11:23 +0000)]
Write xen_pci rule in simpler terms.

no computer change, just human friendly change

9 years agoSimplify rumpbake commands by removing redundant "bakeconf_"
Antti Kantee [Thu, 1 Oct 2015 00:22:34 +0000 (00:22 +0000)]
Simplify rumpbake commands by removing redundant "bakeconf_"

Suggested by mato on rumpkernel-users

9 years agorumprun-$platform-specs-bake -> specs-bake-$tuple-$platform
Antti Kantee [Tue, 29 Sep 2015 16:03:06 +0000 (16:03 +0000)]
rumprun-$platform-specs-bake -> specs-bake-$tuple-$platform

Allows same app-tools dir to contain >1 machine per platform.

9 years agoRevert "Use smallest prefix as platform, not largest."
Antti Kantee [Tue, 29 Sep 2015 15:13:29 +0000 (15:13 +0000)]
Revert "Use smallest prefix as platform, not largest."

Duh, thinko, it was previously correct.

This reverts commit cce7f118b100a4d8f856cda3ef1907ca132dd6d5.

9 years agoSave BIOS data area values in locore
Martin Lucina [Tue, 29 Sep 2015 12:31:36 +0000 (14:31 +0200)]
Save BIOS data area values in locore

Eliminates the need to muck with page tables on amd64

9 years agoSerial console support for hw (x86) platform
Martin Lucina [Tue, 29 Sep 2015 10:13:23 +0000 (12:13 +0200)]
Serial console support for hw (x86) platform

Implement basic serial console (output-only, without interrupts) for
hw/x86. Console output defaults to VGA, serial console is only used when
the BIOS claims VGA is not present and a serial port is present.

9 years agoCheck that confname format follows currently allowed format.
Antti Kantee [Tue, 29 Sep 2015 13:54:49 +0000 (13:54 +0000)]
Check that confname format follows currently allowed format.

Currently, confnames much begin with "hw_", "xen_" or just "_".

9 years agoUse smallest prefix as platform, not largest.
Antti Kantee [Tue, 29 Sep 2015 13:54:28 +0000 (13:54 +0000)]
Use smallest prefix as platform, not largest.

9 years agoRemove no longer necessary clause in "list" handling
Antti Kantee [Mon, 28 Sep 2015 15:33:07 +0000 (15:33 +0000)]
Remove no longer necessary clause in "list" handling

9 years agoLimit visibility of _configs
Antti Kantee [Mon, 28 Sep 2015 15:31:30 +0000 (15:31 +0000)]
Limit visibility of _configs

Also, one underscore is enough (rumpbake.conf)

9 years agoAdd "rumpbake justlist", which, like the old "list", just lists.
Antti Kantee [Mon, 28 Sep 2015 14:53:40 +0000 (14:53 +0000)]
Add "rumpbake justlist", which, like the old "list", just lists.

In other words, it does not print the descriptions.

9 years agoImprove rumpbake.conf flexibility.
Antti Kantee [Mon, 28 Sep 2015 14:36:10 +0000 (14:36 +0000)]
Improve rumpbake.conf flexibility.

It is now possible to add and remove elements from configurations
in custom configs (via -c conffile).

9 years agoMerge pull request #51 from nyx/patch-1
Antti Kantee [Mon, 28 Sep 2015 12:03:34 +0000 (12:03 +0000)]
Merge pull request #51 from nyx/patch-1

fix typo in README.md

9 years agofix typo in README.md
Andrew Andkjar [Mon, 28 Sep 2015 11:56:15 +0000 (07:56 -0400)]
fix typo in README.md

9 years agoRevert "Hide fermented objects' exported symbols before baking."
Antti Kantee [Sat, 26 Sep 2015 14:49:49 +0000 (14:49 +0000)]
Revert "Hide fermented objects' exported symbols before baking."

This reverts commit 8a137b3c27cf370dd96638be2f172dcbb8d03378.

As reported by @gandro, it breaks some subtle interactions with the
libunwind(?).  So revert the change pending further investigation.

9 years agoHide fermented objects' exported symbols before baking.
Antti Kantee [Fri, 25 Sep 2015 18:30:15 +0000 (18:30 +0000)]
Hide fermented objects' exported symbols before baking.

Makes it possible to multibake many applications which contain
the same symbols (or which are linked to the same lib).

Requested by @gandro.

9 years agoput internal functions in _namespace
Antti Kantee [Thu, 24 Sep 2015 19:07:08 +0000 (19:07 +0000)]
put internal functions in _namespace

9 years agoROOTFSCFG => _RUMPRUN_ROOTFSCFG
Antti Kantee [Thu, 24 Sep 2015 19:02:07 +0000 (19:02 +0000)]
ROOTFSCFG => _RUMPRUN_ROOTFSCFG

Just makes it a bit less likely to have a collision.

9 years agoMerge pull request #50 from boardwalk/master
Antti Kantee [Thu, 24 Sep 2015 13:25:49 +0000 (13:25 +0000)]
Merge pull request #50 from boardwalk/master

Allow ROOTFSCFG= to not be at the beginning of the command line.

9 years agoAdd myself to authors.
Dan Skorupski [Thu, 24 Sep 2015 00:58:04 +0000 (19:58 -0500)]
Add myself to authors.

9 years agoAllow ROOTFSCFG= to not be at the beginning of the command line.
Dan Skorupski [Wed, 23 Sep 2015 19:46:26 +0000 (14:46 -0500)]
Allow ROOTFSCFG= to not be at the beginning of the command line.

syslinux passes the entire command line ala main(), ex:
"/myprogram.bin ROOTFSCFG=/json.cfg"

9 years agoMerge pull request #48 from gandro/sigign
Sebastian Wicki [Tue, 22 Sep 2015 22:20:45 +0000 (00:20 +0200)]
Merge pull request #48 from gandro/sigign

Don't issue a warning when ignoring signals

9 years agoDon't issue a warning when ignoring signals
Sebastian Wicki [Tue, 22 Sep 2015 21:24:47 +0000 (23:24 +0200)]
Don't issue a warning when ignoring signals

Since we are ignoring signals anyways. This also disables the warning
if `act` is NULL, since we return a valid structure in `oact`.

9 years agoSplit PCI and DMA hypercalls into separate files.
Antti Kantee [Tue, 22 Sep 2015 01:33:57 +0000 (01:33 +0000)]
Split PCI and DMA hypercalls into separate files.

PCI (usually) implies DMA, but DMA doesn't imply PCI.

9 years agosigaction: make osa_handler SIG_IGN instead of SIG_DFL.
Antti Kantee [Mon, 21 Sep 2015 13:49:14 +0000 (13:49 +0000)]
sigaction: make osa_handler SIG_IGN instead of SIG_DFL.

Latter was accidental.  Former is more honest.

9 years agoUsage: use the more widely accepted version of alphabetical order.
Antti Kantee [Fri, 18 Sep 2015 15:53:37 +0000 (15:53 +0000)]
Usage: use the more widely accepted version of alphabetical order.

9 years agoAccept a -o parameter which determines the build objdir
Antti Kantee [Fri, 18 Sep 2015 15:52:26 +0000 (15:52 +0000)]
Accept a -o parameter which determines the build objdir

Only part of the objects go there as of now, and more work
is required to stuff all of the objects into objdir.

9 years agoupdate to match reality
Antti Kantee [Fri, 18 Sep 2015 11:59:20 +0000 (11:59 +0000)]
update to match reality

[ci skip]

9 years agoActually change the library name too (re previous commit)
Antti Kantee [Thu, 17 Sep 2015 17:14:51 +0000 (17:14 +0000)]
Actually change the library name too (re previous commit)

9 years agolibrumprun_unwind -> libunwind
Antti Kantee [Thu, 17 Sep 2015 16:49:06 +0000 (16:49 +0000)]
librumprun_unwind -> libunwind

There's nothing rumprun-specific in there.  The original idea with the
rumprun prefix was to avoid namespace conflicts, but if someone wants
to link in another libunwind we'll be in trouble regardless.  Also,
consistency with libcompiler_rt.

9 years agoCache truth value of having a working C++ compiler
Antti Kantee [Sat, 12 Sep 2015 19:12:06 +0000 (19:12 +0000)]
Cache truth value of having a working C++ compiler

9 years agopull in new src-netbsd
Antti Kantee [Fri, 11 Sep 2015 13:11:12 +0000 (13:11 +0000)]
pull in new src-netbsd

fixes snafu in previous

9 years agoPull in latest src-netbsd.
Antti Kantee [Fri, 11 Sep 2015 11:44:39 +0000 (11:44 +0000)]
Pull in latest src-netbsd.

Includes new libcxxrt and fixes #44

9 years agoReduce export of clock routines where unnecessary.
Antti Kantee [Thu, 10 Sep 2015 14:58:46 +0000 (14:58 +0000)]
Reduce export of clock routines where unnecessary.

9 years agog/c unnecessary headers
Antti Kantee [Thu, 10 Sep 2015 14:28:48 +0000 (14:28 +0000)]
g/c unnecessary headers

9 years agorumppci: PAGE_SHIFT -> BMK_PCPU_PAGE_SHIFT
Antti Kantee [Wed, 9 Sep 2015 23:11:28 +0000 (23:11 +0000)]
rumppci: PAGE_SHIFT -> BMK_PCPU_PAGE_SHIFT

9 years agoRetire bmk_page{size,shift}, use BMK_PCPU_PAGE_{SIZE,SHIFT}.
Antti Kantee [Wed, 9 Sep 2015 22:58:58 +0000 (22:58 +0000)]
Retire bmk_page{size,shift}, use BMK_PCPU_PAGE_{SIZE,SHIFT}.

Latter are compile-time constants.

9 years agoAllow libbmk* to include platform/cpu-specific headers.
Antti Kantee [Wed, 9 Sep 2015 22:14:19 +0000 (22:14 +0000)]
Allow libbmk* to include platform/cpu-specific headers.

Use the <bmk-pcpu> namespace for that (pcpu = platform+cpu).

The purpose is to allow some compile-time and other optimizations to
take place, e.g. with PAGE_SIZE.

9 years agoJust use OBJS_BMK for everything.
Antti Kantee [Wed, 9 Sep 2015 18:05:56 +0000 (18:05 +0000)]
Just use OBJS_BMK for everything.

9 years agoEnable sysproxy based on $RUMPRUN_SYSPROXY, not by default.
Antti Kantee [Tue, 8 Sep 2015 22:31:08 +0000 (22:31 +0000)]
Enable sysproxy based on $RUMPRUN_SYSPROXY, not by default.

Essentially, turns default sysproxy on TCP port 12345 off.  Now,
for the same effect, you need:

rumprun [...] -e RUMPRUN_SYSPROXY=tcp://0:12345/ [...]

9 years agoUse "probe" to decide if -mno-red-zone is necessary
Antti Kantee [Mon, 7 Sep 2015 23:37:39 +0000 (23:37 +0000)]
Use "probe" to decide if -mno-red-zone is necessary

9 years agoUse "buildrump.sh probe" to throw usage-derived errors early.
Antti Kantee [Mon, 7 Sep 2015 23:29:22 +0000 (23:29 +0000)]
Use "buildrump.sh probe" to throw usage-derived errors early.

9 years agoupdate buildrump.sh
Antti Kantee [Mon, 7 Sep 2015 23:29:09 +0000 (23:29 +0000)]
update buildrump.sh

9 years agoadd KERNONLY to .prevbuild
Antti Kantee [Fri, 4 Sep 2015 15:45:31 +0000 (15:45 +0000)]
add KERNONLY to .prevbuild

9 years agoUpdate README for -k(ernonly) mode
Antti Kantee [Fri, 4 Sep 2015 12:54:20 +0000 (12:54 +0000)]
Update README for -k(ernonly) mode

9 years agoMerge pull request #46 from gandro/nolibc-hw
Antti Kantee [Thu, 3 Sep 2015 17:38:57 +0000 (17:38 +0000)]
Merge pull request #46 from gandro/nolibc-hw

Add build-rr.sh -k flag to build without userland libraries

9 years agoAdd gandro to AUTHORS
Sebastian Wicki [Thu, 3 Sep 2015 15:53:15 +0000 (17:53 +0200)]
Add gandro to AUTHORS

9 years agoAdd Travis CI support for -k flag
Sebastian Wicki [Thu, 3 Sep 2015 15:53:03 +0000 (17:53 +0200)]
Add Travis CI support for -k flag

9 years agoAdd tests and -k flag to buildtests.sh
Sebastian Wicki [Thu, 3 Sep 2015 15:51:59 +0000 (17:51 +0200)]
Add tests and -k flag to buildtests.sh

9 years agoAdd nolibc mode -k to build-rr.sh
Sebastian Wicki [Thu, 3 Sep 2015 15:51:24 +0000 (17:51 +0200)]
Add nolibc mode -k to build-rr.sh

Currently only supported for the 'hw' platform. This builds rumprun
without any userland code (i.e. libc, app-tools), for custom builds
that invoke rump kernel functions directly.

9 years agoMerge pull request #45 from gandro/bmk_strncpy-fix
Antti Kantee [Thu, 3 Sep 2015 11:57:11 +0000 (11:57 +0000)]
Merge pull request #45 from gandro/bmk_strncpy-fix

Fix bmk_strncpy for n=0 and n<strlen(src)

9 years agoFix bmk_strncpy for n=0 and n<strlen(src)
Sebastian Wicki [Thu, 30 Jul 2015 20:33:03 +0000 (22:33 +0200)]
Fix bmk_strncpy for n=0 and n<strlen(src)

9 years agoDo not assume that all compiler invocations generate output.
Antti Kantee [Wed, 2 Sep 2015 12:57:12 +0000 (12:57 +0000)]
Do not assume that all compiler invocations generate output.

Fixes a problem reported by Vincent Schwarzer, namely that
"ccwrapper -print-search-dirs" throws an error.

9 years agopull in latest buildrump.sh (for brprintmetainfo)
Antti Kantee [Wed, 2 Sep 2015 12:57:00 +0000 (12:57 +0000)]
pull in latest buildrump.sh (for brprintmetainfo)

9 years agoSet -mno-red-zone for x86_64 hw too.
Antti Kantee [Tue, 1 Sep 2015 20:17:04 +0000 (20:17 +0000)]
Set -mno-red-zone for x86_64 hw too.

The TSS stuff doesn't work as hoped, and need to dig through some manuals
to see if that can be fixed.

9 years agoset -mno-red-zone for CXXFLAGS too
Antti Kantee [Tue, 1 Sep 2015 20:16:02 +0000 (20:16 +0000)]
set -mno-red-zone for CXXFLAGS too

9 years agoDon't error if a rumpbake recipe is entry (can happen e.g. for cflags)
Antti Kantee [Tue, 1 Sep 2015 11:01:50 +0000 (11:01 +0000)]
Don't error if a rumpbake recipe is entry (can happen e.g. for cflags)

9 years agoDefault to C++11 only if no -std= specified
Martin Lucina [Sun, 30 Aug 2015 12:57:24 +0000 (14:57 +0200)]
Default to C++11 only if no -std= specified

If the user explicitly specifies -std= then we don't want to override
that.

9 years agoSpecify C++ language standard and includes using compiler specs
Martin Lucina [Sun, 30 Aug 2015 10:28:34 +0000 (12:28 +0200)]
Specify C++ language standard and includes using compiler specs

To address issue #43, the gcc driver knows (based on a list of suffixes)
if it is compiling C or C++. So, we can use this knowledge in the specs
to set the required C++ standard.

Note that -std=c++11 must be specified in both the cpp_options and
cc1plus spec for this to work.

This change also sets the cpp options to only add the C++ include paths
when compiling C++ programs.

9 years agoAllow raw libs to be specified in configs.
Antti Kantee [Fri, 28 Aug 2015 14:25:38 +0000 (14:25 +0000)]
Allow raw libs to be specified in configs.

9 years agoFix to previous: process options correctly
Antti Kantee [Fri, 28 Aug 2015 14:15:48 +0000 (14:15 +0000)]
Fix to previous: process options correctly

9 years agoadd rumpbake version and check version for config files
Antti Kantee [Fri, 28 Aug 2015 13:48:34 +0000 (13:48 +0000)]
add rumpbake version and check version for config files

9 years agoImplement -c userconfig, as discussed on rumpkernel-users
Antti Kantee [Fri, 28 Aug 2015 12:48:47 +0000 (12:48 +0000)]
Implement -c userconfig, as discussed on rumpkernel-users

9 years agoFix previous
Antti Kantee [Fri, 28 Aug 2015 12:23:19 +0000 (12:23 +0000)]
Fix previous

... take into account that the same line can contain
the same bug twice.