Shared-mime-info won't compile

Nikola Lecic nlecic at EUnet.yu
Mon Aug 20 17:47:48 PDT 2007


On Mon, 20 Aug 2007 16:07:07 -0700 (PDT)
David LeCount <snailboy1 at yahoo.com> wrote:

> I've been having a problem for a long time trying to
> compile the shared-mime-info port. Below is the error
> I'm getting. I have tried recompiling libxml2 and
> everything shared-mime-info depends on.
> 
> gmake[1]: Entering directory
> `/usr/ports/misc/shared-mime-info/work/shared-mime-info-0.22'
> cc -DHAVE_CONFIG_H -I. -I/usr/local/include/libxml2
> -I/usr/local/include -I/usr/local/include/glib-2.0
> -I/usr/local/lib/glib-2.0/include   
> -I/usr/local/include -I/usr/local/include/libxml2
> -I/usr/local/include -I/usr/local/include/glib-2.0
> -I/usr/local/lib/glib-2.0/include   -g -O2 -pipe 
> -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wwrite-strings -MT
> update_mime_database-update-mime-database.o -MD -MP
> -MF
> .deps/update_mime_database-update-mime-database.Tpo -c
> -o update_mime_database-update-mime-database.o `test
> -f 'update-mime-database.c' || echo
> './'`update-mime-database.c
> mv -f
> .deps/update_mime_database-update-mime-database.Tpo
> .deps/update_mime_database-update-mime-database.Po
> cc -I/usr/local/include/libxml2 -I/usr/local/include
> -I/usr/local/include/glib-2.0
> -I/usr/local/lib/glib-2.0/include   -g -O2 -pipe 
> -Wall -Wstrict-prototypes -Wmissing-prototypes
> -Wwrite-strings  -L/usr/local/lib -o
> update-mime-database
> update_mime_database-update-mime-database.o
> -L/usr/local/lib -lxml2 -lglib-2.0 -liconv   
> /usr/local/lib/libxml2.so: undefined reference to
> `pthread_equal'

Hello David,

Just to be sure: your ports tree is up-to-date, you didn't install
textproc/libxml2 altering WITH_THREADS option and you don't have
anything threads-related in /etc/make.conf or somewhere else?

In that case this joyfully written PR can certainly help:

  http://www.freebsd.org/cgi/query-pr.cgi?pr=threads/113666

(add -lc_r in share-mime-info's Makefile as explained). Besides that,
keep an eye on that PR since answers will surely be relevant for you.

Of course, you can artificially add -pthread among C compiler flags,
like this:

  # portupgrade -M 'CFLAGS=-pthread' shared-mime-info

(if you use portupgrade) or like this:

  # cd /usr/ports/misc/shared-mime-info
  # make CFLAGS=-pthread

but I'm not certain about the consequences. Better try the solution
from the aforementioned PR.

Nikola Lečić


More information about the freebsd-questions mailing list