I am just trying to compile a simple code for the code I entered from a book, and GCC gives me the above error. Here is my code:
$ cat -n test.cpp 1 #define READ_COMMAND 3 2 3 #define MSG_LENGTH 128 4 5 #include <stdlib.h> 6 #include <stdio.h> 7 8 int main(int argc, char *arg[]) 9 { 10 int syslog_command = READ_COMMAND; 11 int bytes_to_read = MSG_LENGTH; 12 int retval; 13 char buffer[MSG_LENGTH]; 14 15 asm volatile( 16 "movl %1, %%ebx\n\t" 17 "movl %2, %%ecx\n\t" 18 "movl %3, %%edx\n\t" 19 "movl $103, %%eax\n\t" 20 "int $128\n\t" 21 "movl %%eax, %0" 22 :"=r" (retval) 23 :"m"(syslog_command),"r"(buffer),"m"(bytes_to_read) 24 :"%eax","%ebx","%ecx","%edx"); 25 if (retval > 0) printf("%s\n", buffer); 26 27 } 28 29
The code should call the syslog() system call to read the last 128 bytes from the printk() kernel ring buffer. Here is some information about my OS and system configuration:
uname -a :
Linux 3.2.0-26-generiC # 41-Ubuntu SMP Thu Jun 14 17:49:24 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux
gcc -v :
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6/lto-wrapper Target: x86_64-linux-gnu
Configurable with: ../ src / configure -v --with-pkgversion = 'Ubuntu / Linaro 4.6.3-1ubuntu5' --with-bugurl = file: ///usr/share/doc/gcc-4.6/README .Bugs --enable-languages ββ= c, C ++, fortran, objc, obj-C ++ --prefix = / usr --program-suffix = -4.6 --enable-shared --enable-linker- build-id - -with-system-zlib --libexecdir = / usr / lib --without-included-gettext --enable-threads = posix --with-gxx-include-dir = / usr / include / C ++ /4.6 --libdir = / usr / lib --enable-nls --with-sysroot = / - enable-clocale = gnu --enable-libstdcxx-debug --enable-libstdcxx-time = yes --enable-gnu -unique-object - enable-plugin --enable-objc-gc --disable-werror --with-arch-32 = i686 --with-tune = generic --enable-checking = release --build = x86_64-linux -gnu -host = x86_64-linux-gnu --target = x86_64-linux-gnu
Thread model: posix gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
Gets a complete error:
$ gcc test.cpp test.cpp: Assembler messages: test.cpp:25: Error: unsupported for `mov'
source share