Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>> Please pull from git://git.xenomai.org/xenomai-jki.git for-upstream
>> and run bootstrap.
>>
>> ---------->
>>
>> Recent glibc versions come with support for
>> pthread_mutexattr_get/setprotocol and pthread_condattr_get/setclock.
>> Make sure we don't declare those prototypes in Xenomai's pthread.h a
>> second time as this can cause g++ warnings and even errors.
>>
>> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
>> ---
>>
>>  configure.in            |    4 ++--
>>  include/posix/pthread.h |    4 ++++
>>  2 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure.in b/configure.in
>> index b291ce4..6a8b821 100644
>> --- a/configure.in
>> +++ b/configure.in
>> @@ -750,8 +750,8 @@ if test x$CONFIG_XENO_POSIX_UITRON_MLOCKALL = xy; then
>>  fi
>>  
>>  save_LIBS="$LIBS"
>> -LIBS="$LIBS -lrt"
>> -AC_CHECK_FUNCS([shm_open shm_unlink mmap64 ftruncate64])
>> +LIBS="$LIBS -lrt -lpthread"
>> +AC_CHECK_FUNCS([shm_open shm_unlink mmap64 ftruncate64 
>> pthread_mutexattr_setprotocol pthread_condattr_setclock])
>>  LIBS="$save_LIBS"
>>  
>>  AC_MSG_CHECKING(whether to enable dlopen support for skin libraries)
>> diff --git a/include/posix/pthread.h b/include/posix/pthread.h
>> index 2344158..98db325 100644
>> --- a/include/posix/pthread.h
>> +++ b/include/posix/pthread.h
>> @@ -418,17 +418,21 @@ int pthread_intr_control_np(pthread_intr_t intr,
>>  extern "C" {
>>  #endif
>>  
>> +#ifndef HAVE_PTHREAD_MUTEXATTR_SETPROTOCOL
>>  int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *attr,
>>                                int *proto);
>>  
>>  int pthread_mutexattr_setprotocol(pthread_mutexattr_t *attr,
>>                                int proto);
>> +#endif
> 
> That is not enough, if these functions are defined, then the
> PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, PTHREAD_PRIO_PROTECT are going
> to be defined.
> 
> Are you sure that the missing "restrict" are not causing the errors ?

This is enough to fix our build breakage due to different prototypes of
those functions, at least under C++. The magic __THROW may make the
difference, but I didn't test that in details as I think its simply
fragile to redeclare them.

Don't know if those constants can cause trouble, they didn't do so here
so far. But I can Include them if preferred.

Jan

-- 
Siemens AG, Corporate Technology, CT SE 2
Corporate Competence Center Embedded Linux

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to