kpatch-build: use close archive mirror for Ubuntu for speed
readme: update, add RHEL 7 as supported distro, break up long lines and beautify using GitHub flavored markdown
kpatch-build: remove unneeded comments readme: roll back unneeded changes
0.1.10 release
Merge pull request #341 from jpoimboe/0.1.10

0.1.10 release
macros: document more implications of KPATCH_FORCE_UNSAFE
macros: add KPATCH_PRINTK macro

Use this instead of calling printk to avoid unwanted compiler
optimizations which cause kpatch-build errors.

The printk function is annotated with the __cold attribute, which tells
gcc that the function is unlikely to be called.  A side effect of this
is that code paths containing calls to printk might also be marked cold,
leading to other functions called in those code paths getting moved into
.text.unlikely or being uninlined.

This macro places printk in its own code path so as not to make the
surrounding code path cold.

I have a related integration test to add, but right now it's broken
because we don't yet properly support the __verbose special section.
That'll be another PR.

Fixes #296.
Merge pull request #329 from terrywang/ubuntu-mirror

kpatch-build and README.md update
don't correlate __verbose statics

The __verbose section stores several static local structs named
"descriptor".  These structs contain information related to dynamic
debugging printks and are specific to the patched object, so they
shouldn't be correlated with their base object counterparts.

Fixes the following error:

    kpatch_correlate_static_local_variables: 830: static local variable descriptor.49967 not used
detect .rodata.* bundled sections

Detect .rodata.* bundled sections so that .rodata.__func__.* relocation
references can be converted to refer to their corresponding object
symbols.

Fixes the following error:

    kpatch_correlate_static_local_variables: 830: static local variable __func__.49968 not used
compare __func__ references by value

Fixes the following error:

    kpatch_correlate_static_local_variables: 850: found another static local variable matching __func__.49968 in patched .rela__verbose
Merge pull request #342 from jpoimboe/kpatch-printk

macros: add KPATCH_PRINTK macro
Merge pull request #344 from jpoimboe/verbose

__verbose special section support
test: add KPATCH_PRINTK test
Merge pull request #345 from jpoimboe/test-macro-printk

test: add KPATCH_PRINTK test
test/testmod/doit.sh: set KBUILD_EXTRA_SYMBOLS to include core module
symbols
fix bad Module.symvers path

Signed-off-by: Seth Jennings <sjenning@redhat.com>
restructure building process

Right now, we do three build passes: one to build the original tree
(full) build, one to build the patch tree (diff build), then one to
rebuild original objects that where changed by the patch (diff build).

This is going to be a problem when we try to support (near) full tree
rebuilds due to changes in commonly included header files.

This commit changes the build process to intercept calls to gcc by make
using the CROSS_COMPILE environment variable and, during the patched
build phase, copies the original object for any object that is about to
rebuilt due to a change.

This reduces the number of build passes to the minimum possible (two).

Signed-off-by: Seth Jennings <sjenning@redhat.com>
Merge pull request #347 from spartacus06/change-build

restructure building process
allow for unchanged objects

There are situations in which an object may be rebuilt but have no
functional changes, such as a change to an included header file.

This commit changes kpatch-build to tolerate individual unchanged
objects so long as there is, in the end, at least one changed object.

Signed-off-by: Seth Jennings <sjenning@redhat.com>