# [NPTL]Problema a compilar alguns programas (resolvido [+-])

## Meqif

Boas!

Como hoje estava aborrecido e estava curioso quanto ao nptl (ouvi coisas boas sobre ele), decidi pesquisar um pouco pelo fórum sobre o método de instalação mais adequado, o que encontrei.

Actualizei os linux-headers para a versão 2.6.6 e recompilei o glibc com a flag ntpl já no make.conf. Até aqui tudo bem. Andei a experimentar um pouco isto e reparei que o Azureus (para quem não sabe: um cliente de BitTorrent em Java) estava bastante mais rápido e notei uma certa aceleração no sistema em geral, o que me deixou muito satisfeito.

Foi a partir daí que começaram a surgir problemas: o dMSN (um cliente de MSN em Java que eu andava a experimentar, bastante bom por sinal) deixou de abrir, dando erros (já não me lembro exactamente quais mas penso serem similares aos que vou descrever mais à frente). Pensei de imediato em reinstalá-lo a partir do mesmo ficheiro (.bin) de instalação que usei anteriormente mas não consegui, obtendo apenas o seguinte erro:

```
Preparing to install...

Extracting the installation resources from the installer archive...

Configuring the installer for this system's environment...

awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory

dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory

basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

Launching installer...

grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

/opt/sun-jre-bin-1.4.2.04/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
```

Fiquei curioso com isto. Experimentei fazer emerge ao QTparted e falhou redondamente ao compilar o jfsutils (uma das suas dependências):

```
gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include   -D_FILE_OFFSET_BITS=64 -O2 -march=pentium4 -pipe -fomit-frame-pointer -c `test -f 'super.c' || echo './'`super.c

devices.c: In function `ujfs_get_dev_size':

devices.c:87: error: syntax error before '[' token

make[2]: *** [devices.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[2]: Leaving directory `/var/tmp/portage/jfsutils-1.1.3/work/jfsutils-1.1.3/libfs'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/var/tmp/portage/jfsutils-1.1.3/work/jfsutils-1.1.3'

make: *** [all] Error 2

!!! ERROR: sys-fs/jfsutils-1.1.3 failed.

!!! Function src_compile, Line 27, Exitcode 2

!!! (no error message)

```

Após alguma pesquisa aqui no fórum encontrei um post que dizia que o linux-headers-2.6.3-r1 era o menos problemático e que os headers mais recentes costumavam ser um pouco problemáticos.

Então emergi o headers 2.6.3-r1, reemergi o glibc e por via das dúvidas reemergi o gcc. De nada me serviu. Experimentei o glibc 2.3.4: nada... Já estava a ficar fulo. Fiz então o que era aconselhado: emerge -e system, para recompilar as libs de acordo com o novo glibc. Nada. Estou agora a recompilar o glibc com a flag -nptl no make.conf a ver o que dá...

Gostava que me ajudassem a sair desta, não me apetece nada estar a passar de novo pela instalação  :Confused: 

Dados relevantes:

```
Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7-rc3-love2)

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

System uname: 2.6.7-rc3-love2 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz

Gentoo Base System version 1.4.16

ccache version 2.3 [enabled]

Autoconf: sys-devel/autoconf-2.59-r3

Automake: sys-devel/automake-1.8.3

ACCEPT_KEYWORDS="x86"

AUTOCLEAN="yes"

CFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

COMPILER="gcc3"

CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"

CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"

CXXFLAGS="-O2 -march=pentium4 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoaddcvs ccache sandbox"

GENTOO_MIRRORS="ftp://ftp.rnl.ist.utl.pt/gentoo/ http://darkstar.ist.utl.pt/gentoo/ http://gentoo.felisberto.net/"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

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

USE="X aalib acpi alsa apm arts avi berkdb cdr crypt cups directfb dvd dvdr encode esd fbcon foomaticdb gdbm gif gpm gtk gtk2 imlib ipv6 java jpeg jpg kde libg++ libwww mad matroska mikmod mmx motif mpeg ncurses nls oggvorbis opengl pam pdflib perl png ppds python qt quicktime readline sdl slang spell sse ssl svga tcltk tcpd truetype x86 xml2 xmms xv zlib"
```

 (Acrescentar a flag nptl porque a retirei para reemergir o glibc, como disse antes)

EDIT: Esqueci-me de dizer que estou a usar o kernel 2.6.7_rc3-love2

Desde já obrigado por qualquer ajuda que possam dar!Last edited by Meqif on Mon Jun 21, 2004 5:42 pm; edited 1 time in total

----------

## Meqif

O glibc compilado com a flag -nptl não resolveu...  :Confused: 

----------

## malloc

Tenta reinstalar o java. O problema com o nptl nesse teu caso e mm o java. Ta a tentar usar um thread management q n e o nptl

----------

## Meqif

 *malloc wrote:*   

> Tenta reinstalar o java. O problema com o nptl nesse teu caso e mm o java. Ta a tentar usar um thread management q n e o nptl

 

Desde já obrigado pela resposta rápida.  :Smile: 

O java foi reinstalado durante o emerge -e system e tanto o sun como o blackdown têm o mesmo efeito. E penso que o problema não reside apenas no java, o Azureus abre bem, mas o dMSN não; e além disso continuo com o problema a emergir alguns programas, nomeadamente o jfsutils e o xfsprogs  :Confused: 

----------

## Meqif

Após reemergir o glibc sem o nptl e o sun-jre, o java já funciona bem como antes mas continuo sem conseguir instalar o jfsutils e o xfsprogs, ou seja, o problema persiste  :Confused: 

----------

## Meqif

O erro que obtenho a instalar o jfsutils é um que está no bugs.gentoo.org -> https://bugs.gentoo.org/show_bug.cgi?id=45212

Vou verificar se tenho problemas com outros programas... (O estranho é que dantes compilava sem problemas)

EDIT: E o xfsprogs também, pelos vistos: https://bugs.gentoo.org/show_bug.cgi?id=54108

----------

## haseee

Tenho Esse Mesmo Problema... Mas Quando Tento Fazer Um emerge linux-ntfs...

 :Crying or Very sad: 

----------

## Meqif

 *haseee wrote:*   

> Tenho Esse Mesmo Problema... Mas Quando Tento Fazer Um emerge linux-ntfs...
> 
> 

 

https://bugs.gentoo.org/show_bug.cgi?id=21531

Isso deve-se ao facto de o linux-ntfs não ter sido portado para o gcc 3.3. Experimenta o ntfsprogs.

----------

## Gotterdammerung

Já me recomendaram não usar a flag fomit-frame-pointer no gcc, pois ela pode causar diversos erros de compilação. De repente era uma boa você também não a usar, só por precaução.

----------

## fernandotcl

 *Scitale wrote:*   

> Já me recomendaram não usar a flag fomit-frame-pointer no gcc, pois ela pode causar diversos erros de compilação. De repente era uma boa você também não a usar, só por precaução.

 

Aliás me parece que a opção -fomit-frame-pointer está implícita em -O{1,2,3,s}. Uma coisa que me fez deixar de usá-la.

----------

## Meqif

 *Scitale wrote:*   

> Já me recomendaram não usar a flag fomit-frame-pointer no gcc, pois ela pode causar diversos erros de compilação. De repente era uma boa você também não a usar, só por precaução.

 

Parece que esse não é o meu problema... Testei agora os ebuilds que falham a compilação após comentar a linha CFLAGS e a FEATURES (em que eu tenho o ccache) do make.conf (portanto fiquei sem optimizações nenhumas, julgo eu) sem efeito, obtenho precisamente o mesmo erro  :Confused:  Obrigado pelo conselho de qualquer das maneiras  :Smile: 

Começo a desconfiar que o problema que o nptl trouxe foi apenas aquele erro na execução do dMSN (o único programa em java que me está a dar problemas, o Azureus não se queixa). Estes problemas de compilação podem estar relacionados com incompatibilidades com o GCC, que eu actualizei há alguns dias (passei do 3.3.3-r4 para o r5, acho eu) e não me preocupei em testar muito, pois a alteração entre as versões era só um pequeno patch...

EDIT: Pelo que tenho lido aqui no fórum, é provável que a instalação do Sun JRE 1.5 Beta me resolva estes problemas. No entanto prefiro esperar pelos ebuilds (eu sei que há ebuilds para a mesma versão do SDK mas isso não serve, pois não?)

Desde já obrigado a todos pela ajuda que têm prestado  :Smile: 

----------

## Gotterdammerung

Quando atualizo algum pacote importante, como o glibc, ou glib, ou o kernel, eu procuro atualizar todos os outros pacotes que dependem dele, para evitar problemas de incompatibilidade.

Pensando agora, de repente fazer o emerge indicar todas as dependências inversas de um pacote poderia ser uma meta para o futuro. Ajudaria na hora de atualizar um sistema.

----------

## Meqif

 *Scitale wrote:*   

> Quando atualizo algum pacote importante, como o glibc, ou glib, ou o kernel, eu procuro atualizar todos os outros pacotes que dependem dele, para evitar problemas de incompatibilidade.
> 
> Pensando agora, de repente fazer o emerge indicar todas as dependências inversas de um pacote poderia ser uma meta para o futuro. Ajudaria na hora de atualizar um sistema.

 

Há um script bash que tem precisamente essa função algures no fórum.

No entanto esse não deve ser o problema, pois, como disse, fiz um emerge -e system. Não tenho problemas a emergir outras coisas, apenas aqueles dois programas (xfsprogs e jfsutils) que pelos vistos não se dão bem com o gcc 3.3.3 (logo, não é culpa do nptl) e o problema do dMSN ainda persiste, mas tenho um palpite de que desaparecerá ao instalar o JRE 1.5, para o qual ainda não existe ebuild (e eu não gosto de instalar coisas sem usar o portage, depois torna-se aborrecido desinstalá-lo à mão). De resto parece não haver mais nenhum problema...

Peço desculpa pelo incómodo e pela n00bice, uma simples pesquisa no bugs.gentoo.org tinha-me poupado a thread  :Razz: 

----------

## fernandotcl

 *Meqif wrote:*   

>  *Scitale wrote:*   Quando atualizo algum pacote importante, como o glibc, ou glib, ou o kernel, eu procuro atualizar todos os outros pacotes que dependem dele, para evitar problemas de incompatibilidade.
> 
> Pensando agora, de repente fazer o emerge indicar todas as dependências inversas de um pacote poderia ser uma meta para o futuro. Ajudaria na hora de atualizar um sistema. 
> 
> Há um script bash que tem precisamente essa função algures no fórum.

 

Seria o revdep-rebuild?

----------

## Meqif

 *fernandotcl wrote:*   

> Seria o revdep-rebuild?

 

Não, é o dep. Não me lembrava exactamente qual era a pesquisa que tinha feito para o encontrar por isso não disse logo, pensei em editar o post quando me lembrasse. Lembrei-me de repente que era do ecatmur e tinha qualquer coisa a ver com o prune, a partir daí foi fácil recordar-me do resto  :Smile: 

----------

## Clansman

viva,

tenho o mesmo problema com o dmsn. não o consigo instalar.

no entanto, o defeito por mim apontado estaria longe da glibc ou do gcc... eu apontaria o dedo ao shell script que instala o dmsn...

vou tentar com o java 1.5 mas sem fé no resultado... [EDIT: oops, ainda n há ebuild. penso que pelo fórum já se encontrou maneira de instalar isso...]

[]

----------

## Meqif

 *Clansman wrote:*   

> viva,
> 
> tenho o mesmo problema com o dmsn. não o consigo instalar.
> 
> no entanto, o defeito por mim apontado estaria longe da glibc ou do gcc... eu apontaria o dedo ao shell script que instala o dmsn...
> ...

 

É possível, dado que o shell script daquilo está mesmo uma bela porcaria, pelo pouco que vi  :Confused: 

Há, de facto, um ebuild para o sun-jdk-1.5.0_beta2. Está masked (~x86). Mas não me adiantou muito... É mesmo defeito do dmsn.  :Sad: 

----------

## Clansman

instalei o 1.5.0 beta 2 à mão de acordo com as instruções do fórum e, como eu suspeitava, o erro mantém-se.

não se deve, portanto ao java.

enfim... help would be appreciated

[]

----------

