create-diff-object: fix for unincluded sec->secsym

When running kpatch-build with -d, I was getting a seg fault.  It was
faulting in kpatch_dump_kelf() when trying to print sec->secsym->name
for the .smp_locks section.  It turns out that the section was included
but its section symbol wasn't included, so sec->secsym pointed to freed
memory.
add KPATCH_WARN_*_LINE macros

WARN macros are problematic because they embed the line number in an
instruction.  As a result, when a function is changed higher in a file,
the line numbers for any WARN calls below that function in the file can
result in unnecessarily changed functions.

These macros allow a patch author to hard code the line numbers in WARN
macros to prevent functions from otherwise changing and getting pulled
into a patch module unnecessarily.
kpatch: pass basename of argument to unload_module
readme: add links to more videos
Merge pull request #308 from jpoimboe/readme-videos

readme: add links to more videos
Merge pull request #301 from jpoimboe/debug-seg-fault

create-diff-object: fix for unincluded sec->secsym
Merge pull request #307 from flaming-toast/kpatch-unload

kpatch: pass basename of argument to unload_module
Merge pull request #303 from jpoimboe/warn-macros

add KPATCH_WARN_*_LINE macros
kmod/core: checkpatch style fixes
Merge pull request #310 from jpoimboe/checkpatch-fixes

kmod/core: checkpatch style fixes
update supported kernel version

Some of the kernel APIs that are used by the core kernel module where
updated in 3.9 and are incompatible with previous kernel versions.

Update the README to reflect this.

Fixes #257

Signed-off-by: Seth Jennings <sjenning@redhat.com>
remove mentry mention in kernel version requirement

There are more reasons besides mentry support for 3.9 being the
minimum supported kernel version.  There are also API changes that
happened in 3.9 that make the core module incompatible with previous
versions.

Rather than spelling all that out, just simply state the minimum
version.

Signed-off-by: Seth Jennings <sjenning@redhat.com>
Merge pull request #311 from spartacus06/version-compat-update

update supported kernel version
add install documentation for RHEL

Fixes #253

Signed-off-by: Seth Jennings <sjenning@redhat.com>
Merge pull request #312 from spartacus06/add-rhel-install-doc

add install documentation for RHEL
allow user-defined LIBDIR in install paths

User reported cases where libraries are in lib32/64 directories, not
lib.

Allow the user to override by setting LIBDIR.

Fixes #167

Signed-off-by: Seth Jennings <sjenning@redhat.com>
kmod/core: module old_addr fix

When patching a module, I ran into a "can't set ftrace filter at
address" error.  The root cause was due to the fact that
mod->module_core + old_offset is apparently not a reliable way to
determine the function's address.

Instead, just get the address from kallsyms like we do for module
dynrelas.
Merge pull request #317 from jpoimboe/module-old-addr-fix

kmod/core: module old_addr fix
fix logging in kpatch_verify_patchability()

log_normal() already prints the objname; no need to do it again

Signed-off-by: Seth Jennings <sjenning@redhat.com>
Merge pull request #319 from spartacus06/fix-msgs

fix logging in kpatch_verify_patchability()