statically linking libpthread is problematic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
eglibc (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
While investigating https:/
junyer@whalre:~$ lsb_release -rd
Description: Ubuntu 14.10
Release: 14.10
junyer@whalre:~$ apt-cache policy libc6-dev
libc6-dev:
Installed: 2.19-10ubuntu2.3
Candidate: 2.19-10ubuntu2.3
Version table:
*** 2.19-10ubuntu2.3 0
500 http://
500 http://
100 /var/lib/
2.19-10ubuntu2 0
500 http://
junyer@whalre:~$
junyer@whalre:~$ g++ -Wall -Werror foo.cc -o foo -lpthread rwlock_ init(&lock, NULL): 0 rwlock_ wrlock( &lock): 0 rwlock_ unlock( &lock): 0 rwlock_ wrlock( &lock): 0 rwlock_ unlock( &lock): 0 rwlock_ destroy( &lock): 0 rwlock_ init(&lock, NULL): 0 rwlock_ wrlock( &lock): 0 rwlock_ unlock( &lock): 0 whole-archive rwlock_ init(&lock, NULL): 0 rwlock_ wrlock( &lock): 0 rwlock_ unlock( &lock): 0 rwlock_ wrlock( &lock): 0 rwlock_ unlock( &lock): 0 rwlock_ destroy( &lock): 0
junyer@whalre:~$ ./foo
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
junyer@whalre:~$ g++ -Wall -Werror foo.cc -o foo -static -lpthread
junyer@whalre:~$ ./foo
foo: pthread_
foo: pthread_
foo: pthread_
^C
junyer@whalre:~$ g++ -Wall -Werror foo.cc -o foo -static -Wl,--whole-archive -lpthread -Wl,--no-
junyer@whalre:~$ ./foo
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
foo: pthread_
junyer@whalre:~$