# (erledigt)glibc kompilieren - no __thread error bei Sabayon

## scurrell

Also, der aktuelle gcc-4.9.2 bringt mir bei emerge glibc: die "No __thread support in gcc!"

Wie da vorgehen ?

----------

## franzf

Hast du beim gcc das nptl USE-Flag abgestellt?

----------

## scurrell

Nö, eigentlich nicht.

Hier mal meine ( Sab ) make.conf

```
 

# These settings were set by the catalyst build script that automatically built this stage

# Please consult /etc/make.conf.example for a more detailed example

# Compiler stuff

GRAPHITE="-floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block"

# Only enable Graphite via package.env

CFLAGS="-O2 -march=native -pipe" # -ftree-vectorize ${GRAPHITE}"

CHOST="x86_64-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

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

MAKEOPTS="-j5 -s"

# Portage stuff

ACCEPT_KEYWORDS="~amd64"

FEATURES="metadata-transfer parallel-fetch sandbox protect-owned compressdebug splitdebug"

CCACHE_SIZE="4G"

CCACHE_DIR="/var/ccache"

LINGUAS="en en_US de en_GB"

## USE ##

SAB_BAD="-libav -debug -kdeprefix -arts -qt3 -beagle -gnome -evo -mono -eds -apm -oss -branding -esd"

SAB_MEDIA="musicbrainz sdl pulseaudio wmf fame cdr dvi mp3rtp xine cddb alsa dvb dvd bluray network dvdread ipod audiofile artswrappersuid dvdr jack dri cdda mjpeg mmx joystick xvmc cpudetection v4l v4l2"

SAB_CODECS="x264 x265 gsm lame dv mp3 stream live openal theora ogg a52 win32codecs matroska xvid flac ffmpeg aac speex real dts musepack"

SAB_SYSTEM="internal-jsoncpp modules aes avx fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3 cjk unicode gnutls nptl gcj udev systemd logind -consolekit kerberos acl dbus bash-completion lzo rar policykit xcb bzip2 bidi wifi lm_sensors acpi usb pcmcia bluetooth irda ieee1394 perl python"

SAB_FILESYS="fat hfs jfs xfs ntfs reiserfs sysfs inotify"

SAB_PRINT="cups ppds foomatic-db gimpprint freetype xprint scanner"

SAB_XSYS="cairo X opengl png gif gtk qt4 qt3support xpm tiff xinerama aiglx svg gphoto2 dga lcd openexr" 

SAB_DESKTOP="kdehiddenvisibility gmp libnotify rdesktop pda zeroconf kdeenablefinal visualization avahi startup-notification accessibility"

SAB_BROWSER="nsplugin firefox mozdevelop xulrunner"

SAB_COMMS="jabber msn yahoo icq irc aim rss slp mail imap"

USE="${SAB_BAD} ${SAB_MEDIA} ${SAB_CODECS} ${SAB_SYSTEM} ${SAB_FILESYS} ${SAB_PRINT} ${SAB_XSYS} ${SAB_DESKTOP} ${SAB_BROWSER} ${SAB_COMMS}"   

## DEVICES ##

INPUT_DEVICES="evdev void"

VIDEO_CARDS="fbdev vesa radeonsi radeon"

# VIDEO_CARDS="fglrx intel"

LIRC_DEVICES="audio audio_alsa serial pctv"

ALSA_CARDS="emu10k1x emu10k1 hda-intel"

CAMERAS="agfa_cl20 casio_qv dimagev dimera3500 kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica_qm150 panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ricoh_g3 sipix_blink sipix_blink2 sipix_web2 sony_dscf1 sony_dscf55 toshiba_pdrm11 adc65 aox barbie canon clicksmart310 digigr8 digita directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 konica largan lg_gsm mars mustek pccam300 pccam600 ptp2 ricoh samsung sierra smal sonix soundvision spca50x sq905 stv0674 stv0680 sx330z template"

## OFFICE ##

LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer pdfimport wiki-publisher"

## QEMU ##

QEMU_USER_TARGETS="alpha arm armeb cris i386 m68k microblaze mips mipsel ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus sparc64 x86_64"

QEMU_SOFTMMU_TARGETS="x86_64 arm cris i386 m68k microblaze mips mips64 mips64el mipsel ppc ppc64 ppcemb sh4 sh4eb sparc sparc64"

## PORTAGE CONFIG ##

PORTDIR_OVERLAY="/usr/local/portage"

source /var/lib/layman/make.conf

CONFIG_PROTECT="/usr/share/config/kdm /etc /etc/conf.d /etc/init.d"

# /lib/modules mask is useful for our internal tinderbox

CONFIG_PROTECT_MASK="/etc/skel /lib/modules"

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

APACHE2_MPMS="prefork"

# GENTOO_MIRRORS="ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://archive.mmu.edu.my/gentoo rsync://gentoo.bloodhost.ru/gentoo-distfiles ftp://gentoo.mirrors.tds.net/gentoo ftp://ftp.halifax.rwth-aachen.de/gentoo/ rsync://mirror.neolabs.kz/gentoo http://ftp.gentoo.bg/ http://ftp.cc.uoc.gr/mirrors/linux/gentoo/ ftp://ftp.cc.uoc.gr/mirrors/linux/gentoo/ ftp://mirrors.tera-byte.com/pub/gentoo"

GENTOO_MIRRORS="http://gentoo.modulix.net/gentoo/ ftp://gentoo.imj.fr/pub/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://mirror.scarlet-internet.nl/pub/gentoo http://gentoo.tiscali.nl/ ftp://gentoo.tiscali.nl/pub/mirror/gentoo/ "

# GENTOO_MIRRORS="ftp://gentoo.imj.fr/pub/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ ftp://mirror.scarlet-internet.nl/pub/gentoo http://gentoo.tiscali.nl/ ftp://gentoo.tiscali.nl/pub/mirror/gentoo/ "

USE_PYTHON="2.7"

PYTHON_TARGETS="python2_7 python3_4"

# Some more forced targets

PHP_TARGETS="php5-5"

RUBY_TARGETS="ruby20"

# Apache suEXEC default UMASK

# See bug 3544

SUEXEC_UMASK=022

# Setup GRUB platforms

GRUB_PLATFORMS="efi-32 efi-64 pc"

# Support both 64bit and 32bit

ABI_X86="64 32"

# Set PORTDIR for backward compatibility with various tools:

#   gentoo-bashcomp - bug #478444

#   euse - bug #474574

#   euses and ufed - bug #478318

PORTDIR="/usr/portage"

```

----------

## Yamakuzure

Falls du app-portage/gentoolkit installiert hast, kannst du das ganz schnell überprüfen:

```
 $ equery u sys-devel/gcc-4.9.2

[ Legend : U - final flag setting for installation]

[        : I - package is installed with flag     ]

[ Colors : set, unset                             ]

 * Found these USE flags for sys-devel/gcc-4.9.2:

 U I

 - - cilk            : Support the Cilk Plus language (C/C++ based languages for parallel programming)

 + + cxx             : Build support for C++ (bindings, extra libraries, code generation, ...)

 - - debug           : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces

 + + doc             : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally

 + + fortran         : Add support for fortran

 - - gcj             : Enable building with gcj (The GNU Compiler for the Javatm Programming Language)

 - - go              : Build the GCC Go language frontend.

 + + graphite        : Add support for the framework for loop optimizations based on a polyhedral intermediate representation

 + + nls             : Add Native Language Support (using gettext - GNU locale utilities)

 - - nopie           : Disable PIE support (NOT FOR GENERAL USE)

 - - nossp           : Disable SSP support (NOT FOR GENERAL USE)

 + + nptl            : Enable support for Native POSIX Threads Library, the new threading module (requires linux-2.6 or better usually)

 - - objc            : Build support for the Objective C code language

 - - objc++          : Build support for the Objective C++ language

 - - objc-gc         : Build support for the Objective C code language Garbage Collector

 + + openmp          : Build support for the OpenMP (support parallel computing), requires >=sys-devel/gcc-4.2 built with USE="openmp"

 - - regression-test : Run the testsuite and install the results (requires FEATURES=test)

 + + sanitize        : Build support various sanitizer functions (ASAN/TSAN/etc...)

 - - vanilla         : Do not add extra patches which change default behaviour; DO NOT USE THIS ON A GLOBAL SCALE as the severity of the meaning changes drastically
```

Wenn links ain '+' steht, wird das Flag bei der nächsten installation aktiviert. Die rechte Spalte zeigt, wie es jetzt ist.

----------

## Josef.95

Oder auch direkt den Paketmanager zb via 

```
emerge -pv =sys-devel/gcc-4.9.2 

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] sys-devel/gcc-4.9.2:4.9::gentoo  USE="cxx fortran nptl openmp sanitize (-altivec) (-awt) -cilk -debug -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) (-multilib) (-multislot) -nls -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB
```

 befragen.

Dort sieht man dann auch recht gut mit welchen Flags gebaut wurde, und was beim rebuild geändert würde.

----------

## scurrell

```
Desktop # emerge -pv =sys-devel/gcc-4.9.2 

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] sys-devel/gcc-4.9.2:4.9::gentoo [4.9.2:4.9::sabayon-distro] USE="cxx fortran gcj go graphite (multilib) nls nptl objc objc++ objc-gc openmp sanitize (-altivec) (-awt) -cilk -debug% -doc (-fixed-point) 

(-hardened*) (-libssp) (-multislot) -nopie -nossp -regression-test -vanilla (-bootstrap%) (-build%) 

(-test%)" 89,311 KiB

Total: 1 package (1 reinstall), Size of downloads: 89,311 KiB
```

Da der gcc out-of-the-box ist, muß der zuerst <binary> installiert werden.

Das <reinstall> zeigt mir an, dass das ein gemergter gcc ist, also nicht der <binary>. Sonst wäre der <new>

```
equery u sys-devel/gcc-4.9.2 

[ Legend : U - final flag setting for installation]

[        : I - package is installed with flag     ]

[ Colors : set, unset                             ]

 * Found these USE flags for sys-devel/gcc-4.9.2:

 U I

 - - cilk            : Support the Cilk Plus language (C/C++ based languages

                       for parallel programming)

 + + cxx             : Build support for C++ (bindings, extra libraries, code

                       generation, ...)

 - - debug           : Enable extra debug codepaths, like asserts and extra

                       output. If you want to get meaningful backtraces see htt

                       ps://wiki.gentoo.org/wiki/Project:Quality_Assurance/Back

                       traces

 - - doc             : Add extra documentation (API, Javadoc, etc). It is

                       recommended to enable per package instead of globally

 + + fortran         : Add support for fortran

 + + gcj             : Enable building with gcj (The GNU Compiler for the

                       Javatm Programming Language)

 + + go              : Build the GCC Go language frontend.

 + + graphite        : Add support for the framework for loop optimizations

                       based on a polyhedral intermediate representation

 + + nls             : Add Native Language Support (using gettext - GNU locale

                       utilities)

 - - nopie           : Disable PIE support (NOT FOR GENERAL USE)

 - - nossp           : Disable SSP support (NOT FOR GENERAL USE)

 + + nptl            : Enable support for Native POSIX Threads Library, the new

                       threading module (requires linux-2.6 or better usually)

 + + objc            : Build support for the Objective C code language

 + + objc++          : Build support for the Objective C++ language

 + + objc-gc         : Build support for the Objective C code language Garbage

                       Collector

 + + openmp          : Build support for the OpenMP (support parallel

                       computing), requires >=sys-devel/gcc-4.2 built with

                       USE="openmp"

 - - regression-test : Run the testsuite and install the results (requires

                       FEATURES=test)

 + + sanitize        : Build support various sanitizer functions

                       (ASAN/TSAN/etc...)

 - - vanilla         : Do not add extra patches which change default behaviour;

                       DO NOT USE THIS ON A GLOBAL SCALE as the severity of the

                       meaning changes drastically 
```

Auch das sieht gut aus. nptl war und ist aktiviert.

Ich hätte jetzt gerne berichtet: <emerge -av handbrake> geht problemlos.

Allerdings darf ich nun erstmal was über  

```
The following license changes are necessary to proceed:

 (see "package.license" in the portage(5) man page for more details)

# required by media-video/handbrake-0.10.1::gentoo[fdk]

# required by handbrake (argument)

>=media-libs/fdk-aac-0.1.4 FraunhoferFDK

```

 lernen. 

etc-update macht das nämlich nicht. Und <dispatch-conf> geht bei Sabayon nicht.

P.S.: Meine 14Gig-Film-Datei hatte einen encode-Fehler, weshalb avidemux diese nicht öffnen konnte. (s. anderes Thema)

Vielleicht ging ja bei der Übertragung der Cam was schief.

----------

## Josef.95

Puh huh ja, aber was hat das mit dem Thema "glibc kompilieren - no __thread error" zu tun :)

Darf man fragen warum glibc überhaupt neu gebaut werden muss?

Poste ansonsten doch bitte mal die genaue Fehlermeldung (am besten das komplette build.log).

----------

## Yamakuzure

 *scurrell wrote:*   

> etc-update macht das nämlich nicht. Und <dispatch-conf> geht bei Sabayon nicht.

 Du verwendest also Sabayon und nicht gentoo, richtig? Vielleicht hat dein Problem damit zu tun?

----------

## scurrell

Das kann ich mir kaum vorstellen. emerge ist emerge. Und ich hab in der make.conf die gentoo-mirrors.

Ok. Ich update mit <eix-sync>. Und bei layman sind sabayon und mv mit drin.

 *Josef.95 wrote:*   

> Darf man fragen warum glibc überhaupt neu gebaut werden muss?
> 
> Poste ansonsten doch bitte mal die genaue Fehlermeldung (am besten das komplette build.log).

 

Ich mußte nochmal auf eine Absicherung zurückgreifen, da ich einige .cfg-Dateien falsch bearbeitet hatte.

Der Vorschlag kommt von <emerge -uavDN @world>

Das build-log passt leider nicht in die post. Morgen wird pastebin.com gelernt.

----------

## scurrell

[quote="Josef.95"Darf man fragen warum glibc überhaupt neu gebaut werden muss?

Poste ansonsten doch bitte mal die genaue Fehlermeldung (am besten das komplette build.log).[/quote]

PM an Moderator zum bereinigen ist raus. 'tschuldigung

----------

## py-ro

Sabayon hat einen eigenen Paketmanager und Sie haben eigene Patches, diese System zu mischen ist eine schlechte Idee, genauso wie es schon bei dem Calculate Linux eine schlechte Idee war.

Nutze doch bitte deine gewählte Distribution, dann kann man dir auch in den entsprechenden Foren weiterhelfen, so ist das ziemlich Sinn frei.

Bye

Py

----------

## Klaus Meier

Ich habe mir Sabayon einmal kurz angesehen. Einfach nur eine Katastrophe. Jedes Paket steht in der world-Datei. Also nicht nur kde-meta, sondern alle 600 Pakete, die da dran hängen. Genauso hat jedes Paket einen Eintrag in der packacke.use, packacke.mask, package.unmask usw. Mit selber bauen sieht es da schlecht aus. Sabayon basiert zwar auf Gentoo, man kann es aber nicht so nutzen wie Gentoo.

Es wird auch davon abgeraten, dass Systemupdates manuell einzuspielen und die selber zu kompilieren.

Kann heute anders aussehen, aber man sollte niemals auf die Idee kommen, dass es von der Verwaltung her etwas mit Gentoo zu tun hat.

----------

## Yamakuzure

 *scurrell wrote:*   

> Das kann ich mir kaum vorstellen. emerge ist emerge. Und ich hab in der make.conf die gentoo-mirrors.
> 
> Ok. Ich update mit <eix-sync>. Und bei layman sind sabayon und mv mit drin.

 Nein. Eben nicht. Sabayon ist die Binärpaketvariante von Gentoo. In Sabayon emerge zu verwenden um das System zu ändern geht früher oder später schief.

----------

## scurrell

 *py-ro wrote:*   

> Sabayon hat einen eigenen Paketmanager und Sie haben eigene Patches, diese Systeme zu mischen ist eine schlechte Idee
> 
> Bye
> 
> Py

 

Ach, schade.

Da die sich als source und binary Distro anbieten, dachte ich, das funktioniert.

Vielen Dank jedenfalls mal für "den Blick von oben"

----------

## Klaus Meier

So etwas hatte ich auch mal gedacht. Du installierst dir Sabayon, geht ja viel schneller als Gentoo. Und dann biegst du es dir so hin, wie du es willst. Geht nicht.

----------

## scurrell

Bis zu einem gewissen Grad, hab ich ja jetzt meine gentoo installation. 

Und die ganz heftigen "world @uavDn" werden ja auch von den Sabayon-Hens erledigt.

Indem soweit, bin ich doch mit meiner Installation ziemlich zufrieden.

Und nur, weil ich nicht verstehe einen Kernel zu bauen. Shit druf.

Die nächsten Jahre hab ich doch das, was ich von/an portage so liebe.

Und nein, ich hab kein kde-meta auf meinem System.

Und nein, ich hab auch keine <world>-Datei. (Jedenfalls hab ich die beim suchen nicht gefunden)

----------

## Klaus Meier

Also wenn du jetzt von Gentoo redest, wie soll das denn ohne eine world-Datei gehen? Schau mal nach: /var/lib/portage/world.

----------

## Klaus Meier

Wenn du einen Kernel bauen willst, dann ist z.B. Sabayon eine gute Basis. Du kopierst dir die Config-Datei aus dem Boot-Ordner als .config in deine Kernelquellen. Dann hast du erst mal eine Basis, die funktioniert. Und von der aus kannst du dann optimieren.

----------

## scurrell

 *Klaus Meier wrote:*   

> Wenn du einen Kernel bauen willst, dann ist z.B. Sabayon eine gute Basis.
> 
> Du kopierst dir die Config-Datei aus dem Boot-Ordner als .config in deine Kernelquellen.

 

Quirk, also ich boote 15.06. Und nehme dann, ähh aus boot von live-cd ... kernel.config

Welchen boot-ordner ? Ich hab hier 3 Stück.

Den von der live-cd (eher unwahrscheinlich), den nach dem booten von der live-cd(eher wahrscheinlich, wo finde ich den ?) oder den von der 

Installation (eher unwahrscheinlich)

----------

## Josef.95

Geht es jetzt um Sabayon oder um Gentoo?

Ich denke genkernel sollte auch eine gute Alternative bieten, so wie im

https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel#Alternative:_Using_genkernel

beschrieben.

----------

## scurrell

Die .kernel.config ist von Sabayon. (Wo finde ich die ?)

Die Installation sollte jedoch dann gentoo sein. Nur, da hakt der Kernel nämlich noch. Und ja, genkernel, halt.

----------

## Klaus Meier

Die Datei heißt .config und nicht .kernel.config. Und die steht im Ordner /usr/src/linux. Da stehen deine Einstellungen für den Kernel drin. Die findest du aber nicht an dieser Stelle, da bei Sabayon wahrscheinlich keine Kernelquellen mit Konfiguration installiert. Die musst du selber erstellen und bearbeiten. Z.B. mit make menuconfig. Im Ordner /boot befindet sich aber normalerweise eine Kopie dieser Datei, sie heißt bei mir config-4.1.0-gentoo-r1. Diese Datei kopierst du nach /usr/src/linux/.config und hast eine Basis für deine Kernelkonfiguration. Wenn du es selber machen willst.

Genkernel ist nun wieder eine andere Geschichte.

----------

