Code Monkey home page Code Monkey logo

libcpuid's Introduction

libcpuid

libcpuid provides CPU identification for the x86 (and x86_64). For details about the programming API, you might want to take a look at the project's website on sourceforge (http://libcpuid.sourceforge.net/). There you'd find a short tutorial, as well as the full API reference.

Configuring after checkout

Under Linux, where you download the sources, there's no configure script to run. This is because it isn't a good practice to keep such scripts in a source control system. To create it, you need to run the following commands once, after you checkout the libcpuid sources from github:

    1. run "libtoolize"
    2. run "autoreconf --install"

You need to have autoconf, automake and libtool installed.

After that you can run ./configure and make - this will build the library.

make dist will create a tarball (with "configure" inside) with the sources.

Prerequisites

Using libcpuid requires no dependencies on any of the supported OSes. Building it requires the aforementioned libtool and autotools commands to be available, which is a matter of installing a few common packages with related names (e.g. automake, autoconf, libtool). It also requires a POSIX-compatible shell. On NetBSD, you may need to install one (credits to @brucelilly):

  1. Install a POSIX-compatible shell such as ksh93 (pkg_add ast-ksh || pkgin in ast-ksh)
  2. export CONFIG_SHELL=/usr/pkg/bin/ksh93 (substitute the correct path if required)
  3. Follow the regular Linux instructions

Testing

After any change to the detection routines or match tables, it's always a good idea to run make test. If some test fails, and you're confident that the test is wrong and needs fixing, run make fix-tests.

You can also add a new test (which is basically a file containing the raw CPUID data and the expected decoded items) by using tests/create_test.py. The workflow there is as follows:

  1. Run "cpuid_tool" with no arguments. It will tell you that it has written a pair of files, raw.txt and report.txt. Ensure that report.txt contains meaningful data.
  2. Run "tests/create_test.py raw.txt report.txt > «my-cpu».test"
  3. Use a proper descriptive name for the test (look into tests/amd and tests/intel to get an idea) and copy your test file to an appropriate place within the tests directory hierarchy.

AIDA64 CPUID dumps (mostly found on InstLatx64) are also supported. To create a new test based on a AIDA64 CPUID dump, you can do:

cpuid_tool --load=aida64_raw.txt --outfile=report.txt --report
./tests/create_test.py aida64_raw.txt report.txt > tests/xxx/yyy/my-cpu.test

For non-developers, who still want to contribute tests for the project, use this page to report misdetections or new CPUs that libcpuid doesn't handle well yet.

Users

So far, I'm aware of the following projects which utilize libcpuid (listed alphabetically):

We'd love to hear from you if you are also using libcpuid and want your project listed above.

Downloads

You can find latest versioned archives here, with binaries for macOS and Windows.

Binary packages

Also, libcpuid is available for following systems in official repositories:

Below, the full lists of repositories:
Packaging status

Build tool

  • Vcpkg: vcpkg install cpuid

libcpuid's People

Contributors

alexey-milovidov avatar alyssais avatar anonymoususe avatar anrieff avatar azat avatar cireu avatar cosmy1 avatar dimaskovas avatar eloaders avatar emixa-d avatar enzo1982 avatar ericson2314 avatar felixonmars avatar gdbdzgd avatar hygonsoc avatar kreuzerkrieg avatar kylon avatar leslie-fang avatar orivej avatar proller avatar spaceim avatar sprunk avatar sunweaver avatar thetumultuousunicornofdarkness avatar topilski avatar umio-yasuno avatar wdlkmpx avatar x64architecture avatar yanderemine54 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libcpuid's Issues

cpuidtool should depend on libcpuid13 and not libcpuid11

I had purged libcpuid11 once I saw that the new packages it made were libcpuid13 and cpuidtool. I tried to install both of them but was able to install only one of them -

[$] sudo dpkg -i libcpuid13_0.3.0_amd64.deb cpuidtool_0.3.0_amd64.deb                                                              [23:29:13]
D000001: ensure_diversions: new, (re)loading
D000001: ensure_statoverrides: new, (re)loading
(Reading database ... 1120613 files and directories currently installed.)
Preparing to unpack libcpuid13_0.3.0_amd64.deb ...
D000001: process_archive oldversionstatus=installed
Unpacking libcpuid13 (0.3.0) over (0.3.0) ...
D000001: process_archive updating info directory
D000001: generating infodb hashfile
Preparing to unpack cpuidtool_0.3.0_amd64.deb ...
D000001: process_archive oldversionstatus=unpacked but not configured
Unpacking cpuidtool (0.3.0) over (0.3.0) ...
D000001: process_archive updating info directory
D000001: generating infodb hashfile
D000001: process queue pkg libcpuid13:amd64 queue.len 1 progress 1, try 1
Setting up libcpuid13 (0.3.0) ...
D000001: deferred_configure updating conffiles
D000001: process queue pkg cpuidtool:amd64 queue.len 0 progress 1, try 1
dpkg: dependency problems prevent configuration of cpuidtool:
 cpuidtool depends on libcpuid11; however:
  Package libcpuid11 is not installed.

dpkg: error processing package cpuidtool (--install):
 dependency problems - leaving unconfigured
Processing triggers for libc-bin (2.23-5) ...
D000001: ensure_diversions: same, skipping
D000001: cmpversions a='0:2016.03.30' b='0:2016.05.24' r=-2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
Errors were encountered while processing:
 cpuidtool

Please fix the above.

lintian errors checking libcpuid.deb

Hi all,
There are some lintian errors maybe you or somebody else can fix before we could ask Debian to take a look at it :-

[$] lintian -v libcpuid_0.21_amd64.deb                                                                                              
N: Using profile debian/main.
N: Setting up lab in /tmp/temp-lintian-lab-Zftc61CeHr ...
N: Unpacking packages in group libcpuid/0.21
N: ----
N: Processing binary package libcpuid (version 0.21, arch amd64) ...
W: libcpuid: package-name-doesnt-match-sonames libcpuid11
E: libcpuid: description-starts-with-package-name
W: libcpuid: binary-without-manpage usr/bin/cpuid_tool

I can explain what the error is there. The error is saying it starts with package name. What it actually wants to say that there is no small description. Usually when you make a package you start with a single line which tells what the package does. Below I share why it needs to be and which file needs to change.

[$] dpkg -l leafpad                                                                                                                 

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version              Architecture         Description
+++-==============================-====================-====================-=================================================================
ii  leafpad                        0.8.18.1-4           amd64                GTK+ based simple text editor

And here's the long description of the same package :-

[$] aptitude show leafpad                                                                                                           

Package: leafpad                         
State: installed
Automatically installed: no
Version: 0.8.18.1-4
Priority: optional
Section: editors
Maintainer: Jari Aalto <[email protected]>
Architecture: amd64
Uncompressed Size: 739 k
Depends: libc6 (>= 2.4), libcairo2 (>= 1.2.4), libglib2.0-0 (>= 2.24.0), libgtk2.0-0 (>= 2.10.0), libpango-1.0-0 (>= 1.14.0),
         libpangocairo-1.0-0 (>= 1.14.0)
Suggests: evince-gtk
Description: GTK+ based simple text editor
 Leafpad is a simple GTK+ based text editor, the user interface is similar to Notepad. It aims to be lighter than GEdit and KWrite, and to be as
 useful as them.
Homepage: http://tarot.freeshell.org/leafpad/

So as can be seen in the long description, we have the short description as well as the long description.

The file that needs to be changed is the control file in the /debian directory which has the description.

I will put up a pull request in sometime but if somebody gets in before that let me not stop you. The other warnings also need to be fixed as well.

E: libcpuid11-dev: extended-description-is-empty

Hi all,
Ran lintian on libcpuid11-dev again and came up with the errors :-

[$] lintian libcpuid11-dev_0.21_amd64.deb                                                                                          
E: libcpuid11-dev: extended-description-is-empty
W: libcpuid11-dev: wrong-section-according-to-package-name libcpuid11-dev => libdevel

checked in /libcpuid/debian/control and saw that it indeed is empty.

~/games/libcpuid/debian [$] cat control
Source: libcpuid
Section: utils
Priority: optional
Maintainer: Zhang, Guodong <[email protected]>
Build-Depends: debhelper (>= 9), autotools-dev, libtool, automake, autoconf, python
Standards-Version: 3.9.5
Homepage: https://github.com/anrieff/libcpuid

Package: libcpuid11
Architecture: amd64 i386
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: small C library for x86/x86_64 CPU detection and feature extraction
 For details about the programming API, please see the docs
 on the project's site (http://libcpuid.sourceforge.net/)

Package: libcpuid11-dev
Architecture: amd64 i386
Description: develop files for libcpuid

The last line in libcpuid11-dev just gives the short description, need the long/extended description too.

Also if possible let libpuid11-dev have the Section:libdevel as all -dev packages have, for instance :-

[$] aptitude show iceweasel-dev                                                                            

Package: iceweasel-dev                   
State: not installed
Version: 31.6.0esr-1
Priority: optional
Section: libdevel
Maintainer: Maintainers of Mozilla-related packages <[email protected]>
Architecture: amd64
Uncompressed Size: 34.4 M
Depends: libc6 (>= 2.4), libstdc++6 (>= 4.1.1), python-ply, libnss3-dev, libnspr4-dev, iceweasel (= 31.6.0esr-1)
Conflicts: firefox-dev, xulrunner-dev
Description: Development files for the Gecko engine library
 This library provides an  API for XUL applications and Gecko embedders. The Gecko engine is the core of the mozilla.org applications such as Firefox, Thunderbird or SeaMonkey. 

 Gecko features include XPCOM, networking, DOM editing and transaction support, XBL, XUL, SVG, XSLT, XML Extras (XMLHttpRequest and DOMParser),Web Services (SOAP), accessibility support, IPC services, gtkmozembed, etc. 

 Install this package if you wish to embed the Gecko engine in your program or want to develop XPCOM components. 

 This package also provides the Xulrunner Software Development Kit in the same form as the one you may find on mozilla.org in /usr/lib/xulrunner/sdk.
Homepage: http://wiki.mozilla.org/XUL:Lib_XUL

cpuid_get_total_cpus returns wrong CPU count

Hello!
I am using libcpuid for a cross platform project. Everything works great except the "int cpuid_get_total_cpus ( void )" function it returns 8 instead of 1 on Windows 10 64bit (It has one physical CPU with 8 virtual cores). From the documentation and function name one would expect to get the count of physical CPUs but it seems to be returning all available virtual cores. Is this a BUG or have I misunderstood the documentation? If the library does not have a way to get physical CPU count please let me know, so I will fork and implement this feature (Windows and Linux 64bit), or if it is a BUG will fix it.
Thanks again for the great project.

Advanced Power Management Features

Is it possible to add detection

Cpuid from http://www.etallen.com/cpuid.html
Show this:
Advanced Power Management Features (0x80000007/edx):
temperature sensing diode = false
frequency ID (FID) control = false
voltage ID (VID) control = false
thermal trip (TTP) = false
thermal monitor (TM) = false
software thermal control (STC) = false
100 MHz multiplier control = false
hardware P-State control = false
TscInvariant = false

OS X compilation error

In git revision 7c7a0fe:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -g -Wall -Wmissing-declarations -Wmissing-prototypes -g -O2 -MT rdmsr.lo -MD -MP -MF .deps/rdmsr.Tpo -c rdmsr.c  -fno-common -DPIC -o .libs/rdmsr.o
rdmsr.c:442:5: error: conflicting types for 'cpu_rdmsr'
int cpu_rdmsr(struct msr_driver_t* driver, int msr_index, uint64_t* result)
    ^
./libcpuid.h:871:5: note: previous declaration is here
int cpu_rdmsr(struct msr_driver_t* handle, uint32_t msr_index, uint64_t* result);
    ^
1 error generated.

Have You a plan for creating of the new release of libcpuid?

New Feature Request - Detect Virtual Machine

I would like to propose new and very natural feature to have in CPUID library - to provide information if software is running under virtual machine.

CPUID is one of the main approach to do that - we just need to check hypervisor present bit (31st bit of ECX):
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458

I would love to have special field in "cpu_id_t" or any other means to have access to this information.

How to build and install doc?

Because libcpuid is a library, doc can be helpful for developers. ;)
I have tried to run doxygen Doxyfile, and I have a libcpuid/docs directory with HTML, Tex and uncompressed man pages now.
But how to install them?

Targets like install-man, html-recursive or install-html-recursive do noting.

clang LTO error

Hello!

<inline asm>:10:1: error: invalid symbol redefinition
.bsLoop:
^
LLVM ERROR: Error parsing inline asm

To fix need use local labels in inline asm (http://stackoverflow.com/questions/14506151/invalid-symbol-redefinition-in-inline-asm-on-llvm):

@@ -214,7 +214,8 @@ void busy_sse_loop(int cycles)
                "       xorps   %%xmm6, %%xmm6\n"
                "       xorps   %%xmm7, %%xmm7\n"
                XALIGN
-               ".bsLoop:\n"
+               "1:\n"
+               /*".bsLoop:\n"*/
                // 0:
                "       addps   %%xmm1, %%xmm0\n"
                "       addps   %%xmm2, %%xmm1\n"
@@ -505,7 +506,8 @@ void busy_sse_loop(int cycles)
                "       addps   %%xmm0, %%xmm7\n"

                "       dec     %%eax\n"
-               "       jnz     .bsLoop\n"
+               /*"     jnz     .bsLoop\n"*/
+               "       jnz     1b\n"
                ::"a"(cycles)
        );
 #else

No releases?

I'm maintaining a Gentoo overlay with libcpuid package (git version). I don't find any release, and this forces me to mask the package. Why no releases?

Propositional cleanups for cpu_msrinfo()

By my fault, the cpu_msrinfo() source code is unpleasant to read. Before doing something, I want your opinion.

  • The first idea is standardization: INFO_MPERF and INFO_APERF use a sub-function; why not do sub-functions for others? E.g. move INFO_CUR_MULTIPLIER in a static function like static double get_info_cur_multiplier().
  • The second idea is about model specific code, actually only CPU vendor is checked, but it's unclear when registers are not the same for all models (e.g. in INFO_CUR_MULTIPLIER, there is both code for newer Intel CPUs and older like Pentium III). Maybe use internal codes used in detection, or something like that?
  • The third idea is to try to improve existing source code in cpu_msrinfo().

I close this issue, due to it is not an issue.

JSON

He needs to implement Libcpuid in my program, called I-Nex. I'm asking you to enter a JSON format for the command cpuid_tool --report --all
It is very important for me
For example:

{
"VENDOR_STR": "AuthenticAMD",
"CPU_CODENAME": "Turion X2 (Tyler/256K)",
"BRAND_STR": "AMD Athlon(tm) 64 X2 Dual-Core Processor TK-53",
"NUM_CORES": "2",
"NUM_LOGICAL_CPUS": "2",
"TOTAL_LOGICAL_CPUS": "2",
"FAMILY": "15",
"MODEL": "8",
"STEPPING": "1",
"EXT_FAMILY": "15",
"EXT_MODEL": "104",
"CPU_CLOCK": "800 MHz",
"CPU_CLOCK_BY_OS": "800 MHz",
"CPU_CLOCK_BY_IC": "1595 MHz",
"CPU_CLOCK_MEASURE": "1700 MHz",
"MARK_TSC": "5005",
"MARK_SYS_CLOCK": "1",
"Flags": {
"1": {
"VALUE": 1 ,
"NAME": "CPU_FEATURE_MMXEXT",
"FEATURE": "mmxext",
"WEBSITE": "http://en.wikipedia.org/wiki/MMX_(instruction_set)",
"HAVEWEBSITE": 1 ,
"DESC": "AMD MMX-extended instructions supported"
},
"2": {
"VALUE": 1 ,
"NAME": "CPU_FEATURE_SSE",
"FEATURE": "sse",
"WEBSITE": "http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions",
"HAVEWEBSITE": 1 ,
"DESC": "Streaming-SIMD Extensions (SSE) supported"
}
},
"L1_DATA_CACHE": "64 KB",
"L1_INSTRUCTION_CACHE": "64 KB",
"L2_CACHE": "256 KB",
"L3_CACHE": "Not found",
"L1_ASSOC": "2-way",
"L2_ASSOC": "16-way",
"L3_ASSOC": "Not found",
"L1_CACHELINE": "64 bytes",
"L2_CACHELINE": "64 bytes",
"L3_CACHELINE": "Not found",
"SSE_SIZE": "64 bits (non-authoritative)"
}

I'd like to see in libcpuid

Is it possible to add one of these options to libcpuid?

Show:
TDP, PPS, Die size, package, turboclock, voltage, part, Socket, transistors, Tcasemax, Multiplier, memory support?

Idea: Link to users of libcpuid (project or using code directly)

Hi!

So far there are two users of libcpuid that I am aware of:

Maybe it would be worth the effort to make a list of projects using libcpuid somewhere (unless there already is such a list, while I didn't find any).
For an example of what a rather detailed version could look like please check http://uriparser.sourceforge.net/#users .

Benefits could be both demonstrating existing adoption as well as pointing to real code using libcpuid in the wild for new users to learn from.
I won't be offended if you close the ticket as wontfix though, just an idea.

Best, S

warnings while running auto-reconf --install.

Hi all,
Got couple of warnings while trying out auto-reconf --install :-

~/games/libcpuid$ autoreconf --install
configure.ac:32: installing './compile'
configure.ac:34: installing './config.guess'
configure.ac:34: installing './config.sub'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
cpuid_tool/Makefile.am: installing './depcomp'
/usr/share/automake-1.14/am/ltlibrary.am: warning: 'libcpuid.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.14/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
libcpuid/Makefile.am:2:   while processing Libtool library 'libcpuid.la'

It's the last three lines that have me slightly worried. Please fix them if possible.

L4 cache

I wonder if there's a way get this info. I've seen this info in txt form in some cpu-z reports. Core i7 processors.

In the wiki there are some hints:
"Intel Haswell CPUs with integrated Intel Iris Pro Graphics have 128 MB of eDRAM acting essentially as an L4 cache."

It might a good idea to add 2 new members to the cpu_id_t struct:
l4_cache
l4_assoc

This info is also easy to determine in modern cpus that use model numbers (brand_str)

/debian sub-directory and its brethen needs to be updated.

Hi all,

I did a clean clone -

 [~/games] - [10044]
└─[$] git clone https://github.com/anrieff/libcpuid.git  

Cloning into 'libcpuid'...
remote: Counting objects: 1494, done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 1494 (delta 10), reused 0 (delta 0), pack-reused 1470
Receiving objects: 100% (1494/1494), 433.14 KiB | 122.00 KiB/s, done.
Resolving deltas: 100% (1082/1082), done.
Checking connectivity... done.

Then went into the directory to check if it's synced to the latest git message

[~/games/libcpuid] - [10063]
└─[$] git log | less     

commit c31b5c0ae84264082bff6b351b52ab7cc2f025e3
Author: Veselin Georgiev <[email protected]>
Date:   Fri Jun 3 04:35:01 2016 +0300

    Add up to 8 entries for CPUID leaf 04; push version to 0.3.0.

    This is a backwards-incompatible binary change, which increases
    sizeof(cpu_raw_data_t). Specifically, the cpu_raw_data_t::intel_fn4
    array is increased from 4 to 8 elements, because on recent Hasells
    (Crystalwell) there is a Level 4 cache, which should be encoded in
    CPUID eax=4 ecx=4. However, we were only storing levels for eax=4
    for ecx <= 3. Thus the raw data didn't have the relevant info.

    There will be further changes to this, specifically to store
    and print the level 4 cache in cpuid_tool.

The above confirmed that I have the latest master.

Then compiled it

[~/games/libcpuid] - [10048]
└─[$] fakeroot debian/rules binary   

dh binary  --with autotools-dev
   dh_testdir
   dh_update_autotools_config
   dh_autotools-dev_updateconfig
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/home/shirish/games/libcpuid'
libtoolize
libtoolize: putting auxiliary files in '.'.
libtoolize: linking file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: linking file 'm4/libtool.m4'
libtoolize: linking file 'm4/ltoptions.m4'
libtoolize: linking file 'm4/ltsugar.m4'
libtoolize: linking file 'm4/ltversion.m4'
libtoolize: linking file 'm4/lt~obsolete.m4'
autoreconf --install
configure.ac:35: installing './ar-lib'
configure.ac:34: installing './compile'
configure.ac:37: installing './config.guess'
configure.ac:37: installing './config.sub'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
cpuid_tool/Makefile.am: installing './depcomp'
dh_auto_configure
    ./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --libexecdir=\${prefix}/lib/x86_64-linux-gnu --disable-maintainer-mode --disable-dependency-tracking
configure: WARNING: unrecognized options: --disable-maintainer-mode
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for ar... ar
checking the archiver (ar) interface... ar
checking for an ANSI C-conforming const... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for stdint.h... (cached) yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libcpuid.pc
config.status: creating libcpuid/Makefile
config.status: creating cpuid_tool/Makefile
config.status: creating tests/Makefile
config.status: creating libcpuid/Doxyfile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
configure: WARNING: unrecognized options: --disable-maintainer-mode
make[1]: Leaving directory '/home/shirish/games/libcpuid'
   dh_auto_build
    make -j1
make[1]: Entering directory '/home/shirish/games/libcpuid'
make  all-recursive
make[2]: Entering directory '/home/shirish/games/libcpuid'
Making all in libcpuid
make[3]: Entering directory '/home/shirish/games/libcpuid/libcpuid'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o cpuid_main.lo cpuid_main.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c cpuid_main.c  -fPIC -DPIC -o .libs/cpuid_main.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c cpuid_main.c -o cpuid_main.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o recog_intel.lo recog_intel.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c recog_intel.c  -fPIC -DPIC -o .libs/recog_intel.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c recog_intel.c -o recog_intel.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o recog_amd.lo recog_amd.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c recog_amd.c  -fPIC -DPIC -o .libs/recog_amd.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c recog_amd.c -o recog_amd.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o rdtsc.lo rdtsc.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c rdtsc.c  -fPIC -DPIC -o .libs/rdtsc.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c rdtsc.c -o rdtsc.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o asm-bits.lo asm-bits.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c asm-bits.c  -fPIC -DPIC -o .libs/asm-bits.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c asm-bits.c -o asm-bits.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o libcpuid_util.lo libcpuid_util.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c libcpuid_util.c  -fPIC -DPIC -o .libs/libcpuid_util.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c libcpuid_util.c -o libcpuid_util.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o rdmsr.lo rdmsr.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c rdmsr.c  -fPIC -DPIC -o .libs/rdmsr.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c rdmsr.c -o rdmsr.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I..  -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o msrdriver.lo msrdriver.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c msrdriver.c  -fPIC -DPIC -o .libs/msrdriver.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c msrdriver.c -o msrdriver.o >/dev/null 2>&1
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -export-symbols ./libcpuid.sym -no-undefined -version-info 13:0:2 -Wl,-z,relro -o libcpuid.la -rpath /usr/lib/x86_64-linux-gnu cpuid_main.lo recog_intel.lo recog_amd.lo rdtsc.lo asm-bits.lo libcpuid_util.lo rdmsr.lo msrdriver.lo  
libtool: link: echo "{ global:" > .libs/libcpuid.ver
libtool: link:  cat ./libcpuid.sym | sed -e "s/\(.*\)/\1;/" >> .libs/libcpuid.ver
libtool: link:  echo "local: *; };" >> .libs/libcpuid.ver
libtool: link:  gcc -shared  -fPIC -DPIC  .libs/cpuid_main.o .libs/recog_intel.o .libs/recog_amd.o .libs/rdtsc.o .libs/asm-bits.o .libs/libcpuid_util.o .libs/rdmsr.o .libs/msrdriver.o    -g -O2 -fstack-protector-strong -Wl,-z -Wl,relro   -Wl,-soname -Wl,libcpuid.so.11 -Wl,-version-script -Wl,.libs/libcpuid.ver -o .libs/libcpuid.so.11.2.0
libtool: link: (cd ".libs" && rm -f "libcpuid.so.11" && ln -s "libcpuid.so.11.2.0" "libcpuid.so.11")
libtool: link: (cd ".libs" && rm -f "libcpuid.so" && ln -s "libcpuid.so.11.2.0" "libcpuid.so")
libtool: link: ar cru .libs/libcpuid.a  cpuid_main.o recog_intel.o recog_amd.o rdtsc.o asm-bits.o libcpuid_util.o rdmsr.o msrdriver.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libcpuid.a
libtool: link: ( cd ".libs" && rm -f "libcpuid.la" && ln -s "../libcpuid.la" "libcpuid.la" )
make[3]: Leaving directory '/home/shirish/games/libcpuid/libcpuid'
Making all in cpuid_tool
make[3]: Entering directory '/home/shirish/games/libcpuid/cpuid_tool'
gcc -DHAVE_CONFIG_H -I. -I..   -I../libcpuid -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -c -o cpuid_tool.o cpuid_tool.c
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -g -Wall -Wl,-z,relro -o cpuid_tool cpuid_tool.o ../libcpuid/libcpuid.la 
libtool: link: gcc -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z -Wl,relro -g -Wall -Wl,-z -Wl,relro -o .libs/cpuid_tool cpuid_tool.o  ../libcpuid/.libs/libcpuid.so
make[3]: Leaving directory '/home/shirish/games/libcpuid/cpuid_tool'
Making all in tests
make[3]: Entering directory '/home/shirish/games/libcpuid/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/shirish/games/libcpuid/tests'
make[3]: Entering directory '/home/shirish/games/libcpuid'
make[3]: Leaving directory '/home/shirish/games/libcpuid'
make[2]: Leaving directory '/home/shirish/games/libcpuid'
make[1]: Leaving directory '/home/shirish/games/libcpuid'
   dh_auto_test
    make -j1 test VERBOSE=1
make[1]: Entering directory '/home/shirish/games/libcpuid'
LD_PRELOAD=./libcpuid/.libs/libcpuid.so ./tests/run_tests.py ./cpuid_tool/.libs/cpuid_tool --show-test-fast-warning ./tests
Testing...
Test [./tests/amd/bulldozer/vishera-x4]: OK
Test [./tests/amd/bulldozer/bulldozer-x4]: OK
Test [./tests/amd/k8/turion-64-lancaster]: OK
Test [./tests/amd/k8/sempron-64-sparta]: OK
Test [./tests/amd/k8/opteron-denmark]: OK
Test [./tests/amd/k8/athlon-64-venice]: OK
Test [./tests/amd/k8/mobile-sempron-64-keene]: OK
Test [./tests/amd/k8/mobile-sempron-64-sonora]: OK
Test [./tests/amd/k8/athlon-64-brisbane]: OK
Test [./tests/amd/bobcat/brazos-zacate]: OK
Test [./tests/amd/k7/sempron-barton]: OK
Test [./tests/amd/k7/athlon-thoroughbred]: OK
Test [./tests/amd/k7/duron-applebred]: OK
Test [./tests/amd/k10/athlon-2-champlain-mobile]: OK
Test [./tests/amd/k10/athlon-2-propus]: OK
Test [./tests/amd/k10/athlon-2-kuma]: OK
Test [./tests/amd/k10/sempron-sargas]: OK
Test [./tests/amd/k10/phenom-2-deneb]: OK
Test [./tests/amd/k10/phenom-2-thuban]: OK
Test [./tests/amd/k10/athlon-2-propus-3]: OK
Test [./tests/amd/k10/phenom-agena]: OK
Test [./tests/amd/k10/magny-cours]: OK
Test [./tests/amd/k10/athlon-2-regor]: OK
Test [./tests/amd/k10/phenom-2-heka]: OK
Test [./tests/amd/k10/athlon-2-propus-2]: OK
Test [./tests/intel/p2/pentium-dixon]: OK
Test [./tests/intel/p2/pentium-coppermine]: OK
Test [./tests/intel/p2/petium-m-dothan]: OK
Test [./tests/intel/skylake/skylake-i5]: OK
Test [./tests/intel/atom/atom-diamondville-dualcore]: OK
Test [./tests/intel/atom/atom-diamondville]: OK
Test [./tests/intel/atom/atom-pineview-2]: OK
Test [./tests/intel/atom/atom-pineview]: OK
Test [./tests/intel/sandy/sandy-bridge-i7]: OK
Test [./tests/intel/sandy/xeon-sandy]: OK
Test [./tests/intel/sandy/celeron-sandy]: OK
Test [./tests/intel/sandy/sandy-bridge-e-i7]: OK
Test [./tests/intel/sandy/ivy-bridge-i5]: OK
Test [./tests/intel/core2/penryn-mobile]: OK
Test [./tests/intel/core2/yonah-3]: OK
Test [./tests/intel/core2/conroe-1m]: OK
Test [./tests/intel/core2/merom]: OK
Test [./tests/intel/core2/penryn-3m]: OK
Test [./tests/intel/core2/yonah]: OK
Test [./tests/intel/core2/xeon-wolfdale]: OK
Test [./tests/intel/core2/kentsfield]: OK
Test [./tests/intel/core2/yorkfield-2m]: OK
Test [./tests/intel/core2/conroe]: OK
Test [./tests/intel/core2/xeon-clovertown]: OK
Test [./tests/intel/core2/xeon-harpertown]: OK
Test [./tests/intel/core2/wolfdale]: OK
Test [./tests/intel/core2/yorkfield]: OK
Test [./tests/intel/core2/yonah-2]: OK
Test [./tests/intel/core2/allendale]: OK
Test [./tests/intel/core2/merom-2m]: OK
Test [./tests/intel/core2/conroe-l-celeron]: OK
Test [./tests/intel/core2/celeron-wolfdale]: OK
Test [./tests/intel/core2/conroe-l]: OK
Test [./tests/intel/netburst/xeon-prestonia]: OK
Test [./tests/intel/netburst/mobile-p4-northwood]: OK
Test [./tests/intel/netburst/celeron-prescott]: OK
Test [./tests/intel/netburst/celeron-northwood.test]: OK
Test [./tests/intel/netburst/p4-prescott-ht]: OK
Test [./tests/intel/netburst/p4-northwood]: OK
Test [./tests/intel/netburst/celeron-willamette]: OK
Test [./tests/intel/nehalem/lynnfield-i7]: OK
Test [./tests/intel/nehalem/bloomfield]: OK
Test [./tests/intel/nehalem/arrandale-i7]: OK
Test [./tests/intel/nehalem/xeon-gulftown]: OK
Test [./tests/intel/nehalem/arrandale-mobile]: OK
Test [./tests/intel/nehalem/xeon-bloomfield]: OK
Test [./tests/intel/nehalem/xeon-gainestown]: OK
Test [./tests/intel/nehalem/gulftown-i7]: OK
Test [./tests/intel/nehalem/arrandale-i5]: OK
Test [./tests/intel/haswell/haswell-i7]: OK
Test [./tests/intel/haswell/haswell-i3]: OK
Test [./tests/intel/haswell/haswell-i5]: OK
All successfull!
make[1]: Leaving directory '/home/shirish/games/libcpuid'
   dh_testroot
   dh_prep
   dh_auto_install
    make -j1 install DESTDIR=/home/shirish/games/libcpuid/debian/tmp AM_UPDATE_INFO_DIR=no
make[1]: Entering directory '/home/shirish/games/libcpuid'
Making install in libcpuid
make[2]: Entering directory '/home/shirish/games/libcpuid/libcpuid'
make[3]: Entering directory '/home/shirish/games/libcpuid/libcpuid'
 /bin/mkdir -p '/home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libcpuid.la '/home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu'
libtool: install: /usr/bin/install -c .libs/libcpuid.so.11.2.0 /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/libcpuid.so.11.2.0
libtool: install: (cd /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu && { ln -s -f libcpuid.so.11.2.0 libcpuid.so.11 || { rm -f libcpuid.so.11 && ln -s libcpuid.so.11.2.0 libcpuid.so.11; }; })
libtool: install: (cd /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu && { ln -s -f libcpuid.so.11.2.0 libcpuid.so || { rm -f libcpuid.so && ln -s libcpuid.so.11.2.0 libcpuid.so; }; })
libtool: install: /usr/bin/install -c .libs/libcpuid.lai /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/libcpuid.la
libtool: install: /usr/bin/install -c .libs/libcpuid.a /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/libcpuid.a
libtool: install: chmod 644 /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/libcpuid.a
libtool: install: ranlib /home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/libcpuid.a
libtool: warning: remember to run 'libtool --finish /usr/lib/x86_64-linux-gnu'
 /bin/mkdir -p '/home/shirish/games/libcpuid/debian/tmp/usr/include/libcpuid'
 /usr/bin/install -c -m 644 libcpuid.h libcpuid_constants.h libcpuid_types.h '/home/shirish/games/libcpuid/debian/tmp/usr/include/libcpuid'
make[3]: Leaving directory '/home/shirish/games/libcpuid/libcpuid'
make[2]: Leaving directory '/home/shirish/games/libcpuid/libcpuid'
Making install in cpuid_tool
make[2]: Entering directory '/home/shirish/games/libcpuid/cpuid_tool'
make[3]: Entering directory '/home/shirish/games/libcpuid/cpuid_tool'
 /bin/mkdir -p '/home/shirish/games/libcpuid/debian/tmp/usr/bin'
  /bin/bash ../libtool   --mode=install /usr/bin/install -c cpuid_tool '/home/shirish/games/libcpuid/debian/tmp/usr/bin'
libtool: install: /usr/bin/install -c .libs/cpuid_tool /home/shirish/games/libcpuid/debian/tmp/usr/bin/cpuid_tool
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/home/shirish/games/libcpuid/cpuid_tool'
make[2]: Leaving directory '/home/shirish/games/libcpuid/cpuid_tool'
Making install in tests
make[2]: Entering directory '/home/shirish/games/libcpuid/tests'
make[3]: Entering directory '/home/shirish/games/libcpuid/tests'
make[3]: Nothing to be done for 'install-exec-am'.
make[3]: Nothing to be done for 'install-data-am'.
make[3]: Leaving directory '/home/shirish/games/libcpuid/tests'
make[2]: Leaving directory '/home/shirish/games/libcpuid/tests'
make[2]: Entering directory '/home/shirish/games/libcpuid'
make[3]: Entering directory '/home/shirish/games/libcpuid'
make[3]: Nothing to be done for 'install-exec-am'.
 /bin/mkdir -p '/home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig'
 /usr/bin/install -c -m 644 libcpuid.pc '/home/shirish/games/libcpuid/debian/tmp/usr/lib/x86_64-linux-gnu/pkgconfig'
make[3]: Leaving directory '/home/shirish/games/libcpuid'
make[2]: Leaving directory '/home/shirish/games/libcpuid'
make[1]: Leaving directory '/home/shirish/games/libcpuid'
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_perl
   dh_link
   dh_strip_nondeterminism
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
   dh_installdeb
   dh_gencontrol
   dh_md5sums
   dh_builddeb
dpkg-deb: building package 'libcpuid11-dbgsym' in '../libcpuid11-dbgsym_0.21_amd64.deb'.
dpkg-deb: building package 'libcpuid11' in '../libcpuid11_0.21_amd64.deb'.
dpkg-deb: building package 'libcpuid11-dev' in '../libcpuid11-dev_0.21_amd64.deb'.


Here itself I felt something was wrong as the compilation resulted in libcpuid11_0.21_amd64.deb, had thought that the version numbering would change - comments please.

Then installed it -

[$] sudo dpkg -i libcpuid11_0.21_amd64.deb   

[sudo] password for shirish: 
D000001: ensure_diversions: new, (re)loading
D000001: ensure_statoverrides: new, (re)loading
(Reading database ... 923407 files and directories currently installed.)
Preparing to unpack libcpuid11_0.21_amd64.deb ...
D000001: process_archive oldversionstatus=installed
Unpacking libcpuid11 (0.21) over (0.21) ...
D000001: ensure_diversions: same, skipping
D000001: process_archive updating info directory
D000001: generating infodb hashfile
D000001: process queue pkg libcpuid11:amd64 queue.len 0 progress 1, try 1
Setting up libcpuid11 (0.21) ...
D000001: deferred_configure updating conffiles
Processing triggers for libc-bin (2.22-9) ...
D000001: ensure_diversions: same, skipping
D000001: cmpversions a='0:2016.03.30' b='0:2016.05.24' r=-2
D000001: cmpversions a='0:1.18.7' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.7' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.7' b='0:1.16' r=2

I have put aptitude in verbose mode hence you are seeing the above messages.

I then went to /usr/share/doc/libcpuid11/ to see if changelog.gz had the new entries -

$[/usr/share/doc/libcpuid11] - [10069]
└─[$] zcat changelog.gz | less 

libcpuid (0.21) unstable; urgency=low

  * Initial release add debian directory for libcpuid.

 -- Zhang, Guodong <[email protected]>  Fri, 10 Apr 2015 14:59:27 +0800
(END)

And guess what, seems that the debian-directory hasn't been updated since then :(

Windows Build error

Hello,

Trying to build libcpuid for Windows using Mingw-w64, gcc 5.2.0 but I get some errors :

../libcpuid/.libs/libcpuid.a(rmdsr.o): In function 'extract_driver':
l:\libcpuid-0.2.2\libcpuid/rdmsr.c:212: undefined reference to 'cc_x64driver_code_size' l:\libcpuid-0.2.2\libcpuid/rdmsr.c:212: undefined reference to 'cc_x64driver_code' l:\libcpuid-0.2.2\libcpuid/rdmsr.c:214: undefined reference to 'cc_x86driver_code_size' l:\libcpuid-0.2.2\libcpuid/rdmsr.c:214: undefined reference to 'cc_x86driver_code'

I've noticed that these errors are due to non declared extern variables.
I've also seen that they're declared in msrdriver.c, which is never compiled, unless I've become blind.

Any ideas ?

Thanks.

Manpage for cpuid_tool

Hello, please create manual page for cpuid_tool

.TH cpuid\_tool "1"
.SH NAME
\fBcpuid\_tool\fP \- Print CPU Info from CPUID Instruction
.SH SYNOPSIS
usage: \- cpuid\_tool

let libcpuid 0.4.0 and brethen conflict with libcpuid 0.3.0 and its brethen .

While trying to install -

┌─[shirish@debian] - [~/games] - [10330]
└─[$] sudo dpkg -i *.deb                                                                                                        
D000001: ensure_diversions: new, (re)loading
D000001: ensure_statoverrides: new, (re)loading
(Reading database ... 1121056 files and directories currently installed.)
Preparing to unpack cpuidtool_0.4.0_amd64.deb ...
D000001: process_archive oldversionstatus=installed
Unpacking cpuidtool (0.4.0) over (0.4.0) ...
D000001: process_archive updating info directory
D000001: generating infodb hashfile
Preparing to unpack cpuidtool-dbgsym_0.4.0_amd64.deb ...
D000001: process_archive oldversionstatus=installed
Unpacking cpuidtool-dbgsym (0.4.0) over (0.4.0) ...
D000001: process_archive updating info directory
D000001: generating infodb hashfile
Selecting previously unselected package libcpuid14.
Preparing to unpack libcpuid14_0.4.0_amd64.deb ...
D000001: process_archive oldversionstatus=not installed
Unpacking libcpuid14 (0.4.0) ...
dpkg: error processing archive libcpuid14_0.4.0_amd64.deb (--install):
 trying to overwrite '/usr/lib/x86_64-linux-gnu/libcpuid.so.14.0.0', which is also in package libcpuid13 0.4.0
Selecting previously unselected package libcpuid14-dbgsym.
Preparing to unpack libcpuid14-dbgsym_0.4.0_amd64.deb ...
D000001: process_archive oldversionstatus=not installed
Unpacking libcpuid14-dbgsym (0.4.0) ...
dpkg: error processing archive libcpuid14-dbgsym_0.4.0_amd64.deb (--install):
 trying to overwrite '/usr/lib/debug/.build-id/83/795bb14ad31a406cb17ebebce6eaf91970d3f3.debug', which is also in package libcpuid13-dbgsym 0.4.0
Selecting previously unselected package libcpuid14-dev.
Preparing to unpack libcpuid14-dev_0.4.0_amd64.deb ...
D000001: process_archive oldversionstatus=not installed
Unpacking libcpuid14-dev (0.4.0) ...
dpkg: error processing archive libcpuid14-dev_0.4.0_amd64.deb (--install):
 trying to overwrite '/usr/include/libcpuid/libcpuid.h', which is also in package libcpuid13-dev 0.4.0
D000001: process queue pkg cpuidtool:amd64 queue.len 1 progress 1, try 1
dpkg: dependency problems prevent configuration of cpuidtool:
 cpuidtool depends on libcpuid14; however:
  Package libcpuid14 is not installed.

dpkg: error processing package cpuidtool (--install):
 dependency problems - leaving unconfigured
D000001: process queue pkg cpuidtool-dbgsym:amd64 queue.len 0 progress 1, try 1
dpkg: dependency problems prevent configuration of cpuidtool-dbgsym:
 cpuidtool-dbgsym depends on cpuidtool (= 0.4.0); however:
  Package cpuidtool is not configured yet.

dpkg: error processing package cpuidtool-dbgsym (--install):
 dependency problems - leaving unconfigured
Processing triggers for man-db (2.7.5-1) ...
D000001: ensure_diversions: same, skipping
Processing triggers for libc-bin (2.24-3) ...
D000001: ensure_diversions: same, skipping
D000001: cmpversions a='0:2016.03.30' b='0:2016.05.24' r=-2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
D000001: cmpversions a='0:1.18.10' b='0:1.16' r=2
Errors were encountered while processing:
 libcpuid14_0.4.0_amd64.deb
 libcpuid14-dbgsym_0.4.0_amd64.deb
 libcpuid14-dev_0.4.0_amd64.deb
 cpuidtool
 cpuidtool-dbgsym

Need to have conflicts or Replaces like -

└─[$] aptitude show linux-image-4.7.0-1-amd64                                                                                     
Package: linux-image-4.7.0-1-amd64       
Version: 4.7.5-1
State: installed
Automatically installed: no
Priority: optional
Section: kernel
Maintainer: Debian Kernel Team <[email protected]>
Architecture: amd64
Uncompressed Size: 181 M
Depends: kmod, linux-base (>= 4.3~), initramfs-tools (>= 0.110~) | linux-initramfs-tool
Recommends: firmware-linux-free, irqbalance
Suggests: linux-doc-4.7, debian-kernel-handbook, grub-pc | grub-efi-amd64 | extlinux
Conflicts: linux-image-4.7.0-1-amd64-unsigned
Breaks: initramfs-tools (< 0.110~), xserver-xorg-input-vmmouse (< 1:13.0.99)
Replaces: linux-image-4.7.0-1-amd64-unsigned
Provided by: linux-image-4.7.0-1-amd64-unsigned (4.7.5-1)
Description: Linux 4.7 for 64-bit PCs (signed)
 The Linux kernel 4.7 and modules for use on PCs with AMD64, Intel 64 or VIA Nano processors. 

 This kernel also runs on a Xen hypervisor.  It supports both privileged (dom0) and unprivileged (domU) operation. 

 The kernel image and modules are signed for use with Secure Boot.
Homepage: https://www.kernel.org/

See the conflicts line -

Conflicts: linux-image-4.7.0-1-amd64-unsigned OR Replaces like -

┌─[shirish@debian] - [~] - [10254]
└─[$] aptitude show mate-panel                                                                                                      
Package: mate-panel                      
Version: 1.14.2-1
State: installed
Automatically installed: no
Priority: optional
Section: x11
Maintainer: MATE Packaging Team <[email protected]>
Architecture: amd64
Uncompressed Size: 1,605 k
Depends: libmate-panel-applet-4-1 (= 1.14.2-1), mate-desktop, mate-menus, mate-panel-common (= 1.14.2-1), mate-polkit, menu-xdg, dconf-gsettings-backend | gsettings-backend, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.14), libcairo-gobject2 (>= 1.10.0), libcairo2 (>=1.4.10), libcanberra-gtk3-0 (>= 0.25), libcanberra0 (>= 0.2), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libdconf1 (>= 0.14.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.19.12), libice6 (>= 1:1.0.0), libmate-desktop-2-17 (>= 1.14.0), libmate-menu2 (>= 1.6.0), libmateweather1 (>= 1.6.2), libpango-1.0-0 (>= 1.18.0), libpangocairo-1.0-0 (>= 1.14.0), librsvg2-2 (>= 2.14.4), libsm6, libstartup-notification0 (>= 0.2), libwnck-3-0 (>= 3.4.7), libx11-6, libxau6, libxrandr2 (>= 2:1.2.99.3)
Breaks: mate-panel-common (< 1.1.1-4)
Replaces: mate-panel-common (< 1.1.1-4)
Description: launcher and docking facility for MATE
 The MATE Panel is an essential part of the MATE Desktop, providing toolbar-like “panels” which can be attached to the sides of your desktop.
 They are used to launch applications and embed a number of other functions, such as quick launch icons, the clock, the notification area,
 volume controls and the battery charge indicator, and utilities ranging from weather forecast to system monitoring.
Homepage: http://www.mate-desktop.org/

Either of the approaches work. Right now, I have to manually remove all the before packages and then install the new ones.

Undefined behavior

libcpuid_util.c:41:16: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'

Just replace if (reg & (1 << matchtable[i].bit)) to if (reg & (1U << matchtable[i].bit)).

Show FSB, litography and even socket?

It looks like processors from the same family and model/brand share some striking some similarities.

cpu-world shows that a particular brand/model share FSB, litography and in many cases the same socket.

I'm collecting cpu-z screenshots and all screenshots from Core i3 1st gen have the same socket.

Litography (technology) is 100% accurate
FSB might be 90-100% accurate
socket might be 60-70% accurate

Of course at least the socket can be taken as a reference, not a fact

I can provide input for these fields in case there is interest...

License?

Any chance you can stick a license on this code?

Build failes with MSVC

MSVC 2010 compiler gives following error messages (when we try to build libcpuid_vc10->libcpuid):

1>rdmsr.c(636): error C2143: syntax error : missing ';' before 'const'
1>rdmsr.c(636): error C2143: syntax error : missing ';' before 'type'
1>rdmsr.c(636): error C2065: 'divisor_t' : undeclared identifier
1>rdmsr.c(636): error C2059: syntax error : ']'
1>rdmsr.c(649): error C2065: 'divisor_t' : undeclared identifier
1>rdmsr.c(649): error C2109: subscript requires array or pointer type
1>rdmsr.c(651): error C2065: 'divisor_t' : undeclared identifier
1>rdmsr.c(651): error C2109: subscript requires array or pointer type
1>rdmsr.c(652): error C2065: 'divisor_t' : undeclared identifier
1>rdmsr.c(652): error C2109: subscript requires array or pointer type
1>rdmsr.c(655): error C2043: illegal break
1>rdmsr.c(656): error C2046: illegal case
1>rdmsr.c(666): error C2043: illegal break
1>rdmsr.c(667): error C2046: illegal case
1>rdmsr.c(673): error C2046: illegal case
1>rdmsr.c(680): error C2046: illegal case
1>rdmsr.c(685): error C2046: illegal case
1>rdmsr.c(693): error C2043: illegal break
1>rdmsr.c(694): error C2047: illegal default
1>rdmsr.c(696): error C2043: illegal break
1>rdmsr.c(699): error C2059: syntax error : 'return'
1>rdmsr.c(700): error C2059: syntax error : '}'
1>rdmsr.c(746): warning C4013: 'get_amd_last_pstate_addr' undefined; assuming extern returning int
1>rdmsr.c(899): warning C4244: 'function' : conversion from 'uint64_t' to 'uint32_t', possible loss of data
1> rdtsc.c
1> recog_amd.c
1>recog_amd.c(476): error C2143: syntax error : missing ';' before 'type'
1>recog_amd.c(477): error C2065: 'result' : undeclared identifier
1>recog_amd.c(477): error C2440: 'return' : cannot convert from 'int' to 'amd_code_and_bits_t'
1>recog_amd.c(520): error C2143: syntax error : missing ';' before 'type'
1>recog_amd.c(525): error C2065: 'model_code' : undeclared identifier
1> recog_intel.c
1>recog_intel.c(756): error C2275: 'intel_code_and_bits_t' : illegal use of this type as an expression
1> recog_intel.c(43) : see declaration of 'intel_code_and_bits_t'
1>recog_intel.c(756): error C2146: syntax error : missing ';' before identifier 'result'
1>recog_intel.c(756): error C2065: 'result' : undeclared identifier
1>recog_intel.c(756): error C2059: syntax error : '{'
1>recog_intel.c(757): error C2065: 'result' : undeclared identifier
1>recog_intel.c(757): error C2440: 'return' : cannot convert from 'int' to 'intel_code_and_bits_t'
1>recog_intel.c(911): warning C4244: 'function' : conversion from 'uint64_t' to 'int', possible loss of data
1>
1>Build FAILED.

MSR decoding on Vishera (FX-8320E)

@x0rg, please take a look at this.
Here's what the latest libcpuid dumps with cpuid_tool --rdmsr on that machine:

 MSR.mperf  : 6 MHz
 MSR.aperf  : 21 MHz
 min. multi.: 14.00
 cur. multi.: 45.00
 max. multi.: 40.00
 core volt. : 1.16 Volts
 bus clock  : 100.33 MHz

The raw data is

CPU is AuthenticAMD AMD FX-8320E Eight-Core Processor              , stock clock is 4515MHz.
msr[0xc0010061]=00 00 00 00 00 00 00 40 
msr[0xc0010063]=00 00 00 00 00 00 00 00 
msr[0xc0010064]=80 00 01 7d 00 00 16 18 
msr[0xc0010065]=80 00 01 72 00 00 2e 13 
msr[0xc0010066]=80 00 01 5c 00 00 40 1d 
msr[0xc0010067]=00 00 01 5c 00 00 40 1d 
msr[0xc0010068]=00 00 01 5c 00 00 3e 1d 
msr[0xc0010069]=00 00 01 5c 00 00 40 1d 
msr[0xc001006a]=80 00 01 26 00 00 70 4c 
msr[0xc001006b]=00 00 00 00 00 00 00 00

The CPU multiplier and bus clock are correct: it is indeed 45x100.33 MHz.
The actual CPU voltage is 1.36.

Wrong CPU multipliers on AMD APU

As reported in TheTumultuousUnicornOfDarkness/CPU-X#31, CPU multipliers are wrong with some AMD APUs.
The minimum and maximum multipliers are wrong, and the bus clock is wrong too.

Possible causes:

  • Wrong P-state read
  • Wrong formula for multiplier computation

What is needed to fix it:

  • More tests

There is a standalone source code on my Gist which can be used to help to debug. Build and run instructions are on the top of file.
I'm looking for testers.

cpuid_tool -help talks about libcpuid.so.11

I was trying -

┌─[shirish@debian] - [~/games] - [10344]
└─[$] cpuid_tool --help                                                                                                           
cpuid_tool: error while loading shared libraries: libcpuid.so.11: cannot open shared object file: No such file or directory

No idea why it is searching still for libcpuid.so.11 :(

There is no configure binary and get some statements while building it.

Hi there,
I was trying to install the updated library. README didn't give me anything and had to rely on http://www.delorie.com/gnu/docs/autoconf/autoconf_13.html to understand that I needed to run autconf to produce the configure binary.

~/games/libcpuid$ autoconf
configure.ac:4: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:32: error: possibly undefined macro: AM_PROG_LIBTOOL
configure.ac:39: error: possibly undefined macro: AM_CFLAGS
configure.ac:40: error: possibly undefined macro: AM_CXXFLAGS

I am running gcc 4.9.0 :-

$ gcc --version
gcc (Debian 4.9.0-6) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Trying to run configure gave me this :-

$ ./configure --prefix=/usr
./configure: line 1983: syntax error near unexpected token `-Wall'
./configure: line 1983: `AM_INIT_AUTOMAKE(-Wall dist-bzip2 dist-zip foreign)'

Line 1983 tells this :-

AM_INIT_AUTOMAKE(-Wall dist-bzip2 dist-zip foreign)

Misdiagnosis microarchitecture for i3-3220T

This is Ivy Bridge

`version=0.4.0
basic_cpuid[0]=0000000d 756e6547 6c65746e 49656e69
basic_cpuid[1]=000306a9 03100800 3d9ae3bf bfebfbff
basic_cpuid[2]=76035a01 00f0b2ff 00000000 00ca0000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=1c004121 01c0003f 0000003f 00000000
basic_cpuid[5]=00000040 00000040 00000003 00001120
basic_cpuid[6]=00000075 00000002 00000009 00000000
basic_cpuid[7]=00000000 00000281 00000000 00000000
basic_cpuid[8]=00000000 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=07300403 00000000 00000000 00000603
basic_cpuid[11]=00000001 00000002 00000100 00000003
basic_cpuid[12]=00000000 00000000 00000000 00000000
basic_cpuid[13]=00000007 00000340 00000340 00000000
basic_cpuid[14]=00000007 00000340 00000340 00000000
basic_cpuid[15]=00000007 00000340 00000340 00000000
basic_cpuid[16]=00000007 00000340 00000340 00000000
basic_cpuid[17]=00000007 00000340 00000340 00000000
basic_cpuid[18]=00000007 00000340 00000340 00000000
basic_cpuid[19]=00000007 00000340 00000340 00000000
basic_cpuid[20]=00000007 00000340 00000340 00000000
basic_cpuid[21]=00000007 00000340 00000340 00000000
basic_cpuid[22]=00000007 00000340 00000340 00000000
basic_cpuid[23]=00000007 00000340 00000340 00000000
basic_cpuid[24]=00000007 00000340 00000340 00000000
basic_cpuid[25]=00000007 00000340 00000340 00000000
basic_cpuid[26]=00000007 00000340 00000340 00000000
basic_cpuid[27]=00000007 00000340 00000340 00000000
basic_cpuid[28]=00000007 00000340 00000340 00000000
basic_cpuid[29]=00000007 00000340 00000340 00000000
basic_cpuid[30]=00000007 00000340 00000340 00000000
basic_cpuid[31]=00000007 00000340 00000340 00000000
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 28100800
ext_cpuid[2]=20202020 49202020 6c65746e 20295228
ext_cpuid[3]=65726f43 294d5428 2d336920 30323233
ext_cpuid[4]=50432054 20402055 30382e32 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 01006040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000100
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=00000007 00000340 00000340 00000000
ext_cpuid[10]=00000007 00000340 00000340 00000000
ext_cpuid[11]=00000007 00000340 00000340 00000000
ext_cpuid[12]=00000007 00000340 00000340 00000000
ext_cpuid[13]=00000007 00000340 00000340 00000000
ext_cpuid[14]=00000007 00000340 00000340 00000000
ext_cpuid[15]=00000007 00000340 00000340 00000000
ext_cpuid[16]=00000007 00000340 00000340 00000000
ext_cpuid[17]=00000007 00000340 00000340 00000000
ext_cpuid[18]=00000007 00000340 00000340 00000000
ext_cpuid[19]=00000007 00000340 00000340 00000000
ext_cpuid[20]=00000007 00000340 00000340 00000000
ext_cpuid[21]=00000007 00000340 00000340 00000000
ext_cpuid[22]=00000007 00000340 00000340 00000000
ext_cpuid[23]=00000007 00000340 00000340 00000000
ext_cpuid[24]=00000007 00000340 00000340 00000000
ext_cpuid[25]=00000007 00000340 00000340 00000000
ext_cpuid[26]=00000007 00000340 00000340 00000000
ext_cpuid[27]=00000007 00000340 00000340 00000000
ext_cpuid[28]=00000007 00000340 00000340 00000000
ext_cpuid[29]=00000007 00000340 00000340 00000000
ext_cpuid[30]=00000007 00000340 00000340 00000000
ext_cpuid[31]=00000007 00000340 00000340 00000000
intel_fn4[0]=1c004121 01c0003f 0000003f 00000000
intel_fn4[1]=1c004122 01c0003f 0000003f 00000000
intel_fn4[2]=1c004143 01c0003f 000001ff 00000000
intel_fn4[3]=1c03c163 02c0003f 00000fff 00000006
intel_fn4[4]=00000000 00000000 00000000 00000000
intel_fn4[5]=00000000 00000000 00000000 00000000
intel_fn4[6]=00000000 00000000 00000000 00000000
intel_fn4[7]=00000000 00000000 00000000 00000000
intel_fn11[0]=00000001 00000002 00000100 00000003
intel_fn11[1]=00000004 00000004 00000201 00000003
intel_fn11[2]=00000000 00000000 00000002 00000003
intel_fn11[3]=00000000 00000000 00000003 00000003
intel_fn12h[0]=00000007 00000340 00000340 00000000
intel_fn12h[1]=00000001 00000000 00000000 00000000
intel_fn12h[2]=00000100 00000240 00000000 00000000
intel_fn12h[3]=00000000 00000000 00000000 00000000
intel_fn14h[0]=00000007 00000340 00000340 00000000
intel_fn14h[1]=00000001 00000000 00000000 00000000
intel_fn14h[2]=00000100 00000240 00000000 00000000
intel_fn14h[3]=00000000 00000000 00000000 00000000
CPUID is present
CPU Info:

vendor_str : GenuineIntel' vendor id : 0 brand_str : Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz'
family : 6 (06h)
model : 10 (0Ah)
stepping : 9 (09h)
ext_family : 6 (06h)
ext_model : 58 (3Ah)
num_cores : 2
num_logical: 4
tot_logical: 4
L1 D cache : 32 KB
L1 I cache : 32 KB
L2 cache : 256 KB
L3 cache : 3072 KB
L4 cache : -1 KB
L1D assoc. : 8-way
L2 assoc. : 8-way
L3 assoc. : 12-way
L4 assoc. : -1-way
L1D line sz: 64 bytes
L2 line sz : 64 bytes
L3 line sz : 64 bytes
L4 line sz : -1 bytes
SSE units : 128 bits (non-authoritative)
code name : Sandy Bridge (Core i3)' features : fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni pclmul dts64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 syscall xd popcnt xsave osxsave avx rdtscp lm lahf_lm constant_tsc f16c

Add support for Atom (Pineview)

raw.txt:
version=0.2.0
build_date=Jun 18 2014
basic_cpuid[0]=0000000a 756e6547 6c65746e 49656e69
basic_cpuid[1]=000106ca 01020800 0040e31d bfebfbff
basic_cpuid[2]=4fba5901 0e3080c0 00000000 00000000
basic_cpuid[3]=00000000 00000000 00000000 00000000
basic_cpuid[4]=00004121 0140003f 0000003f 00000001
basic_cpuid[5]=00000040 00000040 00000003 00000010
basic_cpuid[6]=00000001 00000002 00000001 00000000
basic_cpuid[7]=00000000 00000000 00000000 00000000
basic_cpuid[8]=00000000 00000000 00000000 00000000
basic_cpuid[9]=00000000 00000000 00000000 00000000
basic_cpuid[10]=07280203 00000000 00000000 00000503
basic_cpuid[11]=07280203 00000000 00000000 00000503
basic_cpuid[12]=07280203 00000000 00000000 00000503
basic_cpuid[13]=07280203 00000000 00000000 00000503
basic_cpuid[14]=07280203 00000000 00000000 00000503
basic_cpuid[15]=07280203 00000000 00000000 00000503
basic_cpuid[16]=07280203 00000000 00000000 00000503
basic_cpuid[17]=07280203 00000000 00000000 00000503
basic_cpuid[18]=07280203 00000000 00000000 00000503
basic_cpuid[19]=07280203 00000000 00000000 00000503
basic_cpuid[20]=07280203 00000000 00000000 00000503
basic_cpuid[21]=07280203 00000000 00000000 00000503
basic_cpuid[22]=07280203 00000000 00000000 00000503
basic_cpuid[23]=07280203 00000000 00000000 00000503
basic_cpuid[24]=07280203 00000000 00000000 00000503
basic_cpuid[25]=07280203 00000000 00000000 00000503
basic_cpuid[26]=07280203 00000000 00000000 00000503
basic_cpuid[27]=07280203 00000000 00000000 00000503
basic_cpuid[28]=07280203 00000000 00000000 00000503
basic_cpuid[29]=07280203 00000000 00000000 00000503
basic_cpuid[30]=07280203 00000000 00000000 00000503
basic_cpuid[31]=07280203 00000000 00000000 00000503
ext_cpuid[0]=80000008 00000000 00000000 00000000
ext_cpuid[1]=00000000 00000000 00000001 20100800
ext_cpuid[2]=20202020 20202020 746e4920 52286c65
ext_cpuid[3]=74412029 54286d6f 4320294d 44205550
ext_cpuid[4]=20353234 20402020 30382e31 007a4847
ext_cpuid[5]=00000000 00000000 00000000 00000000
ext_cpuid[6]=00000000 00000000 02006040 00000000
ext_cpuid[7]=00000000 00000000 00000000 00000000
ext_cpuid[8]=00003024 00000000 00000000 00000000
ext_cpuid[9]=07280203 00000000 00000000 00000503
ext_cpuid[10]=07280203 00000000 00000000 00000503
ext_cpuid[11]=07280203 00000000 00000000 00000503
ext_cpuid[12]=07280203 00000000 00000000 00000503
ext_cpuid[13]=07280203 00000000 00000000 00000503
ext_cpuid[14]=07280203 00000000 00000000 00000503
ext_cpuid[15]=07280203 00000000 00000000 00000503
ext_cpuid[16]=07280203 00000000 00000000 00000503
ext_cpuid[17]=07280203 00000000 00000000 00000503
ext_cpuid[18]=07280203 00000000 00000000 00000503
ext_cpuid[19]=07280203 00000000 00000000 00000503
ext_cpuid[20]=07280203 00000000 00000000 00000503
ext_cpuid[21]=07280203 00000000 00000000 00000503
ext_cpuid[22]=07280203 00000000 00000000 00000503
ext_cpuid[23]=07280203 00000000 00000000 00000503
ext_cpuid[24]=07280203 00000000 00000000 00000503
ext_cpuid[25]=07280203 00000000 00000000 00000503
ext_cpuid[26]=07280203 00000000 00000000 00000503
ext_cpuid[27]=07280203 00000000 00000000 00000503
ext_cpuid[28]=07280203 00000000 00000000 00000503
ext_cpuid[29]=07280203 00000000 00000000 00000503
ext_cpuid[30]=07280203 00000000 00000000 00000503
ext_cpuid[31]=07280203 00000000 00000000 00000503
intel_fn4[0]=00004121 0140003f 0000003f 00000001
intel_fn4[1]=00004122 01c0003f 0000003f 00000001
intel_fn4[2]=00004143 01c0003f 000003ff 00000001
intel_fn4[3]=00000000 00000000 00000000 00000000
intel_fn11[0]=07280203 00000000 00000000 00000503
intel_fn11[1]=07280203 00000000 00000000 00000503
intel_fn11[2]=07280203 00000000 00000000 00000503
intel_fn11[3]=07280203 00000000 00000000 00000503
report.txt
CPUID is present

CPU Info:

vendor_str : GenuineIntel' vendor id : 0 brand_str :Intel(R) Atom(TM) CPU D425 @ 1.80GHz'
family : 6 (06h)
model : 12 (0Ch)
stepping : 10 (0Ah)
ext_family : 6 (06h)
ext_model : 28 (1Ch)
num_cores : 1
num_logical: 2
tot_logical: 2
L1 D cache : 24 KB
L1 I cache : 32 KB
L2 cache : 512 KB
L3 cache : -1 KB
L1D assoc. : 6-way
L2 assoc. : 8-way
L3 assoc. : -1-way
L1D line sz: 64 bytes
L2 line sz : 64 bytes
L3 line sz : -1 bytes
SSE units : 128 bits (non-authoritative)
code name : `Atom (Pineview)'
features : fpu vme de pse tsc msr pae mce cx8 apic mtrr sep pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni dts64 monitor ds_cpl tm2 ssse3 cx16 xtpr pdcm syscall xd movbe lm lahf_lm

openSUSE packaging warning: file-contains-current-date

Hello.
Almost all is fine but 2 warnings are finally output:
[ 34s] libcpuid-devel.x86_64: W: file-contains-current-date /usr/lib64/libcpuid.a
[ 34s] libcpuid11.x86_64: W: file-contains-current-date /usr/lib64/libcpuid.so.11.1.1
[ 34s] Your file contains the current date, this may cause the package to rebuild in
[ 34s] excess.
Current date containing causes unnecessary package republishing. Please resolve it if it is possible.

../libcpuid/.libs/libcpuid.so: undefined reference to `cpu_rdtsc'

Got this error when compiling, not sure about what to do.
Here is the output of Make

$ make
make  all-recursive
make[1]: Entering directory '/home/mathieu/Documents/libcpuid'
Making all in libcpuid
make[2]: Entering directory '/home/mathieu/Documents/libcpuid/libcpuid'
  CC       cpuid_main.lo
  CC       recog_intel.lo
  CC       recog_amd.lo
  CC       rdtsc.lo
  CC       asm-bits.lo
  CC       libcpuid_util.lo
  CC       rdmsr.lo
  CC       msrdriver.lo
  CCLD     libcpuid.la
make[2]: Leaving directory '/home/mathieu/Documents/libcpuid/libcpuid'
Making all in cpuid_tool
make[2]: Entering directory '/home/mathieu/Documents/libcpuid/cpuid_tool'
  CC       cpuid_tool.o
  CCLD     cpuid_tool
../libcpuid/.libs/libcpuid.so: undefined reference to `cpu_rdtsc'
../libcpuid/.libs/libcpuid.so: undefined reference to `busy_sse_loop'
../libcpuid/.libs/libcpuid.so: undefined reference to `exec_cpuid'
collect2: error: ld returned 1 exit status
Makefile:377: recipe for target 'cpuid_tool' failed
make[2]: *** [cpuid_tool] Error 1
make[2]: Leaving directory '/home/mathieu/Documents/libcpuid/cpuid_tool'
Makefile:448: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/mathieu/Documents/libcpuid'
Makefile:356: recipe for target 'all' failed
make: *** [all] Error 2

Clang compiler support

Hi, please add clang compiler support, bcuz on MacOSX in mostly used clang as compiler. In code you can replace #if defined(COMPILER_GCC) to #if defined(COMPILER_GCC) || defined(COMPILER_CLANG) and this should work, also need to detect is compiler clang.

Some values are wrong for Ryzen 1800x processor

With the latest git version of libcpuid and cpu-x, there are some values which are reported wrong for my Ryzen 1800X system. My apologies in advance if some of these values are provided directly by cpu-x, I just tried to collect everything here.

  • Bus speed is shown as 105,71Mhz, while I set it at 103

  • Multiplier is shown as 38, while I set it at 39

  • Voltage is shown as 0.9V, while I set it at 1.34V

  • Temperature is not shown

  • The terminal is filled every second with "libkmod: ERROR ../libkmod/libkmod-module.c:1655 kmod_module_new_from_loaded: could not open /proc/modules: No such file or directory
    Error: could not get list of modules: No such file or directory", this is probably because my kernel has everything built-in (no modules)

Please find the output of cpuid-tool attached
raw.txt
report.txt

Wrong bus speed and multipliers for AMD Phenom II 940

Hey, this is with the git version, so with the RDMSR commits included. With my CPU I'm getting a reported bus speed of 853Mhz (should be a bit more than 200), and a multiplier of x4 (should be 17). Interestingly, before the RDMSR commits I was getting a bus speed of 100 and a multiplier of 34, so it went from one extreme to the other :)
raw.txt
report.txt

Could you make a debian directory ?

Hi anrieff,
could you make a debian directory ? It would be nice if we could have a debian directory so we could make .deb package out of it manually. You could look at eloader's I-Nex repo. for inspiration. See the debian directory that he has made but with one important distinction. It would be nice to have all the changelog in one place rather than have individual release changelogs as he has made for each release.

AMD Ryzen support

AMD Ryzen (Summit Ridge) is now available on AM4 socket!

CPU-Z screenshot

I think libcpuid need some work to support these new CPUs due to the new architecture:

  • Add Ryzen in AMD CPUs DB (recog_amd.c)
  • Support Ryzen MSRs (rdmsr.c)

I think, if you have time, it would be better if you do the first point yourself @anrieff.
Unfortunately, the BKDG the 17h family is still not available.

Ryzen has 2-way SMT, similar to Intel HT technology.

improvement needed to changelog file

I updated to the latest master and while I was cleaning came across -

┌─[shirish@debian] - [~/games/libcpuid] - [10196]
└─[$] fakeroot debian/rules clean                                                                                              
dh clean  --with autotools-dev
dpkg-parsechangelog: warning:     debian/changelog(l3): unrecognized line
LINE:  * Better detection of AMD clock multiplier with msrinfo.
dpkg-parsechangelog: warning:     debian/changelog(l4): unrecognized line
LINE:  * Support for Intel SGX detection

Can this be cleared/fixed up, thanx.

Win64 issues

trying to build on MSVC/x64.

  • created x64 from Win32 project
  • added Build customization for masm
  • added masm-x64.asm to the project.
  • because of that, had to move definition of exec_cpuid inside #ifdef INLINE_ASM_SUPPORTED

remaining error is:

unresolved external symbol busy_sse_loop referenced in function cpu_clock_by_ic D:\work\libcpuid\cpuid_tool\libcpuid.lib(rdtsc.obj) cpuid_tool

date in changelog is wrong

This affects all packages being built -

[$] lintian -i libcpuid14_0.4.0_amd64.deb
                                                                                           
W: libcpuid14: debian-changelog-has-wrong-day-of-week 2016-09-30 is a Friday
N: 
N:    The date in the changelog entry is not consistent with the actual day of
N:    that week. Either the date is wrong or the day of week is wrong.
N:    
N:    To avoid problems like this, consider using a tool like dch(1) or
N:    date(1) to generate the date. Example:
N:    
N:      $ date -R -ud '2013-11-05 23:59:59'
N:      Tue, 05 Nov 2013 23:59:59 +0000
N:    
N:    Severity: normal, Certainty: certain
N:    
N:    Check: changelog-file, Type: binary
N:

Please fix the above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.