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

pthread_mutexattr_setprioceiling, pthread_mutexattr_setprotocol missing in GNU/kFreeBSD?



Hello,

In the context of #642128, I am trying to locate the functions
pthread_mutexattr_setprioceiling and pthread_mutexattr_setprotocol,
which ought to exist in libpthread, but don't seem to be there.  One
symptom of this problem is:

$ cat pthread_p.c
int main(int argc, char* argv[])
{
   pthread_mutexattr_t attr;
   int prioceiling = 1;
   int status = pthread_mutexattr_init (&attr);
   status = pthread_mutexattr_setprioceiling (&attr, &prioceiling);
}
$ gcc pthread_p.c -o pthread_p -lpthread
/tmp/ccqpJUM7.o: In function `main': pthread_p.c:(.text+0x32): undefined reference to `pthread_mutexattr_setprioceiling'
collect2: ld returned 1 exit status

Whereas on GNU/Linux I get no compile-time error.  Is there anything
wrong in this little program or in the way I compile it?

$ objdump -T /lib/x86_64-kfreebsd-gnu/libpthread.so.0 |grep mutexattr
0000000000007b60 g    DF .text  0000000000000009  GLIBC_2.3   __pthread_mutexattr_init
0000000000007b70 g    DF .text  0000000000000003  GLIBC_2.3   pthread_mutexattr_destroy
0000000000007b80  w   DF .text  0000000000000028  GLIBC_2.3   pthread_mutexattr_settype
0000000000007bd0  w   DF .text  0000000000000018  GLIBC_2.3   pthread_mutexattr_setpshared
0000000000007bb0  w   DF .text  0000000000000007  GLIBC_2.3   pthread_mutexattr_getkind_np
0000000000007b60 g    DF .text  0000000000000009  GLIBC_2.3   pthread_mutexattr_init
0000000000007bb0  w   DF .text  0000000000000007  GLIBC_2.3   pthread_mutexattr_gettype
0000000000007bc0  w   DF .text  0000000000000009  GLIBC_2.3   pthread_mutexattr_getpshared
0000000000007b70 g    DF .text  0000000000000003  GLIBC_2.3   __pthread_mutexattr_destroy
0000000000007b80  w   DF .text  0000000000000028  GLIBC_2.3   pthread_mutexattr_setkind_np
0000000000007b80 g    DF .text  0000000000000028  GLIBC_2.3   __pthread_mutexattr_settype

suggesting that the functions I'm looking for are missing entirely.  Is
that so?

The reason why I'm looking for these functions is because they are
required to implement the semantics of the multitasking features of the
Ada programming language.  The Ada run-time library needs to import
these functions from the shared library that contains them (not from a C
preprocessor include file).

Relevant packages installed on asdfasdf.debian.net in the sid chroot:

ii  libc0.1               2.13-21  Embedded GNU C Library: Shared libraries
ii  libc0.1-dev           2.13-21  Embedded GNU C Library: Development Libraries and Header Files
ii  libc0.1-dev-i386      2.13-21  Embedded GNU C Library: 32bit development libraries for AMD64
ii  libc0.1-i386          2.13-21  Embedded GNU C Library: 32bit shared libraries for AMD64
ii  libc0.1-pic           2.13-21  Embedded GNU C Library: PIC archive library
ii  libpthread-stubs0     0.3-2.1  pthread stubs not provided by native libc
ii  libpthread-stubs0-dev 0.3-2.1  pthread stubs not provided by native libc, development files

-- 
Ludovic Brenta.


Reply to: