[PATCH] D19483: docs: Update SafeStack docs with separate-stack-seg feature and various USP storage modes

Michael LeMay via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 30 15:31:57 PDT 2016


mlemay-intel added a comment.

In http://reviews.llvm.org/D19483#417865, @pcc wrote:

> > This makes sense for the example I gave. However, there are also more complicated situations. Sometimes it is necessary to specify different options for different files that are compiled for the same OS. For example, early during the initialization of a dynamic linker or C library, a single-threaded mode of USP storage needs to be supported. TLS is not available at that time. How should requirements like that be conveyed to the compiler?
>
>
> In cases like this, we should introduce a new `-m` flag in the Clang driver and plumb that through to the SafeStack pass using a target-specific function attribute.


It appears that Clang already supports an `-mthread_model=single` option, so do you recommend that I remove the `-mllvm -safe-stack-usp-storage=single-thread` option and rely on `-mthread_model` instead? I added @eugenis to get his feedback as well, since he approved my patch that added the new flag.  `-mllvm -safe-stack-usp-storage=single-thread` would have been documented for the first time by this patch, and I have not heard of anyone else using it yet.

I don't see any existing option that seems suitable for indicating that a file may be used during dynamic linker or C library initialization, so perhaps we should add an `-mruntime-init` flag?  I welcome other naming suggestions.


http://reviews.llvm.org/D19483





More information about the cfe-commits mailing list