================
Comment at: cmake/config-ix.cmake:259
@@ -257,2 +258,3 @@
   mipsel mips64 mips64el powerpc64 powerpc64le)
+filter_available_targets(SAFESTACK_SUPPORTED_ARCH x86_64 i386 i686)
 
----------------
jfb wrote:
> I haven't been through the LLVM-side code yet, but what prevents other 
> architectures from being supported? IIUC nothing is x86 specific since it's 
> in ``lib/Transforms``, right?
Good point, in principle the code is fairly cross platform (although we only 
tested it on x86).

================
Comment at: lib/safestack/safestack.cc:174
@@ +173,3 @@
+  if (initialized)
+    return;
+
----------------
jfb wrote:
> Is this initialization check useful if `__attribute__((constructor(0)))` was 
> used? Can this be done concurrently, or is it just called multiple times from 
> the same thread of execution? If concurrent then initialization is racy.
The primary reason for this check is to handle cases when libsafestack is 
linked into multiple DSOs and __safestack_init ends up being on multiple 
constructor lists. It can only be called concurrently if multiple DSOs are 
being dlopen'ed in parallel. I think that dlopen itself isn't thread-safe and 
shouldn't be used that way but, perhaps, for extra safety it's useful to make 
this code non-racy using atomics.

================
Comment at: lib/safestack/safestack.cc:225
@@ +224,3 @@
+void *__get_safe_stack_ptr() {
+  return (char*) __builtin_frame_address(0) + 2*sizeof(void*);
+}
----------------
jfb wrote:
> Please add a comment on why `2*sizeof(void*)` is correct.
In fact, it might depend on the architecture and even on the calling 
convention. Perhaps we should just remove this function altogether, as it is 
not really related to SafeStack, and we ended up not using it anyway neither in 
Chrome nor FreeBSD.

http://reviews.llvm.org/D6096

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to