Commit 7c634ae8 (msrtool: added support for Intel CPUs) adds `no-pic` to
the compiler flags.
GCC 7.0.1 20170316 fails to built with the error below.
```
/usr/bin/ld: msrtool.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: msrutils.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: sys.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: linux.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: freebsd.o: relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
```
Removing the flag causes the build to succeed with GCC 7, 6.3, and clang
4.0.
Change-Id: I3d7aed27ce7f84aa27305c68e2d5f14607c58ec8
Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: https://review.coreboot.org/18907
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Tauner <stefan.tauner@gmx.at>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
You need to be ROOT or use SUDO to execute MSRTOOL.
Note that you need /dev/cpu/*/msr available to run msrtool in Linux.
syntax: msrtool [-hvqrkl] [-c cpu] [-m system] [-t target ...]
[-i addr=hi[:]lo] | [-s file] | [-d [:]file] | addr...
-h show this help text
-v be verbose
-q be quiet (overrides -v)
-r include [Reserved] values
-k list all known systems and targets
-l list MSRs and bit fields for current target(s) (-kl for ALL targets!)
-c access MSRs on the specified CPU, default=0
-m force a system, e.g: -m linux
-t force a target, can be used multiple times, e.g: -t geodelx -t cs5536
-i immediate mode
decode hex addr=hi:lo for the target without reading hw value
e.g: -i 4c00000f=f2f100ff56960004
-s stream mode
read one MSR address per line and append current hw value to the line
use the filename - for stdin/stdout
using -l -s ignores input and will output all MSRs with values
-d diff mode
read one address and value per line and compare with current hw value,
printing differences to stdout. use the filename - to read from stdin
use :file or :- to reverse diff, normally hw values are considered new
addr.. direct mode, read and decode values for the given MSR address(es)
Examples:
msrtool 0x20000018
./msrtool 0x200000{18,19,1a,1b,1c,1d} 0x4c0000{0f,14}