Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src



Module Name:    src
Committed By:   pooka
Date:           Thu Aug 27 12:30:51 UTC 2015

Modified Files:
        src/lib/libpthread: pthread_types.h
        src/sys/arch/aarch64/include: types.h
        src/sys/arch/amd64/include: types.h
        src/sys/arch/arm/include: types.h
        src/sys/arch/hppa/include: types.h
        src/sys/arch/i386/include: types.h
        src/sys/arch/ia64/include: types.h
        src/sys/arch/m68k/include: types.h
        src/sys/arch/mips/include: types.h
        src/sys/arch/or1k/include: types.h
        src/sys/arch/powerpc/include: types.h
        src/sys/arch/riscv/include: types.h
        src/sys/arch/sh3/include: types.h
        src/sys/arch/sparc/include: types.h
        src/sys/arch/usermode/include: types.h
        src/sys/arch/vax/include: types.h
        src/sys/sys: types.h

Log Message:
Fix PTHREAD_FOO_INITIALIZER for C++ by not using volatile in the relevant
pthread types in C++ builds, attempt 2.

The problem with attempt 1 was making assumptions of what the MD
__cpu_simple_lock_t (declared volatile) looks like.  To get a same type
except non-volatile, we change the MD type to __cpu_simple_lock_nv_t
and typedef __cpu_simple_lock_t as a volatile __cpu_simple_lock_nv_t.
IMO, __cpu_simple_lock_t should not be volatile at all, but changing it
now is too risky.

Fixes at least Rumprun w/ gcc 5.1/5.2.  Furthermore, the mpd application
(and possibly others) will no longer require NetBSD-specific patches.

Tested: build.sh for i386, Rumprun for x86_64 w/ gcc 5.2.

Based on the patch from Christos in lib/49989.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libpthread/pthread_types.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/aarch64/include/types.h
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/amd64/include/types.h
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/include/types.h
cvs rdiff -u -r1.23 -r1.24 src/sys/arch/hppa/include/types.h
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/i386/include/types.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/ia64/include/types.h
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/m68k/include/types.h
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/mips/include/types.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/or1k/include/types.h
cvs rdiff -u -r1.50 -r1.51 src/sys/arch/powerpc/include/types.h
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/riscv/include/types.h
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/sh3/include/types.h
cvs rdiff -u -r1.62 -r1.63 src/sys/arch/sparc/include/types.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/usermode/include/types.h
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/vax/include/types.h
cvs rdiff -u -r1.94 -r1.95 src/sys/sys/types.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index