# how to build libthr except other components of 'world'



## UnixStudier (Nov 17, 2009)

I checkout FreeBSDâ€˜s current source codes to my /usr/src, and use command

```
make buildworld
```
    in directory /usr/src to build a world.I want to do something debug to lib /usr/src/lib/libthr.If I modified some files in /usr/src/lib/libthr/thread, how could I build libthr except other components of world?
   If I use 

```
make buildworld
```
in dirctory /usr/src,it rebuilt all world .It takes time too long.
   btw,I execute command

```
make
```
   in /usr/src/lib/libthr get this :

```
cc -O2 -fno-strict-aliasing -pipe  -DPTHREAD_KERNEL -I/usr/src/lib/libthr/../libc/include -I/usr/src/lib/libthr/thread  -I/usr/src/lib
/libthr/../../include -I/usr/src/lib/libthr/arch/i386/include -I/usr/src/lib/libthr/sys -I/usr/src/lib/libthr/../../libexec/rtld-elf -I/usr
/src/lib/libthr/../../libexec/rtld-elf/i386 -I/usr/src/lib/libthr/../libthread_db -Winline -D_PTHREADS_INVARIANTS -DSYSCALL_COMPAT -Wsystem-
headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized 
-Wno-pointer-sign -c /usr/src/lib/libthr/arch/i386/i386/pthread_md.c
In file included from /usr/src/lib/libthr/arch/i386/i386/pthread_md.c:33:
/usr/src/lib/libthr/../../include/string.h:86: warning: no previous prototype for 'strdup'
/usr/src/lib/libthr/../../include/string.h: In function 'strdup':
/usr/src/lib/libthr/../../include/string.h:86: error: expected declaration specifiers before '__malloc_like'
/usr/src/lib/libthr/../../include/string.h:96: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:101: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:104: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__malloc_like'
/usr/src/lib/libthr/../../include/string.h:105: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:108: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:110: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:111: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:118: warning: '__pure__' attribute ignored
/usr/src/lib/libthr/../../include/string.h:119: warning: '__pure__' attribute ignored
In file included from /usr/src/lib/libthr/arch/i386/i386/pthread_md.c:34:
/usr/src/lib/libthr/../../libexec/rtld-elf/rtld_tls.h:60: error: storage class specified for parameter '_rtld_allocate_tls'
/usr/src/lib/libthr/../../libexec/rtld-elf/rtld_tls.h:67: error: storage class specified for parameter '_rtld_free_tls'
In file included from /usr/src/lib/libthr/arch/i386/include/pthread_md.h:36,
                 from /usr/src/lib/libthr/arch/i386/i386/pthread_md.c:36:
/usr/src/lib/libthr/../../include/stddef.h:45: error: storage class specified for parameter 'ptrdiff_t'
/usr/src/lib/libthr/../../include/stddef.h:49: error: storage class specified for parameter 'rune_t'
/usr/src/lib/libthr/../../include/stddef.h:61: error: storage class specified for parameter 'wchar_t'
In file included from /usr/src/lib/libthr/arch/i386/i386/pthread_md.c:36:
/usr/src/lib/libthr/arch/i386/include/pthread_md.h:52: warning: empty declaration
/usr/src/lib/libthr/arch/i386/include/pthread_md.h:88: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
/usr/src/lib/libthr/arch/i386/include/pthread_md.h:95: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
/usr/src/lib/libthr/arch/i386/include/pthread_md.h:102: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
/usr/src/lib/libthr/arch/i386/i386/pthread_md.c:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
/usr/src/lib/libthr/arch/i386/i386/pthread_md.c:54: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
/usr/src/lib/libthr/arch/i386/i386/pthread_md.c:57: error: old-style parameter declarations in prototyped function definition
/usr/src/lib/libthr/../../include/string.h:86: error: parameter name omitted
/usr/src/lib/libthr/arch/i386/i386/pthread_md.c:57: error: expected '{' at end of input
*** Error code 1

Stop in /usr/src/lib/libthr.
```
----------------------------------
thanks.


----------



## crsd (Nov 17, 2009)

try `# make cleandir; make obj; make depend; make`


----------



## UnixStudier (Nov 17, 2009)

crsd said:
			
		

> try `# make cleandir; make obj; make depend; make`



I try it in /usr/src,but it does not work.


----------



## crsd (Nov 17, 2009)

You don't try it in /usr/src; try it in /usr/src/lib/libthr

Or just do full `# make buildworld`


----------



## UnixStudier (Nov 17, 2009)

I use command :
`# make -DNOCLEAN _libraries`

in directory /usr/src to build  libthr.Its time is not too long me.


----------

