pthreads_hacking.txt 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. # Run me as a shell script in uclibc lib/*
  2. # Dump the list of dynamic symbols from libpthread
  3. # and compare libpthread's exported symbols of uclibc with glibc
  4. # (adjust /lib64/libpthread-*.*.so as needed).
  5. # The resulting diff is suspiciously large.
  6. # We export a lot of stuff which glibc does not.
  7. readelf -sDW libpthread-*.*.so \
  8. | grep '^ *[0-9]' \
  9. | sed 's/^[0-9a-f: ]*[^ ]\( *[A-Z]\)/\1/' \
  10. | sed 's/ [0-9] / N /' | sed 's/ [0-9][0-9] / N /' | sed 's/ [0-9][0-9][0-9] / N /' \
  11. | sort -k5 | uniq \
  12. >uclibc.lst
  13. readelf -sDW /lib64/libpthread-*.*.so \
  14. | grep '^ *[0-9]' \
  15. | sed 's/^[0-9a-f: ]*[^ ]\( *[A-Z]\)/\1/' \
  16. | sed 's/ [0-9] / N /' | sed 's/ [0-9][0-9] / N /' | sed 's/ [0-9][0-9][0-9] / N /' \
  17. | sort -k5 | uniq \
  18. >glibc.lst
  19. diff -u uclibc.lst glibc.lst >ug.diff
  20. # Check which exported symbols from libpthread are never referenced
  21. # from other libraries. Generally, I'd expect a very few __functions
  22. # with two underscores to be exported and not used by e.g. libc-X.X.X.so,
  23. # as these names are supposed to be internal, i.e. external programs
  24. # usually don't call them. On my system, I got 141 such __functions.
  25. # Examples:
  26. # __flockfilelist - NOP function (why do we need it at all?)
  27. # __pthread_perform_cleanup - called only from within libpthread
  28. echo *-*.*.*.so | xargs -n1 | grep -v libpthread | xargs readelf -aW >full_dump.lst
  29. >uclibc_unrefd.lst
  30. >uclibc_refd.lst
  31. sed 's/^.* //g' uclibc.lst \
  32. | while read symbol; do
  33. if grep -F -- "$symbol" full_dump.lst >/dev/null 2>&1; then
  34. echo "$symbol" >>uclibc_refd.lst
  35. else
  36. echo "$symbol" >>uclibc_unrefd.lst
  37. fi
  38. done
  39. exit
  40. In case you don't have a glibc system to try it,
  41. ug.diff from vda's system is below.
  42. --- uclibc.lst 2009-03-16 03:07:58.000000000 +0100
  43. +++ glibc.lst 2009-03-16 03:07:58.000000000 +0100
  44. @@ -1,188 +1,173 @@
  45. - NOTYPE GLOBAL DEFAULT ABS __bss_start
  46. - FUNC GLOBAL DEFAULT N __compare_and_swap
  47. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.2.5
  48. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.2.6
  49. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.2
  50. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.3
  51. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.3.4
  52. + OBJECT GLOBAL DEFAULT ABS GLIBC_2.4
  53. + OBJECT GLOBAL DEFAULT ABS GLIBC_PRIVATE
  54. + FUNC GLOBAL DEFAULT N _IO_flockfile
  55. + FUNC GLOBAL DEFAULT N _IO_ftrylockfile
  56. + FUNC GLOBAL DEFAULT N _IO_funlockfile
  57. + NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
  58. + FUNC GLOBAL DEFAULT UND __clone
  59. + FUNC WEAK DEFAULT N __close
  60. + FUNC WEAK DEFAULT N __connect
  61. + FUNC WEAK DEFAULT UND __cxa_finalize
  62. + FUNC GLOBAL DEFAULT UND __endmntent
  63. FUNC GLOBAL DEFAULT N __errno_location
  64. - FUNC GLOBAL DEFAULT N __flockfilelist
  65. - FUNC GLOBAL DEFAULT N __fresetlockfiles
  66. - FUNC GLOBAL DEFAULT N __funlockfilelist
  67. + FUNC WEAK DEFAULT N __fcntl
  68. + FUNC GLOBAL DEFAULT N __fork
  69. + FUNC GLOBAL DEFAULT UND __fxstat64
  70. + FUNC GLOBAL DEFAULT UND __getdelim
  71. + FUNC GLOBAL DEFAULT UND __getmntent_r
  72. + FUNC GLOBAL DEFAULT UND __getpagesize
  73. + FUNC GLOBAL DEFAULT UND __gettimeofday
  74. FUNC GLOBAL DEFAULT N __h_errno_location
  75. - FUNC GLOBAL DEFAULT N __linuxthreads_create_event
  76. - FUNC GLOBAL DEFAULT N __linuxthreads_death_event
  77. - OBJECT GLOBAL DEFAULT N __linuxthreads_initial_report_events
  78. - OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_key_2ndlevel_size
  79. - OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_keys_max
  80. - OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_sizeof_descr
  81. - OBJECT GLOBAL DEFAULT N __linuxthreads_pthread_threads_max
  82. - FUNC GLOBAL DEFAULT N __linuxthreads_reap_event
  83. - OBJECT GLOBAL DEFAULT N __linuxthreads_version
  84. - FUNC GLOBAL DEFAULT N __pthread_alt_lock
  85. - FUNC GLOBAL DEFAULT N __pthread_alt_timedlock
  86. - FUNC GLOBAL DEFAULT N __pthread_alt_unlock
  87. - FUNC GLOBAL DEFAULT N __pthread_attr_destroy
  88. - FUNC GLOBAL DEFAULT N __pthread_attr_getdetachstate
  89. - FUNC GLOBAL DEFAULT N __pthread_attr_getguardsize
  90. - FUNC GLOBAL DEFAULT N __pthread_attr_getinheritsched
  91. - FUNC GLOBAL DEFAULT N __pthread_attr_getschedparam
  92. - FUNC GLOBAL DEFAULT N __pthread_attr_getschedpolicy
  93. - FUNC GLOBAL DEFAULT N __pthread_attr_getscope
  94. - FUNC GLOBAL DEFAULT N __pthread_attr_getstack
  95. - FUNC GLOBAL DEFAULT N __pthread_attr_getstacksize
  96. - FUNC GLOBAL DEFAULT N __pthread_attr_init
  97. - FUNC GLOBAL DEFAULT N __pthread_attr_setdetachstate
  98. - FUNC GLOBAL DEFAULT N __pthread_attr_setguardsize
  99. - FUNC GLOBAL DEFAULT N __pthread_attr_setinheritsched
  100. - FUNC GLOBAL DEFAULT N __pthread_attr_setschedparam
  101. - FUNC GLOBAL DEFAULT N __pthread_attr_setschedpolicy
  102. - FUNC GLOBAL DEFAULT N __pthread_attr_setscope
  103. - FUNC GLOBAL DEFAULT N __pthread_attr_setstack
  104. - FUNC GLOBAL DEFAULT N __pthread_attr_setstacksize
  105. - FUNC GLOBAL DEFAULT N __pthread_barrierattr_getpshared
  106. - FUNC GLOBAL DEFAULT N __pthread_compare_and_swap
  107. - FUNC GLOBAL DEFAULT N __pthread_cond_broadcast
  108. - FUNC GLOBAL DEFAULT N __pthread_cond_destroy
  109. - FUNC GLOBAL DEFAULT N __pthread_cond_init
  110. - FUNC GLOBAL DEFAULT N __pthread_cond_signal
  111. - FUNC GLOBAL DEFAULT N __pthread_cond_timedwait
  112. - FUNC GLOBAL DEFAULT N __pthread_cond_wait
  113. - FUNC GLOBAL DEFAULT N __pthread_condattr_destroy
  114. - FUNC GLOBAL DEFAULT N __pthread_condattr_init
  115. - FUNC GLOBAL DEFAULT N __pthread_create
  116. - FUNC GLOBAL DEFAULT N __pthread_destroy_specifics
  117. - FUNC GLOBAL DEFAULT N __pthread_do_exit
  118. - FUNC GLOBAL DEFAULT N __pthread_equal
  119. - FUNC GLOBAL DEFAULT N __pthread_exit
  120. - OBJECT GLOBAL DEFAULT N __pthread_exit_code
  121. - OBJECT GLOBAL DEFAULT N __pthread_exit_requested
  122. - FUNC GLOBAL DEFAULT N __pthread_find_self
  123. - OBJECT GLOBAL DEFAULT N __pthread_functions
  124. - FUNC GLOBAL DEFAULT N __pthread_getconcurrency
  125. - FUNC GLOBAL DEFAULT N __pthread_getschedparam
  126. - FUNC WEAK DEFAULT N __pthread_getspecific
  127. - OBJECT GLOBAL DEFAULT N __pthread_handles
  128. - OBJECT GLOBAL DEFAULT N __pthread_handles_num
  129. - OBJECT GLOBAL DEFAULT N __pthread_has_cas
  130. - FUNC GLOBAL DEFAULT N __pthread_init_max_stacksize
  131. - OBJECT GLOBAL DEFAULT N __pthread_initial_thread
  132. - OBJECT GLOBAL DEFAULT N __pthread_initial_thread_bos
  133. - FUNC GLOBAL DEFAULT N __pthread_initialize
  134. - FUNC GLOBAL DEFAULT N __pthread_initialize_manager
  135. + FUNC GLOBAL DEFAULT N __libc_allocate_rtsig
  136. + FUNC GLOBAL DEFAULT UND __libc_allocate_rtsig_private
  137. + FUNC GLOBAL DEFAULT N __libc_current_sigrtmax
  138. + FUNC GLOBAL DEFAULT UND __libc_current_sigrtmax_private
  139. + FUNC GLOBAL DEFAULT N __libc_current_sigrtmin
  140. + FUNC GLOBAL DEFAULT UND __libc_current_sigrtmin_private
  141. + FUNC GLOBAL DEFAULT UND __libc_dl_error_tsd
  142. + FUNC GLOBAL DEFAULT UND __libc_dlopen_mode
  143. + FUNC GLOBAL DEFAULT UND __libc_dlsym
  144. + FUNC GLOBAL DEFAULT UND __libc_fatal
  145. + FUNC GLOBAL DEFAULT UND __libc_fork
  146. + FUNC GLOBAL DEFAULT UND __libc_longjmp
  147. + FUNC GLOBAL DEFAULT UND __libc_pthread_init
  148. + OBJECT GLOBAL DEFAULT UND __libc_stack_end
  149. + FUNC GLOBAL DEFAULT UND __libc_system
  150. + FUNC GLOBAL DEFAULT UND __libc_thread_freeres
  151. + FUNC WEAK DEFAULT N __lseek
  152. + FUNC WEAK DEFAULT N __nanosleep
  153. + FUNC WEAK DEFAULT N __open
  154. + FUNC WEAK DEFAULT N __open64
  155. + FUNC WEAK DEFAULT N __pread64
  156. + FUNC GLOBAL DEFAULT N __pthread_cleanup_routine
  157. + FUNC GLOBAL DEFAULT N __pthread_clock_gettime
  158. + FUNC GLOBAL DEFAULT N __pthread_clock_settime
  159. + FUNC GLOBAL DEFAULT N __pthread_getspecific
  160. FUNC GLOBAL DEFAULT N __pthread_initialize_minimal
  161. - FUNC GLOBAL DEFAULT N __pthread_internal_tsd_address
  162. - FUNC GLOBAL DEFAULT N __pthread_internal_tsd_get
  163. - FUNC GLOBAL DEFAULT N __pthread_internal_tsd_set
  164. - FUNC WEAK DEFAULT N __pthread_key_create
  165. - FUNC GLOBAL DEFAULT N __pthread_kill_other_threads_np
  166. - OBJECT GLOBAL DEFAULT N __pthread_last_event
  167. - FUNC GLOBAL DEFAULT N __pthread_lock
  168. - OBJECT GLOBAL DEFAULT N __pthread_main_thread
  169. - FUNC GLOBAL DEFAULT N __pthread_manager
  170. - FUNC GLOBAL DEFAULT N __pthread_manager_adjust_prio
  171. - FUNC GLOBAL DEFAULT N __pthread_manager_event
  172. - OBJECT GLOBAL DEFAULT N __pthread_manager_reader
  173. - OBJECT GLOBAL DEFAULT N __pthread_manager_request
  174. - FUNC GLOBAL DEFAULT N __pthread_manager_sighandler
  175. - OBJECT GLOBAL DEFAULT N __pthread_manager_thread
  176. - OBJECT GLOBAL DEFAULT N __pthread_manager_thread_bos
  177. - OBJECT GLOBAL DEFAULT N __pthread_manager_thread_tos
  178. - OBJECT GLOBAL DEFAULT N __pthread_max_stacksize
  179. - FUNC WEAK DEFAULT N __pthread_mutex_destroy
  180. - FUNC WEAK DEFAULT N __pthread_mutex_init
  181. - FUNC WEAK DEFAULT N __pthread_mutex_lock
  182. - FUNC GLOBAL DEFAULT N __pthread_mutex_timedlock
  183. - FUNC WEAK DEFAULT N __pthread_mutex_trylock
  184. - FUNC WEAK DEFAULT N __pthread_mutex_unlock
  185. - FUNC WEAK DEFAULT N __pthread_mutexattr_destroy
  186. - FUNC GLOBAL DEFAULT N __pthread_mutexattr_getkind_np
  187. - FUNC GLOBAL DEFAULT N __pthread_mutexattr_getpshared
  188. - FUNC GLOBAL DEFAULT N __pthread_mutexattr_gettype
  189. - FUNC WEAK DEFAULT N __pthread_mutexattr_init
  190. - FUNC GLOBAL DEFAULT N __pthread_mutexattr_setkind_np
  191. - FUNC GLOBAL DEFAULT N __pthread_mutexattr_setpshared
  192. - FUNC WEAK DEFAULT N __pthread_mutexattr_settype
  193. - OBJECT GLOBAL DEFAULT N __pthread_nonstandard_stacks
  194. - FUNC GLOBAL DEFAULT N __pthread_null_sighandler
  195. - OBJECT GLOBAL DEFAULT N __pthread_offsetof_descr
  196. - OBJECT GLOBAL DEFAULT N __pthread_offsetof_pid
  197. - FUNC WEAK DEFAULT N __pthread_once
  198. - FUNC GLOBAL DEFAULT N __pthread_once_fork_child
  199. - FUNC GLOBAL DEFAULT N __pthread_once_fork_parent
  200. - FUNC GLOBAL DEFAULT N __pthread_once_fork_prepare
  201. - FUNC GLOBAL DEFAULT N __pthread_perform_cleanup
  202. - FUNC GLOBAL DEFAULT N __pthread_raise
  203. - FUNC GLOBAL DEFAULT N __pthread_reset_main_thread
  204. - FUNC GLOBAL DEFAULT N __pthread_restart_new
  205. - FUNC WEAK DEFAULT N __pthread_rwlock_destroy
  206. - FUNC WEAK DEFAULT N __pthread_rwlock_init
  207. - FUNC WEAK DEFAULT N __pthread_rwlock_rdlock
  208. - FUNC GLOBAL DEFAULT N __pthread_rwlock_timedrdlock
  209. - FUNC GLOBAL DEFAULT N __pthread_rwlock_timedwrlock
  210. - FUNC WEAK DEFAULT N __pthread_rwlock_tryrdlock
  211. - FUNC WEAK DEFAULT N __pthread_rwlock_trywrlock
  212. - FUNC WEAK DEFAULT N __pthread_rwlock_unlock
  213. - FUNC WEAK DEFAULT N __pthread_rwlock_wrlock
  214. - FUNC GLOBAL DEFAULT N __pthread_rwlockattr_destroy
  215. - FUNC GLOBAL DEFAULT N __pthread_self
  216. - FUNC GLOBAL DEFAULT N __pthread_setcancelstate
  217. - FUNC GLOBAL DEFAULT N __pthread_setcanceltype
  218. - FUNC GLOBAL DEFAULT N __pthread_setconcurrency
  219. - FUNC GLOBAL DEFAULT N __pthread_setschedparam
  220. - FUNC WEAK DEFAULT N __pthread_setspecific
  221. - OBJECT GLOBAL DEFAULT N __pthread_sig_cancel
  222. - OBJECT GLOBAL DEFAULT N __pthread_sig_debug
  223. - OBJECT GLOBAL DEFAULT N __pthread_sig_restart
  224. - FUNC GLOBAL DEFAULT N __pthread_sigaction
  225. - FUNC GLOBAL DEFAULT N __pthread_sighandler
  226. - FUNC GLOBAL DEFAULT N __pthread_sighandler_rt
  227. - FUNC GLOBAL DEFAULT N __pthread_sigwait
  228. - OBJECT GLOBAL DEFAULT N __pthread_sizeof_handle
  229. - OBJECT GLOBAL DEFAULT N __pthread_smp_kernel
  230. - FUNC GLOBAL DEFAULT N __pthread_spin_destroy
  231. - FUNC GLOBAL DEFAULT N __pthread_spin_init
  232. - FUNC GLOBAL DEFAULT N __pthread_spin_lock
  233. - FUNC GLOBAL DEFAULT N __pthread_spin_trylock
  234. - FUNC GLOBAL DEFAULT N __pthread_spin_unlock
  235. - FUNC GLOBAL DEFAULT N __pthread_thread_self
  236. - OBJECT GLOBAL DEFAULT N __pthread_threads_debug
  237. - OBJECT GLOBAL DEFAULT N __pthread_threads_events
  238. - OBJECT GLOBAL DEFAULT N __pthread_threads_max
  239. - FUNC GLOBAL DEFAULT N __pthread_timedsuspend_new
  240. - FUNC GLOBAL DEFAULT N __pthread_unlock
  241. - FUNC GLOBAL DEFAULT N __pthread_wait_for_restart_signal
  242. - FUNC GLOBAL DEFAULT N __register_atfork
  243. + FUNC GLOBAL DEFAULT N __pthread_key_create
  244. + FUNC GLOBAL DEFAULT N __pthread_mutex_destroy
  245. + FUNC GLOBAL DEFAULT N __pthread_mutex_init
  246. + FUNC GLOBAL DEFAULT N __pthread_mutex_lock
  247. + FUNC GLOBAL DEFAULT N __pthread_mutex_trylock
  248. + FUNC GLOBAL DEFAULT N __pthread_mutex_unlock
  249. + FUNC GLOBAL DEFAULT N __pthread_mutexattr_destroy
  250. + FUNC GLOBAL DEFAULT N __pthread_mutexattr_init
  251. + FUNC GLOBAL DEFAULT N __pthread_mutexattr_settype
  252. + FUNC GLOBAL DEFAULT N __pthread_once
  253. + FUNC GLOBAL DEFAULT N __pthread_register_cancel
  254. + FUNC GLOBAL DEFAULT N __pthread_register_cancel_defer
  255. + FUNC GLOBAL DEFAULT N __pthread_rwlock_destroy
  256. + FUNC GLOBAL DEFAULT N __pthread_rwlock_init
  257. + FUNC GLOBAL DEFAULT N __pthread_rwlock_rdlock
  258. + FUNC GLOBAL DEFAULT N __pthread_rwlock_tryrdlock
  259. + FUNC GLOBAL DEFAULT N __pthread_rwlock_trywrlock
  260. + FUNC GLOBAL DEFAULT N __pthread_rwlock_unlock
  261. + FUNC GLOBAL DEFAULT N __pthread_rwlock_wrlock
  262. + FUNC GLOBAL DEFAULT N __pthread_setspecific
  263. + FUNC GLOBAL DEFAULT N __pthread_unregister_cancel
  264. + FUNC GLOBAL DEFAULT N __pthread_unregister_cancel_restore
  265. + FUNC GLOBAL DEFAULT N __pthread_unwind
  266. + FUNC GLOBAL DEFAULT N __pthread_unwind_next
  267. + FUNC WEAK DEFAULT N __pwrite64
  268. + FUNC WEAK DEFAULT N __read
  269. + FUNC GLOBAL DEFAULT UND __register_atfork
  270. + FUNC GLOBAL DEFAULT N __res_state
  271. + TLS GLOBAL DEFAULT UND __resp
  272. + FUNC GLOBAL DEFAULT UND __sched_getparam
  273. + FUNC GLOBAL DEFAULT UND __sched_getscheduler
  274. + FUNC GLOBAL DEFAULT UND __sched_setscheduler
  275. + FUNC WEAK DEFAULT N __send
  276. + FUNC GLOBAL DEFAULT UND __setmntent
  277. FUNC GLOBAL DEFAULT N __sigaction
  278. - OBJECT GLOBAL DEFAULT N __sighandler
  279. - NOTYPE GLOBAL DEFAULT ABS _edata
  280. - NOTYPE GLOBAL DEFAULT ABS _end
  281. - FUNC GLOBAL DEFAULT N _fini
  282. - FUNC GLOBAL DEFAULT N _init
  283. + FUNC GLOBAL DEFAULT UND __statfs
  284. + FUNC GLOBAL DEFAULT UND __sysconf
  285. + FUNC GLOBAL DEFAULT UND __tls_get_addr
  286. + OBJECT GLOBAL DEFAULT UND __vdso_clock_gettime
  287. + FUNC GLOBAL DEFAULT N __vfork
  288. + FUNC WEAK DEFAULT N __wait
  289. + FUNC WEAK DEFAULT N __write
  290. + FUNC GLOBAL DEFAULT UND _dl_allocate_tls
  291. + FUNC GLOBAL DEFAULT UND _dl_allocate_tls_init
  292. + FUNC GLOBAL DEFAULT UND _dl_deallocate_tls
  293. + FUNC GLOBAL DEFAULT UND _dl_get_tls_static_info
  294. + FUNC GLOBAL DEFAULT UND _dl_make_stack_executable
  295. + FUNC GLOBAL DEFAULT UND _exit
  296. FUNC GLOBAL DEFAULT N _pthread_cleanup_pop
  297. FUNC GLOBAL DEFAULT N _pthread_cleanup_pop_restore
  298. FUNC GLOBAL DEFAULT N _pthread_cleanup_push
  299. FUNC GLOBAL DEFAULT N _pthread_cleanup_push_defer
  300. - FUNC GLOBAL DEFAULT N compare_and_swap_is_available
  301. - FUNC GLOBAL DEFAULT N get_eflags
  302. + OBJECT GLOBAL DEFAULT UND _rtld_global
  303. + FUNC GLOBAL DEFAULT UND _setjmp
  304. + FUNC GLOBAL DEFAULT UND abort
  305. + FUNC WEAK DEFAULT N accept
  306. + FUNC GLOBAL DEFAULT UND calloc
  307. + FUNC WEAK DEFAULT N close
  308. + FUNC WEAK DEFAULT N connect
  309. + TLS GLOBAL DEFAULT UND errno
  310. + FUNC GLOBAL DEFAULT UND exit
  311. + FUNC GLOBAL DEFAULT UND fclose
  312. + FUNC WEAK DEFAULT N fcntl
  313. + FUNC WEAK DEFAULT N flockfile
  314. + FUNC GLOBAL DEFAULT UND fopen
  315. + FUNC GLOBAL DEFAULT N fork
  316. + FUNC GLOBAL DEFAULT UND free
  317. + FUNC WEAK DEFAULT N fsync
  318. + FUNC WEAK DEFAULT N ftrylockfile
  319. + FUNC WEAK DEFAULT N funlockfile
  320. + FUNC GLOBAL DEFAULT UND getrlimit
  321. + TLS GLOBAL DEFAULT UND h_errno
  322. + FUNC GLOBAL DEFAULT UND link
  323. FUNC GLOBAL DEFAULT N longjmp
  324. + FUNC WEAK DEFAULT N lseek
  325. + FUNC WEAK DEFAULT N lseek64
  326. + FUNC GLOBAL DEFAULT UND malloc
  327. + FUNC GLOBAL DEFAULT UND memcpy
  328. + FUNC GLOBAL DEFAULT UND mempcpy
  329. + FUNC GLOBAL DEFAULT UND memset
  330. + FUNC GLOBAL DEFAULT UND mktemp
  331. + FUNC GLOBAL DEFAULT UND mmap
  332. + FUNC GLOBAL DEFAULT UND mprotect
  333. + FUNC WEAK DEFAULT N msync
  334. + FUNC GLOBAL DEFAULT UND munmap
  335. + FUNC WEAK DEFAULT N nanosleep
  336. + FUNC WEAK DEFAULT N open
  337. + FUNC WEAK DEFAULT N open64
  338. + FUNC WEAK DEFAULT N pause
  339. + FUNC WEAK DEFAULT N pread
  340. + FUNC WEAK DEFAULT N pread64
  341. + FUNC GLOBAL DEFAULT N pthread_atfork
  342. FUNC GLOBAL DEFAULT N pthread_attr_destroy
  343. + FUNC GLOBAL DEFAULT N pthread_attr_getaffinity_np
  344. FUNC GLOBAL DEFAULT N pthread_attr_getdetachstate
  345. - FUNC WEAK DEFAULT N pthread_attr_getguardsize
  346. + FUNC GLOBAL DEFAULT N pthread_attr_getguardsize
  347. FUNC GLOBAL DEFAULT N pthread_attr_getinheritsched
  348. FUNC GLOBAL DEFAULT N pthread_attr_getschedparam
  349. FUNC GLOBAL DEFAULT N pthread_attr_getschedpolicy
  350. FUNC GLOBAL DEFAULT N pthread_attr_getscope
  351. - FUNC WEAK DEFAULT N pthread_attr_getstack
  352. - FUNC WEAK DEFAULT N pthread_attr_getstacksize
  353. + FUNC GLOBAL DEFAULT N pthread_attr_getstack
  354. + FUNC GLOBAL DEFAULT N pthread_attr_getstackaddr
  355. + FUNC GLOBAL DEFAULT N pthread_attr_getstacksize
  356. FUNC GLOBAL DEFAULT N pthread_attr_init
  357. + FUNC GLOBAL DEFAULT N pthread_attr_setaffinity_np
  358. FUNC GLOBAL DEFAULT N pthread_attr_setdetachstate
  359. - FUNC WEAK DEFAULT N pthread_attr_setguardsize
  360. + FUNC GLOBAL DEFAULT N pthread_attr_setguardsize
  361. FUNC GLOBAL DEFAULT N pthread_attr_setinheritsched
  362. FUNC GLOBAL DEFAULT N pthread_attr_setschedparam
  363. FUNC GLOBAL DEFAULT N pthread_attr_setschedpolicy
  364. FUNC GLOBAL DEFAULT N pthread_attr_setscope
  365. - FUNC WEAK DEFAULT N pthread_attr_setstack
  366. - FUNC WEAK DEFAULT N pthread_attr_setstacksize
  367. + FUNC GLOBAL DEFAULT N pthread_attr_setstack
  368. + FUNC GLOBAL DEFAULT N pthread_attr_setstackaddr
  369. + FUNC GLOBAL DEFAULT N pthread_attr_setstacksize
  370. FUNC GLOBAL DEFAULT N pthread_barrier_destroy
  371. FUNC GLOBAL DEFAULT N pthread_barrier_init
  372. FUNC GLOBAL DEFAULT N pthread_barrier_wait
  373. FUNC GLOBAL DEFAULT N pthread_barrierattr_destroy
  374. + FUNC GLOBAL DEFAULT N pthread_barrierattr_getpshared
  375. FUNC GLOBAL DEFAULT N pthread_barrierattr_init
  376. FUNC GLOBAL DEFAULT N pthread_barrierattr_setpshared
  377. FUNC GLOBAL DEFAULT N pthread_cancel
  378. @@ -193,36 +178,49 @@
  379. FUNC GLOBAL DEFAULT N pthread_cond_timedwait
  380. FUNC GLOBAL DEFAULT N pthread_cond_wait
  381. FUNC GLOBAL DEFAULT N pthread_condattr_destroy
  382. + FUNC GLOBAL DEFAULT N pthread_condattr_getclock
  383. FUNC GLOBAL DEFAULT N pthread_condattr_getpshared
  384. FUNC GLOBAL DEFAULT N pthread_condattr_init
  385. + FUNC GLOBAL DEFAULT N pthread_condattr_setclock
  386. FUNC GLOBAL DEFAULT N pthread_condattr_setpshared
  387. FUNC GLOBAL DEFAULT N pthread_create
  388. FUNC GLOBAL DEFAULT N pthread_detach
  389. FUNC GLOBAL DEFAULT N pthread_equal
  390. FUNC GLOBAL DEFAULT N pthread_exit
  391. + FUNC GLOBAL DEFAULT N pthread_getaffinity_np
  392. FUNC GLOBAL DEFAULT N pthread_getattr_np
  393. - FUNC WEAK DEFAULT N pthread_getconcurrency
  394. + FUNC GLOBAL DEFAULT N pthread_getconcurrency
  395. + FUNC GLOBAL DEFAULT N pthread_getcpuclockid
  396. FUNC GLOBAL DEFAULT N pthread_getschedparam
  397. FUNC GLOBAL DEFAULT N pthread_getspecific
  398. FUNC GLOBAL DEFAULT N pthread_join
  399. FUNC GLOBAL DEFAULT N pthread_key_create
  400. FUNC GLOBAL DEFAULT N pthread_key_delete
  401. FUNC GLOBAL DEFAULT N pthread_kill
  402. - FUNC WEAK DEFAULT N pthread_kill_other_threads_np
  403. + FUNC GLOBAL DEFAULT N pthread_kill_other_threads_np
  404. + FUNC GLOBAL DEFAULT N pthread_mutex_consistent_np
  405. FUNC GLOBAL DEFAULT N pthread_mutex_destroy
  406. + FUNC GLOBAL DEFAULT N pthread_mutex_getprioceiling
  407. FUNC GLOBAL DEFAULT N pthread_mutex_init
  408. FUNC GLOBAL DEFAULT N pthread_mutex_lock
  409. + FUNC GLOBAL DEFAULT N pthread_mutex_setprioceiling
  410. FUNC GLOBAL DEFAULT N pthread_mutex_timedlock
  411. FUNC GLOBAL DEFAULT N pthread_mutex_trylock
  412. FUNC GLOBAL DEFAULT N pthread_mutex_unlock
  413. FUNC GLOBAL DEFAULT N pthread_mutexattr_destroy
  414. FUNC WEAK DEFAULT N pthread_mutexattr_getkind_np
  415. - FUNC WEAK DEFAULT N pthread_mutexattr_getpshared
  416. - FUNC WEAK DEFAULT N pthread_mutexattr_gettype
  417. + FUNC GLOBAL DEFAULT N pthread_mutexattr_getprioceiling
  418. + FUNC GLOBAL DEFAULT N pthread_mutexattr_getprotocol
  419. + FUNC GLOBAL DEFAULT N pthread_mutexattr_getpshared
  420. + FUNC GLOBAL DEFAULT N pthread_mutexattr_getrobust_np
  421. + FUNC GLOBAL DEFAULT N pthread_mutexattr_gettype
  422. FUNC GLOBAL DEFAULT N pthread_mutexattr_init
  423. FUNC WEAK DEFAULT N pthread_mutexattr_setkind_np
  424. - FUNC WEAK DEFAULT N pthread_mutexattr_setpshared
  425. - FUNC WEAK DEFAULT N pthread_mutexattr_settype
  426. + FUNC GLOBAL DEFAULT N pthread_mutexattr_setprioceiling
  427. + FUNC GLOBAL DEFAULT N pthread_mutexattr_setprotocol
  428. + FUNC GLOBAL DEFAULT N pthread_mutexattr_setpshared
  429. + FUNC GLOBAL DEFAULT N pthread_mutexattr_setrobust_np
  430. + FUNC GLOBAL DEFAULT N pthread_mutexattr_settype
  431. FUNC GLOBAL DEFAULT N pthread_once
  432. FUNC GLOBAL DEFAULT N pthread_rwlock_destroy
  433. FUNC GLOBAL DEFAULT N pthread_rwlock_init
  434. @@ -240,27 +238,35 @@
  435. FUNC GLOBAL DEFAULT N pthread_rwlockattr_setkind_np
  436. FUNC GLOBAL DEFAULT N pthread_rwlockattr_setpshared
  437. FUNC GLOBAL DEFAULT N pthread_self
  438. + FUNC GLOBAL DEFAULT N pthread_setaffinity_np
  439. FUNC GLOBAL DEFAULT N pthread_setcancelstate
  440. FUNC GLOBAL DEFAULT N pthread_setcanceltype
  441. - FUNC WEAK DEFAULT N pthread_setconcurrency
  442. - FUNC GLOBAL DEFAULT N pthread_setegid_np
  443. - FUNC GLOBAL DEFAULT N pthread_seteuid_np
  444. - FUNC GLOBAL DEFAULT N pthread_setgid_np
  445. - FUNC GLOBAL DEFAULT N pthread_setregid_np
  446. - FUNC GLOBAL DEFAULT N pthread_setresgid_np
  447. - FUNC GLOBAL DEFAULT N pthread_setresuid_np
  448. - FUNC GLOBAL DEFAULT N pthread_setreuid_np
  449. + FUNC GLOBAL DEFAULT N pthread_setconcurrency
  450. FUNC GLOBAL DEFAULT N pthread_setschedparam
  451. + FUNC GLOBAL DEFAULT N pthread_setschedprio
  452. FUNC GLOBAL DEFAULT N pthread_setspecific
  453. - FUNC GLOBAL DEFAULT N pthread_setuid_np
  454. FUNC GLOBAL DEFAULT N pthread_sigmask
  455. - FUNC WEAK DEFAULT N pthread_spin_destroy
  456. - FUNC WEAK DEFAULT N pthread_spin_init
  457. - FUNC WEAK DEFAULT N pthread_spin_lock
  458. - FUNC WEAK DEFAULT N pthread_spin_trylock
  459. - FUNC WEAK DEFAULT N pthread_spin_unlock
  460. + FUNC GLOBAL DEFAULT N pthread_spin_destroy
  461. + FUNC GLOBAL DEFAULT N pthread_spin_init
  462. + FUNC GLOBAL DEFAULT N pthread_spin_lock
  463. + FUNC GLOBAL DEFAULT N pthread_spin_trylock
  464. + FUNC GLOBAL DEFAULT N pthread_spin_unlock
  465. FUNC GLOBAL DEFAULT N pthread_testcancel
  466. + FUNC GLOBAL DEFAULT N pthread_timedjoin_np
  467. + FUNC GLOBAL DEFAULT N pthread_tryjoin_np
  468. + FUNC GLOBAL DEFAULT N pthread_yield
  469. + FUNC WEAK DEFAULT N pwrite
  470. + FUNC WEAK DEFAULT N pwrite64
  471. FUNC GLOBAL DEFAULT N raise
  472. + FUNC WEAK DEFAULT N read
  473. + FUNC GLOBAL DEFAULT UND realloc
  474. + FUNC WEAK DEFAULT N recv
  475. + FUNC WEAK DEFAULT N recvfrom
  476. + FUNC WEAK DEFAULT N recvmsg
  477. + FUNC GLOBAL DEFAULT UND sched_get_priority_max
  478. + FUNC GLOBAL DEFAULT UND sched_get_priority_min
  479. + FUNC GLOBAL DEFAULT UND sched_setparam
  480. + FUNC GLOBAL DEFAULT UND sched_yield
  481. FUNC GLOBAL DEFAULT N sem_close
  482. FUNC GLOBAL DEFAULT N sem_destroy
  483. FUNC GLOBAL DEFAULT N sem_getvalue
  484. @@ -271,8 +277,23 @@
  485. FUNC GLOBAL DEFAULT N sem_trywait
  486. FUNC GLOBAL DEFAULT N sem_unlink
  487. FUNC GLOBAL DEFAULT N sem_wait
  488. - FUNC GLOBAL DEFAULT N set_eflags
  489. - FUNC GLOBAL DEFAULT N sigaction
  490. - FUNC GLOBAL DEFAULT N siglongjmp
  491. - FUNC GLOBAL DEFAULT N sigwait
  492. - FUNC GLOBAL DEFAULT N testandset
  493. + FUNC WEAK DEFAULT N send
  494. + FUNC WEAK DEFAULT N sendmsg
  495. + FUNC WEAK DEFAULT N sendto
  496. + FUNC WEAK DEFAULT N sigaction
  497. + FUNC WEAK DEFAULT N siglongjmp
  498. + FUNC WEAK DEFAULT N sigwait
  499. + FUNC GLOBAL DEFAULT UND sscanf
  500. + FUNC GLOBAL DEFAULT UND strcmp
  501. + FUNC GLOBAL DEFAULT UND strlen
  502. + FUNC GLOBAL DEFAULT N system
  503. + FUNC WEAK DEFAULT N tcdrain
  504. + FUNC GLOBAL DEFAULT UND tdelete
  505. + FUNC GLOBAL DEFAULT UND tfind
  506. + FUNC GLOBAL DEFAULT UND tsearch
  507. + FUNC GLOBAL DEFAULT UND twalk
  508. + FUNC GLOBAL DEFAULT UND unlink
  509. + FUNC WEAK DEFAULT N vfork
  510. + FUNC WEAK DEFAULT N wait
  511. + FUNC WEAK DEFAULT N waitpid
  512. + FUNC WEAK DEFAULT N write
  513. And uclibc_unrefd.lst is:
  514. __compare_and_swap
  515. __flockfilelist
  516. __fresetlockfiles
  517. __funlockfilelist
  518. __linuxthreads_create_event
  519. __linuxthreads_death_event
  520. __linuxthreads_initial_report_events
  521. __linuxthreads_pthread_key_2ndlevel_size
  522. __linuxthreads_pthread_keys_max
  523. __linuxthreads_pthread_sizeof_descr
  524. __linuxthreads_pthread_threads_max
  525. __linuxthreads_reap_event
  526. __linuxthreads_version
  527. __pthread_alt_lock
  528. __pthread_alt_timedlock
  529. __pthread_alt_unlock
  530. __pthread_attr_destroy
  531. __pthread_attr_getdetachstate
  532. __pthread_attr_getguardsize
  533. __pthread_attr_getinheritsched
  534. __pthread_attr_getschedparam
  535. __pthread_attr_getschedpolicy
  536. __pthread_attr_getscope
  537. __pthread_attr_getstack
  538. __pthread_attr_getstacksize
  539. __pthread_attr_init
  540. __pthread_attr_setdetachstate
  541. __pthread_attr_setguardsize
  542. __pthread_attr_setinheritsched
  543. __pthread_attr_setschedparam
  544. __pthread_attr_setschedpolicy
  545. __pthread_attr_setscope
  546. __pthread_attr_setstack
  547. __pthread_attr_setstacksize
  548. __pthread_barrierattr_getpshared
  549. __pthread_compare_and_swap
  550. __pthread_cond_broadcast
  551. __pthread_cond_destroy
  552. __pthread_cond_init
  553. __pthread_cond_signal
  554. __pthread_cond_timedwait
  555. __pthread_cond_wait
  556. __pthread_condattr_destroy
  557. __pthread_condattr_init
  558. __pthread_create
  559. __pthread_destroy_specifics
  560. __pthread_do_exit
  561. __pthread_equal
  562. __pthread_exit_code
  563. __pthread_exit_requested
  564. __pthread_find_self
  565. __pthread_functions
  566. __pthread_getconcurrency
  567. __pthread_getschedparam
  568. __pthread_getspecific
  569. __pthread_handles
  570. __pthread_handles_num
  571. __pthread_has_cas
  572. __pthread_init_max_stacksize
  573. __pthread_initial_thread
  574. __pthread_initial_thread_bos
  575. __pthread_initialize_manager
  576. __pthread_internal_tsd_address
  577. __pthread_internal_tsd_get
  578. __pthread_internal_tsd_set
  579. __pthread_key_create
  580. __pthread_kill_other_threads_np
  581. __pthread_last_event
  582. __pthread_lock
  583. __pthread_main_thread
  584. __pthread_manager
  585. __pthread_manager_adjust_prio
  586. __pthread_manager_event
  587. __pthread_manager_reader
  588. __pthread_manager_request
  589. __pthread_manager_sighandler
  590. __pthread_manager_thread
  591. __pthread_manager_thread_bos
  592. __pthread_manager_thread_tos
  593. __pthread_max_stacksize
  594. __pthread_mutex_destroy
  595. __pthread_mutex_timedlock
  596. __pthread_mutexattr_destroy
  597. __pthread_mutexattr_getkind_np
  598. __pthread_mutexattr_getpshared
  599. __pthread_mutexattr_gettype
  600. __pthread_mutexattr_init
  601. __pthread_mutexattr_setkind_np
  602. __pthread_mutexattr_setpshared
  603. __pthread_mutexattr_settype
  604. __pthread_nonstandard_stacks
  605. __pthread_null_sighandler
  606. __pthread_offsetof_descr
  607. __pthread_offsetof_pid
  608. __pthread_once_fork_child
  609. __pthread_once_fork_parent
  610. __pthread_once_fork_prepare
  611. __pthread_perform_cleanup
  612. __pthread_raise
  613. __pthread_reset_main_thread
  614. __pthread_restart_new
  615. __pthread_rwlock_destroy
  616. __pthread_rwlock_init
  617. __pthread_rwlock_rdlock
  618. __pthread_rwlock_timedrdlock
  619. __pthread_rwlock_timedwrlock
  620. __pthread_rwlock_tryrdlock
  621. __pthread_rwlock_trywrlock
  622. __pthread_rwlock_unlock
  623. __pthread_rwlock_wrlock
  624. __pthread_rwlockattr_destroy
  625. __pthread_self
  626. __pthread_setcancelstate
  627. __pthread_setcanceltype
  628. __pthread_setconcurrency
  629. __pthread_setschedparam
  630. __pthread_setspecific
  631. __pthread_sig_cancel
  632. __pthread_sig_debug
  633. __pthread_sig_restart
  634. __pthread_sigaction
  635. __pthread_sighandler
  636. __pthread_sighandler_rt
  637. __pthread_sigwait
  638. __pthread_sizeof_handle
  639. __pthread_smp_kernel
  640. __pthread_spin_destroy
  641. __pthread_spin_init
  642. __pthread_spin_lock
  643. __pthread_spin_trylock
  644. __pthread_spin_unlock
  645. __pthread_thread_self
  646. __pthread_threads_debug
  647. __pthread_threads_events
  648. __pthread_threads_max
  649. __pthread_timedsuspend_new
  650. __pthread_unlock
  651. __pthread_wait_for_restart_signal
  652. __register_atfork
  653. __sigaction
  654. __sighandler
  655. compare_and_swap_is_available
  656. get_eflags
  657. pthread_attr_getguardsize
  658. pthread_attr_getstack
  659. pthread_attr_getstacksize
  660. pthread_attr_setguardsize
  661. pthread_attr_setstack
  662. pthread_attr_setstacksize
  663. pthread_barrier_destroy
  664. pthread_barrier_init
  665. pthread_barrier_wait
  666. pthread_barrierattr_destroy
  667. pthread_barrierattr_init
  668. pthread_barrierattr_setpshared
  669. pthread_cancel
  670. pthread_condattr_getpshared
  671. pthread_condattr_setpshared
  672. pthread_create
  673. pthread_detach
  674. pthread_getattr_np
  675. pthread_getconcurrency
  676. pthread_getspecific
  677. pthread_join
  678. pthread_key_create
  679. pthread_key_delete
  680. pthread_kill
  681. pthread_kill_other_threads_np
  682. pthread_mutex_timedlock
  683. pthread_mutexattr_destroy
  684. pthread_mutexattr_getkind_np
  685. pthread_mutexattr_getpshared
  686. pthread_mutexattr_gettype
  687. pthread_mutexattr_init
  688. pthread_mutexattr_setkind_np
  689. pthread_mutexattr_setpshared
  690. pthread_mutexattr_settype
  691. pthread_rwlock_destroy
  692. pthread_rwlock_init
  693. pthread_rwlock_rdlock
  694. pthread_rwlock_timedrdlock
  695. pthread_rwlock_timedwrlock
  696. pthread_rwlock_tryrdlock
  697. pthread_rwlock_trywrlock
  698. pthread_rwlock_unlock
  699. pthread_rwlock_wrlock
  700. pthread_rwlockattr_destroy
  701. pthread_rwlockattr_getkind_np
  702. pthread_rwlockattr_getpshared
  703. pthread_rwlockattr_init
  704. pthread_rwlockattr_setkind_np
  705. pthread_rwlockattr_setpshared
  706. pthread_setconcurrency
  707. pthread_setegid_np
  708. pthread_seteuid_np
  709. pthread_setgid_np
  710. pthread_setregid_np
  711. pthread_setresgid_np
  712. pthread_setresuid_np
  713. pthread_setreuid_np
  714. pthread_setspecific
  715. pthread_setuid_np
  716. pthread_sigmask
  717. pthread_spin_destroy
  718. pthread_spin_init
  719. pthread_spin_lock
  720. pthread_spin_trylock
  721. pthread_spin_unlock
  722. pthread_testcancel
  723. sem_close
  724. sem_destroy
  725. sem_getvalue
  726. sem_init
  727. sem_open
  728. sem_post
  729. sem_timedwait
  730. sem_trywait
  731. sem_unlink
  732. sem_wait
  733. set_eflags
  734. testandset