Hi Tom,

> gcc -std=gnu99  -g -O2 -Wall   -o test-fstrcmp test-fstrcmp.o 
> ../gllib/libgnu.a   -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm
> ../gllib/libgnu.a(lock.o): In function `glthread_rwlock_init_for_glibc':
> /home/tgc/projects/gnulib/build/gllib/glthread/lock.c:46: undefined 
> reference to `pthread_rwlockattr_init'
> /home/tgc/projects/gnulib/build/gllib/glthread/lock.c:53: undefined 
> reference to `pthread_rwlockattr_setkind_np'
> /home/tgc/projects/gnulib/build/gllib/glthread/lock.c:59: undefined 
> reference to `pthread_rwlockattr_destroy'
> collect2: ld returned 1 exit status
> make[4]: *** [test-fstrcmp] Error 1
> 
> Manually linking test-fstrcmp with -pthread then allows the build to 
> complete.

Thanks for the report. Fixed as follows:


2017-01-31  Bruno Haible  <[email protected]>

        lock: Fix link error (regression from 2017-01-05).
        * lib/glthread/lock.h [USE_POSIX_THREADS_WEAK]: Declare also
        pthread_rwlockattr_init, pthread_rwlockattr_setkind_np,
        pthread_rwlockattr_destroy weak.
        Reported by Tom G. Christensen <[email protected]>.

diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index 69f6e31..ec16d39 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -139,6 +139,9 @@ extern int glthread_in_use (void);
 #  pragma weak pthread_mutexattr_init
 #  pragma weak pthread_mutexattr_settype
 #  pragma weak pthread_mutexattr_destroy
+#  pragma weak pthread_rwlockattr_init
+#  pragma weak pthread_rwlockattr_setkind_np
+#  pragma weak pthread_rwlockattr_destroy
 #  ifndef pthread_self
 #   pragma weak pthread_self
 #  endif


> bump?

Sure I understood it's a blocker, but it took me two attempts to find the right
solution.

Bruno


Reply via email to