Hi Alex, >> thanks, that's certainly helpful. I'm primarily interested in porting >> to Solaris, both SPARC and x86. Several things should be similar to >> Linux (both being ELF systems), while other areas are certainly >> different (syscalls implementation etc.). > We don't wrap the syscalls in ASan, if you're speaking about that.
I'm talking about the internal_* wrappers e.g. in sanitizer_linux.cc. For Linux, they use syscall directly, for Mac OS, they call the underlying function. >> I'll certainly be looking around. One problem I see with the current >> code organization is duplication between different platforms: >> e.g. considerable parts of sanitizer_mac.cc and a new >> sanitizer_solaris.cc are identical. Perhaps we need more granularity in >> the future, but that can be decided once an initial port (with >> duplication to avoid treading on other port's feet) is done. At the >> same time, we should add infrastructure (like libffi) to only compile >> target-specific code on the relevant platforms, instead of wrapping >> every source file in #ifdef __linux__ or similar and extending the >> conditionals once a new platform is added. > Yes, this might be a problem. I also wonder how much Solaris is like > FreeBSD, which users are also interested in ASan. That's hard to tell: all of Linux, FreeBSD and Solaris are Unix/ELF systems, but apart from the resulting similarities there will be many differences like details how to implement stuff like GetEnv, ReExec or MemoryMappingLayout which rely on /proc details on Linux. I guess this will have to be checked on a case-by-case basis to determine areas that can be handled identically across several different Unix OSes and those that are highly system-specific. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University