On Sun, Sep 23, 2012 at 10:35 AM, Liviu Nicoara <nikko...@hates.ms> wrote:
> I can't think of a valid scenario, either. I guess the point is moot. I really don't think we should worry about this particular scenario. For example if someone really wants to experiment with saying #pragma align(2) before #including any system header files, and then testing if their program still works, more power to them. My bet is that this will not, ever, work, under any circumstances. > A few more questions, if you will, as I am going through the changes: > > 1. I see similarities with 1040, should/would you close that one? Oh I completely forgot about that one. Yes I will close it as duplicate of this one, because these patches attached here are in production and over-tested. I don't even remember if the old patches are identical or not. > 2. The issue only exists in MT builds, should there be a guard in configs? Yes, good point. The reason they aren't there is because we don't actually provide a non-MT stdcxx at all in Solaris. I'll fix this. > 3. The align reference docs talk only about aligning variables, not types. > Is that different on SPARC? It can be. ;-) > 4. I see rw/_mutex.h has alignment pragmas for both __rw_mutex_base class > and its mutex member; same for __rw_static_mutex and its static member, etc. > How does that work? It works. ;-) And it actually acts as a space saver. Wink-wink. But I don't think the _C_mutex member is static. In rw/_mutex.h, _RWSTD_MUTEX_T is #defined as: #include <pthread.h> // [ ... snip ... ] # define _RWSTD_MUTEX_T pthread_mutex_t (for the definition Solaris cares about, which is POSIX). So, in class _RWSTD_EXPORT __rw_mutex_base { public: // [ ... snip ... ] _RWSTD_MUTEX_T _C_mutex; }; it looks like it's not declared static. > 5. Why is __rw_guard aligned explicitly? I see it only contains a pointer to > a mutex object. So that the __rw_mutex_base pointer ends up 8-byte aligned. There's a lot of juju going on here. > 6. The docs mention that the pragma must use the mangled variables names but > I don't see that in the patch. Yes, a few things are a bit different. ;-) I wish I didn't have to be as vague and secretive about these things as I have to be. --Stefan -- Stefan Teleman KDE e.V. stefan.tele...@gmail.com