adelshokhy112 / linux-syscall-support

Automatically exported from code.google.com/p/linux-syscall-support
24 stars 24 forks source link

i386: clone() asm clobbers too many registers w/-fsanitize=address #10

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I've been compiling google breakpad with -fsanitize=address option for a while 
now but since I've updated my toolchain from gcc 4.8.3 to 4.9.1, it does not 
compile anymore with the AdressSanitizer flag.

The following error occurs :
./src/third_party/lss/linux_syscall_support.h: In member function 'bool 
google_breakpad::ExceptionHandler::GenerateDump(google_breakpad::ExceptionHandle
r::CrashContext*)':
./src/third_party/lss/linux_syscall_support.h:1828:74: error: 'asm' operand has 
impossible constraints
                            : "esp", "memory", "ecx", "edx", "esi", "edi");

I'm currently cross-compiling from windows using gcc 4.9.1 provided by 
SourceryCodebench toolchain

GoogleBreakpad is currently using r31, I've tried to update to r34 but the same 
error still occurs

Original issue reported on code.google.com by david.ga...@gmail.com on 9 Mar 2015 at 10:01

GoogleCodeExporter commented 8 years ago
probably not a whole lot can be done w/out manually pushing/popping registers

Original comment by vapier@chromium.org on 2 Sep 2015 at 4:54