[omniORB] posix.cc: pthread * vs. pthread ** build failure with clang 16

Duncan Grisby duncan at grisby.org
Wed Nov 29 00:51:37 UTC 2023


On Mon, 2023-11-27 at 02:49 +0000, Marcin Cieslak via omniORB-list
wrote:

> c++ -c -fPIC -O2 -pipe -fstack-protector-strong -fno-strict-
> aliasing   -Wall -Wno-unused -fexceptions    -I. -I. -
> I../../../include -I../../../include -D__OSVERSION__=0  -o
> shared/posix.o posix.cc
> posix.cc:605:15: error: no matching function for call to
> 'pthread_detach'
>          THROW_ERRORS(pthread_detach(&posix_thread));
>                       ^~~~~~~~~~~~~~

How was the build configured?

The build of omnithread requires a preprocessor symbol
PthreadDraftVersion to be defined. That failing code is in the block
for pthread draft <= 6, which is clearly not right for anything modern.
omnithread still contains versions of code for truly ancient Unix
variants from the early days of pthreads (in the 1990s!), before the
API was pinned down. I'm sure it could all be removed now, but it does
not normally do any harm.

The mk/beforeauto.mk generated by the configure script file should set
the compiler flags to have the right PthreadDraftVersion. It should be
10.

I don't know why that is missing for you. Hopefully that will help you
track it down.

Duncan.


-- 
Duncan Grisby <duncan at grisby.org>



More information about the omniORB-list mailing list