This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: gcc-4.7-20111022 fails to build on PA-RISC
On 29 October 2011 19:01, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
> What does the definition of _pthread_fastlock on line 34 of
> /usr/include/bits/pthreadtypes.h look like?
>
Don't worry, I foudn the definition on an hppa-linux machine, and can
reproduce the problem even with the latest std::mutex code
e.g.
typedef volatile struct {
int lock[4];
} __attribute__ ((aligned(16))) __atomic_lock_t;
struct _pthread_fastlock
{
__atomic_lock_t __spinlock;
};
typedef struct {
struct _pthread_fastlock lock;
} pthread_mutex_t;
struct mutex {
pthread_mutex_t m = { };
mutex() = default;
};
int main()
{
mutex mx;
}
The problem is that the mutex contains a volatile type and can't be
copied by the implicit-declared copy constructor.
I'll have to look into this further tomorrow to see if it's a G++
problem or something we need to work around in the library.