# wine auf einem 64 Bit Gentoo

## frank9999

Hallo,

ich habe seit kurzem das Problem das ich fast keine Windows Progamme mehr ausführen kann, auf der Console finde ich das folgende:

libpng warning: Application built with libpng-1.6.8 but running with 1.5.15

wine: Unhandled exception 0x0eedfade in thread 9 at address 0x7bcbe000:0x7b83d8b2 (thread 0009), starting debugger...

Installiert ist:

eix -In libpng

[I] media-libs/libpng

     Available versions:  

     (1.2)  1.2.50 1.2.50-r1

     (0)    1.5.15 1.5.17-r1 ~1.6.6(0/16) ~1.6.7(0/16) 1.6.8(0/16)

     (1.5)  1.5.17-r15

       {apng neon static-libs ABI_MIPS="n32 n64 o32" ABI_X86="32 64 x32"}

     Installed versions:  1.2.50-r1(1.2)(02:46:13 12.01.2014)(ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32") 1.6.8(14:36:38 11.01.2014)(apng -neon -static-libs ABI_MIPS="-n32 -n64 -o32" ABI_X86="64 -32 -x32")

     Homepage:            http://www.libpng.org/

     Description:         Portable Network Graphics library

Eine suche ergab dann noch das folgende:

locate libpng15

/usr/lib32/libpng15.so

/usr/lib32/libpng15.so.15

/usr/lib32/libpng15.so.15.15.0

/usr/lib32/pkgconfig/libpng15.pc

equery b /usr/lib32/libpng15.so

 * Searching for /usr/lib32/libpng15.so ... 

app-emulation/emul-linux-x86-baselibs-20131008-r6 (/usr/lib32/libpng15.so.15.15.0)

app-emulation/emul-linux-x86-baselibs-20131008-r6 (/usr/lib32/libpng15.so -> libpng15.so.15.15.0)

Ok, also per Source libpng-1.6.8 und aus den emul-linux-x86-baselibs kommt dann also die alte 1.5.15er Version.

Es gibt zwar eine neuere Version der emul-linux-x86-baselibs, aber auch dort ist keine neuere libpng enthalten.

Muss ich nun warten bis es eine neuere emul-linux-x86-baselibs Version gibt, oder kann/muss ich nun zukünftig libpng selber bauen mit 32 Bit support?

Falls ja, geht das dann so "media-libs/libpng abi_86_32" in package use eintragen?

Welche Nebenwirkungen hat das ganze dann außer libpng15 und libpng16 unter /usr/lib32 ?

Frank

----------

## Christian99

Nach meiner Erefahrung sind diese Warnungen ohne Auswirkungen. Das kommt daher, dass du libpng-1.6.8 installiert hast, und deren headerdateien werden zum compilieren von wine verwendet, aber die bibliotheken von emul-linux-x86-baselibs-20131008-r6 bei der ausführung verwendet werden.

Theoretisch sollte es so sein das irgendwann einmal abi_x86_32 die emul bibliotheken ersetzen kann, aber abi_x86_32 ist noch nicht für alle ebuilds, die in den baselibs vorhanden sind implementiert (ich hab das vor 2-3 wochen erst probiert).

wenn du möchtest, könntest du libpng in der version libpng-1.5.15 installieren und dann wine neu bauen, wodurch diese meldungen verschwinden sollten, aber wie gesagt, meiner erfahrung nach ist das nicht das problem, und die unhandeled exception hat eher eine andere Ursache.

----------

## frank9999

Danke Christian für die Infos.

Ich habs jetzt einfach mal ausprobiert und libpng wieder auf die alter Version 1.5.17-r1 downgegraded und wine Neugebaut:

Die Windows Programme laufen nun wieder alle!

Anschliessend wieder libpng auf die aktuelle Version aktualisiert und wine ebenfalls reemerged:

Warnmeldung und anschließend kommt wieder die Exception.

Da muss ich wohl nun wohl warten bis die emul baselibs aktualisiert werden ...

Schade das das mit den 32 Bit Libs nicht so einfach ist wie ich es mir zunächst vorgestellt hatte...

----------

## Christian99

Gut, dann liegt es bei dir tatsächlich an den libpng versionen. bei meinen meisten wine programmen hab ich tonnenweise solche meldungen ohne das sie abstürzen. bei denen die nicht gehen hab ich das aber nicht auf libpng geschoben, muss ich mal testen.

----------

## Christian99

Ich bin jetzt bei den emul-linux paketen weitergekommen. mit dem abi_x86_32 können diese parallel zu anderen abi_x86_32 aktivierten paketen installiert werden. Ich bin so vorgegangen:

1. 

```
app-emulation/emul-linux-x86-* abi_x86_32
```

 in /etc/portage/package.use

2. 

```
emerge -1Nu $( eix emul-linux-x86* --only-names -I )
```

 ausführen. der befehl wird schief gehen, weil viele pakete das abi_x86_32 flag noch nicht aktiviert haben. der befehl gibt aber eine liste aus, welche pakete das sind und die müssen dann auch in /etc/portage/package.use mit dem  abi_x86_32 flag. danach nochmal den emerge befehl ausführen. bei mir kamen dann nochmal drei pakete, die noch in package.use nachgetragen werden mussten. beim dritten mal emerge gings dann.

PS: wenn kein eix vorhanden, dann das "$( ... )" mit einer liste aller installierten emul-linux-x86 pakete erstzen.

----------

