# libpq baut nicht, wegen +threads

## Mageta

HejHo,

ich hab mal ne kleine Frage. Ein Problem is es zwar nicht direkt aber ich wunder mich.

Ich wollte heute, nachdem ich am Samstag auf den CLT einen Vortrag ueber den qt-creator gehoert hab, den selben mal auf meinem System bauen. Dazu muss ich dev-db/libpq-8.0.15 bauen.

Ich hab in meiner make.conf automatisch threads als use-flag aktiviert.

Normaler weiser pullt emerge nicht supportete Flags doch automatisch so weg, das die nicht installiert werden koennen, wenn sie nicht supportet werden.

Nu kommt aber waerend dem ./configure von libpq (von emerge ausgefuehrt  :Wink: ) diese Meldung:

```
*** Thread test program failed.  Your platform is not thread-safe.

*** Check the file 'config.log'for the exact reason.

***

*** You can use the configure option --enable-thread-safety-force

*** to force threads to be enabled.  However, you must then run

*** the program in src/tools/thread and add locking function calls

*** to your applications to guarantee thread safety.
```

Der Bau bricht nat. ab

```
* ERROR: dev-db/libpq-8.0.15 failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_compile

 *             environment, line 2504:  Called die

 * The specific snippet of code:

 *       ./configure --prefix=/usr --includedir=/usr/include/postgresql/libpq-${SLOT} --sysconfdir=/etc/postgresql --mandir=/usr/share/man --host=${CHOST} --with-docdir=/usr/share/doc/${PF} --libdir=/usr/$(get_libdir) --enable-depend $(use_with kerberos krb5) $(use_enable nls ) $(use_with pam) --without-perl $(use_enable pg-intdatetime integer-datetimes ) --without-python $(use_with readline) $(use_with ssl openssl) --without-tcl $(use_enable threads thread-safety ) $(use_with zlib) || die "configure failed";

 *  The die message:

 *   configure failed

 * 

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/dev-db/libpq-8.0.15/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/dev-db/libpq-8.0.15/temp/environment'.
```

Hm da denk ich mir.. also eigentlich sollte das ja eh vermieden werden von der portage und zum anderen i636 ist nicht thread-safe? Was?

Hat Intel die TSL-Anweisungen aus ihren Kernen gekickt, hab ich was verpasst?  :Very Happy: 

Waere toll wenn mir da jemand ne Antwort geben koennte.

Wie gesagt, gebaut hab ich's.. hab einfach thread fuer das Packet deaktiviert, danach lief es.

grüße,

Mageta

----------

## Necoro

Schau dir halt mal die config.log an.

Configure macht viele Tests, indem es Testprogramme compiliert und eventuell auch ausführt. Sollte das schiefgehen, wertet es den Test als fehlgeschlagen. -- Und das compilieren kann ja auch aus anderem Grunde als dem zu testenden Feature fehlschlagen. Also mal die log anschauen, was dort die exakte Fehlermeldung ist.

----------

## Scorpion_DE

Hi,

auch wenn es keine wirkliche Lösung für den fehlgeschlagegen Build mit +threads ist, so kannst du für einzelne Pakete einen Eintrag in der Datei /etc/portage/package.use machen. In deinem Fall wäre das.

```
dev-db/libpq -threads
```

Dann kannst du das USE Flag threads global in der /etc/make.conf stehen lassen und deaktivierst es nur für den build der libq.

Gruß Scorpion

----------

## Mageta

@Necoro: ok, naja gut so genau wusst ich das dann nicht. Muss ich mal machen wenn ich mal lust und zeit zu hab.

@Scorpion_DE: ja, so hab ich das auch gemacht  :Wink: 

----------

## Gibheer

Warum steigst du nicht um auf dev-db/postgresql-server? Da brauchst du dann kein libpq mehr und hast zu dem eine einigermassen aktuelle Version (8.3.5 im Gegensatz zu 8.3.1)

----------

