# Kompilierprobleme bei Systemneubau

## Christoph Schnauß

hallo,

es gibt einen Thread mit ähnlich gelagertem Thema, trotzdem mache ich mal einen neuen auf. Folgendes: Seit ungefähr vier Wochen brach ein "emerge -uD system" immer beim Neubau der glibc mit einem Fehler ab. Ich habe das ein paarmal ignoriert und gedacht, ich hätte vielleicht ein defektes Archiv erhalten. Gestern wollte ich es dann nach einem "emerge --sync" nochmal richtig probieren. Gleiches Ergebnis: Abbruch, als bei "emerge -uD system" die glibc dran ist. Die letzten Meldungen aus dem log:

```
/var/tmp/portage/sys-libs/glibc-2.6/work/build-x86-x86_64-pc-linux-gnu-nptl/elf/librtld.os: In function `_dl_close_worker':

(.text+0x127b7): undefined reference to `__sync_val_compare_and_swap_4'

/var/tmp/portage/sys-libs/glibc-2.6/work/build-x86-x86_64-pc-linux-gnu-nptl/elf/librtld.os: In function `_dl_close_worker':

(.text+0x127e5): undefined reference to `__sync_fetch_and_add_4'

collect2: ld returned 1 exit status

make[2]: *** [/var/tmp/portage/sys-libs/glibc-2.6/work/build-x86-x86_64-pc-linux-gnu-nptl/elf/ld.so] Error 1

make[2]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.6/work/glibc-2.6/elf'

make[1]: *** [elf/subdir_lib] Error 2

make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.6/work/glibc-2.6'

make: *** [all] Error 2

 [31;01m*[0m 

 [31;01m*[0m ERROR: sys-libs/glibc-2.6 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1648:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 988:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   glibc-2.6.ebuild, line 1178:   Called src_compile

 [31;01m*[0m   glibc-2.6.ebuild, line 1189:   Called toolchain-glibc_src_compile

 [31;01m*[0m   glibc-2.6.ebuild, line 275:   Called die

 [31;01m*[0m 

 [31;01m*[0m make for x86 failed
```

Ich habe dann eben den gcc extra neu zu bauen versucht, da die glibc als Abhängigkeit mit kompiliert werden sollte. Brach ebenfalls ab. Im log steht:

```
checking for gcc... gcc

checking whether the C compiler (gcc  ) works... no

configure: error: installation or configuration problem: C compiler cannot create executables.

 [31;01m*[0m 

 [31;01m*[0m ERROR: sys-devel/gcc-4.2.0 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1648:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 988:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   ebuild.sh, line 1328:   Called toolchain_src_compile

 [31;01m*[0m   toolchain.eclass, line 26:   Called gcc_src_compile

 [31;01m*[0m   toolchain.eclass, line 1537:   Called gcc_do_configure

 [31;01m*[0m   toolchain.eclass, line 1337:   Called die

 [31;01m*[0m 

 [31;01m*[0m failed to run configure
```

Ärgerlich.

Aber jetzt kommt es dicke. Ich habe trotzdem ein "revdep-rebuild" laufen lassen, und das meckerte plötzlich an Perl und an Python herum und wollte es neu kompilieren lassen - brach ebenfalls ab. Ich hatte die Nase voll und wollte auf die grafische Oberfläche, um mich hier zu melden. Denkste, X-Server startet nicht mehr. Kein Browser merh verfügbar, und mit Lynx bzw. links mag ich nicht gerne komplexere Fragen hier posten. Also zurück auf die Konsole und es mal mit KDE probiert. Ergebnis:

```
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc

checking for C compiler default output file name... 

configure: error: C compiler cannot create executables

See `config.log' for more details.

!!! Please attach the following file when filing a report to bugs.gentoo.org:

!!! /var/tmp/portage/kde-base/kdelibs-3.5.7-r2/work/kdelibs-3.5.7/config.log

 [31;01m*[0m 

 [31;01m*[0m ERROR: kde-base/kdelibs-3.5.7-r2 failed.

 [31;01m*[0m Call stack:

 [31;01m*[0m   ebuild.sh, line 1648:   Called dyn_compile

 [31;01m*[0m   ebuild.sh, line 988:   Called qa_call 'src_compile'

 [31;01m*[0m   ebuild.sh, line 44:   Called src_compile

 [31;01m*[0m   kdelibs-3.5.7-r2.ebuild, line 150:   Called kde_src_compile

 [31;01m*[0m   kde.eclass, line 170:   Called kde_src_compile 'all'

 [31;01m*[0m   kde.eclass, line 340:   Called kde_src_compile 'myconf' 'configure' 'make'

 [31;01m*[0m   kde.eclass, line 322:   Called econf '--with-distribution=Gentoo' '--disable-fast-malloc' '--with-libart' '--with-libidn' '--with-ssl' '--without-hspell' '--disable-libfam' '--enable-dnotify' '--without-acl' '--with-alsa' '--without-arts' '--enable-cups' '--without-gssapi' '--without-tiff' '--without-jasper' '--without-openexr' '--without-utempter' '--without-lua' '--enable-sendfile' '--enable-mitshm' '--without-aspell' '--enable-dnssd' '--with-rgbfile=/usr/share/X11/rgb.txt' '--with-x' '--enable-mitshm' '--without-xinerama' '--with-qt-dir=/usr/qt/3' '--enable-mt' '--with-qt-libraries=/usr/qt/3/lib64' '--disable-dependency-tracking' '--disable-debug' '--without-debug' '--disable-final' '--without-arts' '--prefix=/usr/kde/3.5' '--mandir=/usr/kde/3.5/share/man' '--infodir=/usr/kde/3.5/share/info' '--datadir=/usr/kde/3.5/share' '--sysconfdir=/usr/kde/3.5/etc' '--enable-libsuffix=64'

 [31;01m*[0m   ebuild.sh, line 591:   Called die

 [31;01m*[0m 

 [31;01m*[0m econf failed
```

Offensichtlich habe ich ein Problem mit dem gcc, aber ich weiß nicht recht, wie ich es zu beheben habe. Hat jemand einen Hinweis?

----------

## Finswimmer

Poste mal emerge --info.

Laut dem Thread https://forums.gentoo.org/viewtopic-t-27486-postdays-0-postorder-asc-start-125.html

könnte es an den CFLAGS liegen.

Tobi

----------

## Christoph Schnauß

hallo,

 *Finswimmer wrote:*   

> Poste mal emerge --info.

 

Bittesehr:

```
Portage 2.1.3_rc9 (default-linux/amd64/2006.1, [unavailable], glibc-2.5-r4, 2.6.20.7 x86_64)

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

System uname: 2.6.20.7 x86_64 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz

Gentoo Base System release 1.12.10

Timestamp of tree: Wed, 01 Aug 2007 21:30:01 +0000

dev-lang/python:     2.4.4-r4

dev-python/pycrypto: 2.0.1-r6

sys-apps/sandbox:    1.2.18.1

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.7.9-r1, 1.9.6-r2, 1.10

sys-devel/binutils:  2.17-r1

sys-devel/gcc-config: 1.3.16

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.22-r2

ACCEPT_KEYWORDS="amd64 ~amd64"

AUTOCLEAN="yes"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"

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

CXXFLAGS="-O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans"

GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"

LINGUAS="de"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

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

USE="alsa amd64 berkdb bitmap-fonts cli cracklib crypt cups dri fortran gdbm gpm iconv libg++ midi mudflap ncurses nls nptl nptlonly openmp pam pcre perl ppds pppd python readline reflection session spl ssl tcpd truetype-fonts type1-fonts unicode xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="de" USERLAND="GNU" VIDEO_CARDS="apm ark chips cirrus cyrix dummy fbdev glint i128 i810 mach64 mga neomagic nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa vga via vmware voodoo"

Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

 *Quote:*   

> Laut dem Thread https://forums.gentoo.org/viewtopic-t-27486-postdays-0-postorder-asc-start-125.html
> 
> könnte es an den CFLAGS liegen.

 

Den kannte ich nicht. Scheint mir aber nicht zuzutreffen. Was mich irritiert, ist dieses "unavailable" in der ersten Zeile, und außerdem gabs noch eine Notiz, daß ich doch bitte "source /etc/profile" machen sollte. Habe ich selbstverständlich gemacht, ändert aber nix.

----------

## zworK

 *Christoph Schnauß wrote:*   

> [...] Was mich irritiert, ist dieses "unavailable" in der ersten Zeile [...]

 

Allerdings, dort sollte die gewählte GCC-Version stehen.

Zudem die Meldung

```
checking whether the C compiler (gcc  ) works... no
```

Du könntest versuchen den GCC über

```
gcc-config <Nummer>
```

 neu zu setzen. Vielleicht stimmt da was an den Umgebungsvariablen nicht.

Die Nummer bekommst du aus der Liste der verfügbaren GCC-Versionen:

```
gcc-config -l
```

----------

## Christoph Schnauß

hallo,

 *zworK wrote:*   

> Du könntest versuchen den GCC über
> 
> ```
> gcc-config <Nummer>
> ```
> ...

 

Sehr gut, das scheint es jetzt zu bringen. Folgendes passiert der Reihe nach:

```
pc1 ~ # gcc -v

gcc-config error: Could not run/locate "gcc"

pc1 ~ # gcc-config -l

 * gcc-config: Active gcc profile is invalid!

 [1] x86_64-pc-linux-gnu-4.2.0

pc1 ~ #

pc1 ~ # gcc-config 1

 * Switching native-compiler to x86_64-pc-linux-gnu-4.2.0 ...

>>> Regenerating /etc/ld.so.cache...                                            [ ok ]

 * If you intend to use the gcc from the new profile in an already

 * running shell, please remember to do:

 *   # source /etc/profile

pc1 ~ #

pc1 ~ # source /etc/profile

pc1 ~ # gcc -v

Using built-in specs.

Target: x86_64-pc-linux-gnu

Configured with: /var/tmp/portage/sys-devel/gcc-4.2.0/work/gcc-4.2.0/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.2.0 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.0/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.0/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.2.0/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --enable-multilib --enable-libmudflap --disable-libssp --disable-libgcj --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu

Thread model: posix

gcc version 4.2.0 (Gentoo 4.2.0 p1.4)

pc1 ~ #
```

Damit scheint der gcc wenigstens wieder "vorhanden", mal schauen, ob es jetzt mit dem Kompilieren weitergehen kann

----------

## Christoph Schnauß

hallo,

 *Quote:*   

> Damit scheint der gcc wenigstens wieder "vorhanden", mal schauen, ob es jetzt mit dem Kompilieren weitergehen kann

 

Na klasse, jetzt kann ich mich nach dem Reboot nicht mehr anmelden. Es kommt zwar noch das "login", aber wenn ich mein Paßwort eingebe, kommt nur der kurze Hinweis auf "last login" und das wars dann - kein Prompt.

Wenn ich mich richtig erinnere, hat das was mit udev zu tun, das ich nochmal emergen müßte. Also Start von der CD, und glücklicherweise kann ja Gentoo 2007.0 inzwischen auch mit meinem JMicron-Chip (für das CD-Laufwerk) umgehen...

----------

## Finswimmer

Deine make.conf ist nicht richtig:

Du hast

```
CFLAGS="-O2 -pipe"

CXXFLAGS="-O2 -pipe" 

```

Richtig ist:

http://gentoo-wiki.com/Safe_Cflags#Athlon_64_.28AMD.29

Such dir da was aus.

Hauptsache ist, du hast march= drin.

Tobi

----------

## Christoph Schnauß

 *Quote:*   

> Na klasse, jetzt kann ich mich nach dem Reboot nicht mehr anmelden. Es kommt zwar noch das "login", aber wenn ich mein Paßwort eingebe, kommt nur der kurze Hinweis auf "last login" und das wars dann - kein Prompt.
> 
> Wenn ich mich richtig erinnere, hat das was mit udev zu tun, das ich nochmal emergen müßte.

 

Korrektur: es geht um shadow, siehe https://forums.gentoo.org/viewtopic-t-489983-highlight-.html

----------

## Christoph Schnauß

 *Finswimmer wrote:*   

> Deine make.conf ist nicht richtig...Richtig ist:
> 
> http://gentoo-wiki.com/Safe_Cflags#Athlon_64_.28AMD.29

 

Naja, ich habe aber keinen Athlon, sondern da steckt ein Intel Core Duo drin.

 *Quote:*   

> Hauptsache ist, du hast march= drin.

 

Nö, damit kriege ich erhebliche Probleme. Und es hat ja ein paar dutzendmal zuvor auch wunderbar geklappt.

----------

## Finswimmer

Dann sollte aber -mcpu oder sowas rein.

Wenn du Intel hast, warum dann default-linux/amd64/2006.1?

Und was gibt es für Probleme mit -march?

In dem Thread, den ich verlinkt habe, gab es immer Probleme, weil die CFLAGS nicht richtig gesetzt worden sind.

Tobi

P.S: http://gentoo-wiki.com/Safe_Cflags#Intel_Core_Solo.2FDuo

----------

## Christoph Schnauß

hallo,

 *Finswimmer wrote:*   

> Dann sollte aber -mcpu oder sowas rein.
> 
> Wenn du Intel hast, warum dann default-linux/amd64/2006.1?

 

Den Rechner mit diesem Prozessor habe ich im Januar erworben, er ist also ein halbes Jahr alt. Es ist der erste, mit dem ich es mit einer 64-bit-Architektur zu tun bekam. Und ich habe im Januar nichts anderes gefunden, außerdem hatte ich hier nachgefragt.

 *Quote:*   

> In dem Thread, den ich verlinkt habe, gab es immer Probleme, weil die CFLAGS nicht richtig gesetzt worden sind.

 

Das klingt ja durchaus einleuchtend. Ich probiere mal ein bißchen herum, welche ich denn nun wirklich brauche

----------

## Finswimmer

Hast du mein P.S. gelesen? Das würde ich auf jeden Fall so einstellen, denn es sind SafeCflags.

Was mit dem Profil ist, weiß ich auch nicht. Kam mir nur merkwürdig vor.

Habe leider noch kein 64er System... 

Tobi

----------

## Christoph Schnauß

 *Finswimmer wrote:*   

> Hast du mein P.S. gelesen?

 

Ja, natürlich.

 *Finswimmer wrote:*   

> Das würde ich auf jeden Fall so einstellen, denn es sind SafeCflags.

 

Es hilft bloß leider auch nix. Sicher ist es nicht verkehrt, aber die glibc kriege ich bisher trotzdem noch nicht kompiliert, der gcc ist mittlerweile dank zworK wieder einsatzfähig.

 *Finswimmer wrote:*   

> Habe leider noch kein 64er System...

 

So bedeutend scheint der Unterschied nicht zu sein

----------

