From owner-freebsd-threads@FreeBSD.ORG Fri Jun 15 17:14:20 2007 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5942716A46B for ; Fri, 15 Jun 2007 17:14:20 +0000 (UTC) (envelope-from frank@pinky.sax.de) Received: from pinky.frank-behrens.de (pinky.frank-behrens.de [82.139.199.24]) by mx1.freebsd.org (Postfix) with ESMTP id A0A2E13C458 for ; Fri, 15 Jun 2007 17:14:19 +0000 (UTC) (envelope-from frank@pinky.sax.de) Received: from [192.168.20.32] (sun.behrens [192.168.20.32]) by pinky.frank-behrens.de (8.14.1/8.14.1) with ESMTP-MSA id l5FH1KuJ047078 (version=TLSv1/SSLv3 cipher=DES-CBC3-SHA bits=168 verify=NO) for ; Fri, 15 Jun 2007 19:01:20 +0200 (CEST) (envelope-from frank@pinky.sax.de) Message-Id: <200706151701.l5FH1KuJ047078@pinky.frank-behrens.de> From: "Frank Behrens" To: freebsd-threads@freebsd.org Date: Fri, 15 Jun 2007 19:01:19 +0200 MIME-Version: 1.0 Priority: normal X-mailer: Pegasus Mail for Windows (4.31, DE v4.31 R1) Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body X-Hashcash: 1:24:070615:freebsd-threads@freebsd.org::PXNA/dIScGE17OPJ:0000001hSn0 Subject: Linking to pthread library: undefined reference X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jun 2007 17:14:20 -0000 Hi, I could not find any information in the developers handbook, so I ask here for support. I try to link an milter (sendmail mail filter) test application and get an error I do not understand. I use FreeBSD 6.2-STABLE-200705211513 with an userland from May-03. In my Makefile I have: CFLAGS+= -I/usr/local/include -std=c99 -pthread -v LDADD+= -L/usr/local/lib -lmilter This gives linker command: cc -O2 -pipe -fno-strict-aliasing -march=pentium4 -I/usr/local/include -std=c99 -pthread -v -g - DDEBUG=1 -O1 -fno-omit-frame-pointer -Wsystem-headers -Wall -Wno-format-y2k -W - Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn- type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -Wunused-parameter - Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls -o fmilter fmilter.o - L/usr/local/lib -lmilter Using built-in specs. Configured with: FreeBSD/i386 system compiler Thread model: posix gcc version 3.4.6 [FreeBSD] 20060305 /usr/bin/ld -V -dynamic-linker /libexec/ld-elf.so.1 -o fmilter /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtbegin.o -L/usr/local/lib -L/usr/lib fmilter.o -lmilter -lgcc -lpthread -lc -lgcc /usr/lib/crtend.o /usr/lib/crtn.o GNU ld version 2.15 [FreeBSD] 2004-05-23 Supported emulations: elf_i386_fbsd /usr/lib/libmilter.so: undefined reference to `pthread_detach' In my opinion the symbol should be found in /usr/lib/libpthread.so@ -> /lib/libpthread.so.2 When I look into the libraries I see > objdump -T /usr/lib/libmilter.so | fgrep detach 00000000 D *UND* 00000000 pthread_detach > objdump -T /usr/lib/libpthread.so | fgrep pthread_detach 000077d4 w DF .text 000003a4 LIBTHREAD_1_0 pthread_detach 000077d4 g DF .text 000003a4 LIBTHREAD_1_0 _pthread_detach Did I make something wrong? I guess yes, but what? Thanks for your help and best regards, Frank -- Frank Behrens, Osterwieck, Germany PGP-key 0x5B7C47ED on public servers available.