So, the clue is in the last two "notes" from the compiler:

/build/woods/b2/current-amd64-destdir/usr/include/pthread_types.h:170:8: note: 
'__pthread_cond_st' is not literal because:
  170 | struct __pthread_cond_st {
      |        ^~~~~~~~~~~~~~~~~
/build/woods/b2/current-amd64-destdir/usr/include/pthread_types.h:175:17: note: 
  non-static data member '__pthread_cond_st::ptc_waiters' has volatile type
  175 |  void *volatile ptc_waiters;
      |                 ^~~~~~~~~~~


These lead me to pthread_types.h, and to the apparent change that may
have introduced the fault (revision 1.25 of pthread_types.h), which
after looking at the full set of changes in 1.25 lead me to find the
definition of __pthread_volatile, and that allowed me to read the
comment about this definition and that suggested the following fix,
which at least allows the compile to continue.  I hate C++ and I hate
debugging C++, but here at least I'm grateful someone had already
figured out how to solve the problem and I only had to apply it in one
more place.

If all goes well I should be able to test the build under Xen in the
next few hours.


Index: lib/libpthread/pthread_types.h
===================================================================
RCS file: /cvs/master/m-NetBSD/main/src/lib/libpthread/pthread_types.h,v
retrieving revision 1.25
diff -u -r1.25 pthread_types.h
--- lib/libpthread/pthread_types.h      10 Jun 2020 22:45:15 -0000      1.25
+++ lib/libpthread/pthread_types.h      9 Mar 2021 22:43:05 -0000
@@ -172,7 +172,7 @@

        /* Protects the queue of waiters */
        __pthread_spin_t ptc_lock;
-       void *volatile ptc_waiters;
+       void *__pthread_volatile ptc_waiters;
        void *ptc_spare;

        pthread_mutex_t *ptc_mutex;     /* Current mutex */

--
                                        Greg A. Woods <gwo...@acm.org>

Kelowna, BC     +1 250 762-7675           RoboHack <wo...@robohack.ca>
Planix, Inc. <wo...@planix.com>     Avoncote Farms <wo...@avoncote.ca>

Attachment: pgpyKO6vyn83x.pgp
Description: OpenPGP Digital Signature

Reply via email to