# OpenSSL 1.0.0c braucht GLIBC 2.7?

## rubbish

Hallo zusammen

Ich habe ein Problem mit OpenSSL / GLIBC, und zwar ist mir das aufgefallen, als ich dev-perl/Net-SSLeay-1.36 installieren wollte (als Abhängigkeit). Dies hat nicht geklappt, weil OpenSSL Probleme hat:

```
# openssl -v

openssl: /usr/lib/libc.so.6: version `GLIBC_2.7' not found (required by openssl)

openssl: /usr/lib/libc.so.6: version `GLIBC_2.7' not found (required by /usr/lib/libcrypto.so.1.0.0)

```

Ich habe inzwischen gcc-config gesäubert, danach die GLIBC und OpenSSL neu gemerged und auch revdep-rebuild ausgeführt.

```
# emerge --info =dev-libs/openssl-1.0.0c

Portage 2.1.9.25 (default/linux/x86/10.0, gcc-4.4.4, glibc-2.11.2-r3, 2.6.31-gentoo-r10 i686)

=================================================================

                        System Settings

=================================================================

System uname: Linux-2.6.31-gentoo-r10-i686-Intel-R-_Celeron-R-_CPU_3.20GHz-with-gentoo-1.12.14

Timestamp of tree: Thu, 20 Jan 2011 05:45:03 +0000

app-shells/bash:     4.1_p7

dev-lang/python:     2.6.6-r1, 3.1.2-r4

dev-util/cmake:      2.8.1-r2

sys-apps/baselayout: 1.12.14-r1

sys-apps/sandbox:    2.4

sys-devel/autoconf:  2.65-r1

sys-devel/automake:  1.11.1

sys-devel/binutils:  2.20.1-r1

sys-devel/gcc:       4.4.4-r2

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.10

sys-devel/make:      3.81-r2

virtual/os-headers:  2.6.30-r1 (sys-kernel/linux-headers)

ACCEPT_KEYWORDS="x86"

ACCEPT_LICENSE="* -@EULA"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=i686 -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/openvpn/easy-rsa /var/bind"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"

CXXFLAGS="-O2 -march=i686 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/ ftp://ftp.solnet.ch/mirror/Gentoo"

LANG="de_CH.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

LINGUAS="de en"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="acl apache2 berkdb bzip2 calendar cracklib crypt ctype cxx dri fortran gd gdbm gpm hal iconv jpeg latin1 maildirpng modules mudflap mysql mysqli ncurses nls nptl nptlonly openmp pam pcre

 perl php png pppd python readline samba session ssl sysfs syslog tcpd tiff truetype unicode usb vhosts x86 xml xml2 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cm

ipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dsh

are dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alia

s authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache e

nv expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CO

LLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom

 oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd4

4780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de en" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon sav

age sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

=================================================================

                        Package Settings

=================================================================

dev-libs/openssl-1.0.0c was built with the following:

USE="zlib -bindist -gmp -kerberos -rfc3779 -sse2 -test"

CFLAGS="-O2 -march=i686 -pipe -fno-strict-aliasing -Wa,--noexecstack"

CXXFLAGS="-O2 -march=i686 -pipe -fno-strict-aliasing -Wa,--noexecstack"

```

Weiss jemand Rat?

Vielen Dank und liebe Grüsse

tobyLast edited by rubbish on Fri Jan 21, 2011 1:12 pm; edited 2 times in total

----------

## forrestfunk81

Ich hab hier glibc-2.12.2 und openssl-1.0.0c installiert. openssl -v funktioniert prima.

Hast du schon ein revdep-rebuild gestartet?

----------

## rubbish

Ja, habe ich.

----------

## Necoro

 *rubbish wrote:*   

> Hallo zusammen
> 
> Ich habe ein Problem mit OpenSSL / GLIBC, und zwar ist mir das aufgefallen, als ich dev-perl/Net-SSLeay-1.36 installieren wollte (als Abhängigkeit). Dies hat nicht geklappt, weil OpenSSL Probleme hat:
> 
> ```
> ...

 

Also meine libc.so.6 liegt auch in /lib/ und nicht in /usr/lib. Hast du mal etwas lokal installiert was da vielleicht was hingelegt hat?

----------

## rubbish

hmm, wüsste nicht was...

hab grad gesehen, dass

```
/lib/libc.so.6 -> libc-2.11.2.so
```

und

```
/usr/lib/libc.so.6 -> libc-2.6.1.so
```

was hat das zu bedeuten?

----------

## Necoro

Mach mal ein

```
equery b /usr/lib/libc.so
```

und

```
equery b /usr/lib/libc-2.6.1.so
```

letztere gibts zu mindestens auf meinem System nicht...

(btw: equery ist Teil des Pakets gentoolkit, falls du dieses noch net installiert haben solltest)

/edit: Hoffentlich hat dir da nicht jemand versucht, eine gefakete glibc unterzuschieben  :Neutral: 

----------

## rubbish

Hier:

```
# equery b /lib/libc.so.6

[ Searching for file(s) /lib/libc.so.6 in *... ]

sys-libs/glibc-2.11.2-r3 (/lib/libc.so.6 -> libc-2.11.2.so)

# equery b /usr/lib/libc.so.6

[ Searching for file(s) /usr/lib/libc.so.6 in *... ]

```

Das hoffe ich auch nicht...

----------

## Necoro

Du hast 

```
equery b /usr/lib/libc-2.6.1.so
```

 vergessen  :Smile: 

Aber auf jeden Fall gehört der libc.so.6-Link in /usr/lib ja schon mal zu keinem Paket, das über Portage installiert wurde. Also doch Drittsoftware oder selbstgebautes?

----------

## rubbish

Oooops..

```
# equery b /usr/lib/libc-2.6.1.so

[ Searching for file(s) /usr/lib/libc-2.6.1.so in *... ]

```

Ich kann mich nur nicht an etwas erinnern. Schaue mal nach was da sein könnte.

Aber wieso hat das openssl drin?

/edit:

Habe nichts gefunden...

----------

## Hollowman

Hallo

Mach doch bitte mal ein

ldd /usr/bin/openssl

Sebastian

----------

## Necoro

 *rubbish wrote:*   

> Aber wieso hat das openssl drin?

 

Wahrscheinlich weil "/usr/lib" vor "/lib" im Library Pfad kommt. Der Pfad der Bibliothek wird durch den Linker ja immer erst beim Start bestimmt.

----------

## rubbish

Hey Sebastian

hier das Gewünschte:

```
# ldd /usr/bin/openssl

/usr/bin/openssl: /usr/lib/libc.so.6: version `GLIBC_2.7' not found (required by /usr/bin/openssl)

/usr/bin/openssl: /usr/lib/libc.so.6: version `GLIBC_2.7' not found (required by /usr/lib/libcrypto.so.1.0.0)

        linux-gate.so.1 =>  (0xb777e000)

        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0xb772b000)

        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0xb75c5000)

        libc.so.6 => /usr/lib/libc.so.6 (0xb7495000)

        libdl.so.2 => /lib/libdl.so.2 (0xb748b000)

        libz.so.1 => /lib/libz.so.1 (0xb7477000)

        /lib/ld-linux.so.2 (0xb777f000)

```

----------

## Hollowman

Hi

Ich würde jetzt folgendes probieren:

mv /usr/lib/libc.so.6 /root/backup/libc.so.6 (alles andere was in /usr/lib noch libc.so heißt auch verschieben oder löschen)

revdep-rebuild (dabei sollte er openssl neu bauen)

ldd /usr/bin/openssl

Das ldd sollte dann so aussehen:

```

# ldd /usr/bin/openssl 

        linux-vdso.so.1 =>  (0x00007fff841ff000)

        libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007f72ef0fc000)

        libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007f72eed53000)

        libc.so.6 => /lib/libc.so.6 (0x00007f72ee9fa000)

        libdl.so.2 => /lib/libdl.so.2 (0x00007f72ee7f6000)

        libz.so.1 => /lib/libz.so.1 (0x00007f72ee5e1000)

        /lib64/ld-linux-x86-64.so.2 (0x00007f72ef358000)
```

Sebastian

----------

## Necoro

 *Hollowman wrote:*   

> revdep-rebuild (dabei sollte er openssl neu bauen)

 

Würde ich bezweifeln - der Pfad wird erst zur Laufzeit ermittelt ...

siehe:

```
necoro@Zakarumiy ~ % ldd =openssl | grep libc.so

   libc.so.6 => /lib/libc.so.6 (0xb747f000)

necoro@Zakarumiy ~ % cp /lib/libc.so.6 /usr/lib

necoro@Zakarumiy ~ % ldd =openssl | grep libc.so

   libc.so.6 => /usr/lib/libc.so.6 (0xb740d000)

necoro@Zakarumiy ~ % rm /usr/lib/libc.so.6

necoro@Zakarumiy ~ % ldd =openssl | grep libc.so

   libc.so.6 => /lib/libc.so.6 (0xb7438000)
```

Fazit: Das verschieben sollte reichen. Revdep-Rebuild schadet aber nie  :Smile: 

----------

## rubbish

 :Idea:  Das hat gereicht!

hab /usr/lib/libc.so.6 und /usr/lib/libc.so "gelöscht".

Jetzt funtzt alles wieder   :Very Happy:  Danke vielmals für die Hilfe!

/edit:

es läuft doch nicht so wies sollte...

revdep-rebuild hatte nichts gefunden. Net-SSLeay konnte gemerged werden, jedoch bei sys-apps/file-5.04 erscheint folgender Fehler (Auszug config.log):

```
configure:2970: result: a.out

configure:2987: checking whether the C compiler works

configure:2997: ./a.out

./configure: line 2998:  4666 Segmentation fault      ./$ac_file

configure:3000: $? = 139

configure:3009: error: cannot run C compiled programs.

If you meant to cross compile, use `--host'.

See `config.log' for more details.

```

Ein remerge von gcc endet auch in einem Fehler...

----------

## Hollowman

Was sagt

gcc-config -l (kleines L)

Sebastian

----------

## rubbish

spuckt das aus:

```
# gcc-config -l            

 [1] i686-pc-linux-gnu-4.4.4 *

```

----------

## Necoro

Wahrscheinlich ist der GCC gegen die andere GlibC gebaut worden. Ich denke, du solltest folgendes tun:

1.) Funktionierenden GCC besorgen (zB von ner Gentoo Live CD)

2.) mit dem funktionierenden gcc deinen lokalen gcc neu bauen: emerge gcc

3.) glibc neu bauen (nur um sicherzugehen): emerge glibc

4.) um wirklich sicherzustellen, dass alles gegen die neue richtige glibc baut: emerge -e system[b] und [b]emerge -e world

Das letzte baut ALLES neu auf deinem System und mag daher ne Zeit dauern.

Der schwierigste Schritt ist der erste. Du kannst da folgendes versuchen:

Unter http://data.necoro.eu/packages/ hab ich dir ein Binärpaket vom gcc-4.3.4 für x86 hochgeladen (so dass durch einen anderen Slot der vorhandene nicht deinstalliert wird bei dir). Du machst da am besten folgendes:

1.) Du kopierst den kompletten Inhalt des Ordners in das $PKGDIR (/usr/portage/packages laut deinem emerge --info).

2.) Du installierst den älteren GCC per: emerge --usepkgonly "=gcc-4.3.4"

3.) Du sagst deinem System, dass er diesen verwenden soll: gcc-config i686-pc-linux-gnu-4.3.4

4.) (Evtl einmal aus und wieder einloggen)

5.) Schritt 2 von oben

6.) wieder auf den eben installierten GCC setzen: gcc-config i686-pc-linux-gnu-x.x.x wobei x.x.x durch die eben installierte Version zu ersetzen ist  :Smile: 

Da der GCC den ich hochgeladen habe, evtl. für ein anderes System ist, kann es sein, dass das alles nicht funktioniert. Dann per emerge -C gcc:4.3 einfach de-installieren wieder  :Smile: .

----------

## rubbish

Hey Necoro

Hatte wieder Zeit deinen Lösungsansatz zu verfolgen, leider ohne Erfolg.

Gemacht habe ich folgendes:

```
# emerge --usepkgonly "=gcc-4.3.4"

# gcc-config i686-pc-linux-gnu-4.3.4

logout-login

# emerge gcc

```

Das hat nicht geklappt, also habe ich die libc.so-Files wieder nach /usr/lib zurückkopiert, dann hats geklappt.

```

# gcc-config i686-pc-linux-gnu-4.4.4

# source /etc/profile

# emerge glibc

```

Da das auch nichts gebracht hat, habe ich wieder auf den gcc 4.3.4 umgeschaltet, um die glibc nochmals zu bauen. Dann habe ich auch openssl neu gebaut, doch die GLIBC_2.7-Meldungen kommen auch schon beim kompilieren. 

Hast du sonst noch eine Idee?

----------

## Necoro

 *rubbish wrote:*   

> 
> 
> ```
> # emerge gcc
> ```
> ...

 

Was war denn der Fehler? Das gleiche wie oben bei file?

Kannst du mal die libc aus /usr/lib wieder entfernen und denn die Ausgaben von ldd /usr/bin/gcc und gcc --version schicken?

 *Quote:*   

> also habe ich die libc.so-Files wieder nach /usr/lib zurückkopiert, dann hats geklappt.

 

Ich denke, dass damit nix gekonnt ist... so lange die "falsche" libc.so in /usr/lib liegt, wird nix hinhauen am Ende.

 *Quote:*   

> Hast du sonst noch eine Idee?

 

Nein :-/ ... (außer Rechner neu aufsetzen)

----------

## rubbish

 *Necoro wrote:*   

>  *rubbish wrote:*   
> 
> ```
> # emerge gcc
> ```
> ...

 

Ja war der gleiche.

Hier noch die ldd mit beiden Versionen:

```
4.3.4:

#  ldd /usr/bin/gcc

        linux-gate.so.1 =>  (0xb7719000)

        libc.so.6 => /lib/libc.so.6 (0xb75c8000)

        /lib/ld-linux.so.2 (0xb771a000)

# gcc --version

gcc (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4

Copyright (C) 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4.4.4:

# ldd /usr/bin/gcc

        linux-gate.so.1 =>  (0xb778e000)

        libc.so.6 => /lib/libc.so.6 (0xb763d000)

        /lib/ld-linux.so.2 (0xb778f000)

# gcc --version

gcc (Gentoo 4.4.4-r2 p1.3, pie-0.4.5) 4.4.4

Copyright (C) 2010 Free Software Foundation, Inc.

Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es

gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.

```

 *Quote:*   

> (außer Rechner neu aufsetzen)

 

 :Rolling Eyes: 

----------

