On Ubuntu 11.10 "Oneiric" with gcc 4.6.1, compiling the btrfs tools from git
fails for me with the following error:
[lenz@metis btrfs-progs]% make
bash version.sh
gcc -lpthread -g -Werror -Os -o btrfs btrfs.o btrfs_cmds.o scrub.o \
ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o root-tree.o
dir-item.o file-item.o inode-item.o inode-map.o crc32c.o rbtree.o
extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o btrfslabel.o -luuid
scrub.o: In function `scrub_start':
/space/tmp/btrfs-progs/scrub.c:1342: undefined reference to `pthread_create'
/space/tmp/btrfs-progs/scrub.c:1360: undefined reference to `pthread_create'
/space/tmp/btrfs-progs/scrub.c:1374: undefined reference to `pthread_join'
/space/tmp/btrfs-progs/scrub.c:1430: undefined reference to `pthread_cancel'
/space/tmp/btrfs-progs/scrub.c:1432: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make: *** [btrfs] Error 1
The following change fixed this for me, not sure if it's the appropriate approach:
diff --git a/Makefile b/Makefile
index edee1a0..9e3a06f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
CC = gcc
AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2
-CFLAGS = -g -Werror -Os
+CFLAGS = -g -Werror -Os -pthread
objects = ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o \
root-tree.o dir-item.o file-item.o inode-item.o \
inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o \
--
Lenz Grimmer <lenz@xxxxxxxxxxx> - http://www.lenzg.net/
Attachment:
signature.asc
Description: OpenPGP digital signature
