# revdep-rebuild walczy z gcc - co robic?

## Lord_Raven

Oto maly wycinek z revdep-rebuild:

```
 (...)

* Checking dynamic linking consistency

 [ 44% ]  *   broken /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)

 *   broken /usr/lib64/gcc/x86_64-pc-linux-gnu/4.2.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)

 *   broken /usr/lib64/gcj-4.2.2/libjvm.la (requires /usr/lib/../lib64/libgcj.la)

 [ 95% ]  *   broken /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)

 *   broken /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/libgij.la (requires /usr/lib/../lib64/libgcj.la)

 [ 100% ]                 

 * Generated new /root/.revdep-rebuild.3_rebuild

    

 * Assigning files to packages

 *  !!! /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la not owned by any package is broken !!!

 * -n -e \n  /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la -> (none)

 *  !!! /usr/lib64/gcc/x86_64-pc-linux-gnu/4.2.2/libgij.la not owned by any package is broken !!!

 * -n -e \n  /usr/lib64/gcc/x86_64-pc-linux-gnu/4.2.2/libgij.la -> (none)

 *   /usr/lib64/gcj-4.2.2/libjvm.la -> sys-devel/gcc

 *   /usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libgij.la -> sys-devel/gcc

 *   /usr/lib/gcc/x86_64-pc-linux-gnu/4.2.2/libgij.la -> sys-devel/gcc

(...)

 * All prepared. Starting rebuild

 emerge --oneshot -pv =sys-devel/gcc-4.1.2 =sys-devel/gcc-4.2.2
```

Niestety rekompilacja gcc nie likwiduje problemu. Co robic?

```
[ebuild   R   ] sys-devel/gcc-4.2.2  USE="fortran gcj mudflap nls openmp (-altivec) -bootstrap -build -doc -gtk (-hardened) -ip28 -ip32r10k (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB 
```

----------

## mbar

po cholerę Ci w USE flagi fortran gcj mudflap openmp?

wywal je i przekompiluj system (cały najlepiej).

----------

## kacper

 *mbar wrote:*   

> 
> 
> po cholerę Ci w USE flagi fortran gcj mudflap openmp?
> 
> 

 

Hm, ja też mam 2 z tych wspomnianych flag, gdzie poczytać z jakimi flagami powinno być skompilowane gcc? W sumie nigdy nie miałem z nim problemu, ale skoro mówisz, że one nie są potrzebne.

----------

## Lord_Raven

 *mbar wrote:*   

> po cholerę Ci w USE flagi fortran gcj mudflap openmp?
> 
> wywal je i przekompiluj system (cały najlepiej).

 

gcj - byla wymagana przez jakas aplikacje. W tej chwili nie umiem sobie przypomniec jaka a co gorsze nie bardzo wiem jak to sprawdzic :/

fortran, mudflap, openmp - tych flag recznie nie ustawialem. Nie ma ich w make.conf ani w packages.use, wiec domyslam sie ze to zasluga profilu. Czy aby na pewno mam je recznie maskowac??

----------

## sir KAT

Te flagi raczej nie mają wpływu na ten problem, ja mam ten sam problem na dwóch maszynach a na jednej już chyba od roku.

----------

## mar_rud

O ile się nie myle problem występuje od długiego czasu i nawet jest przyklejony wątek w "Portage & Programming" na ten temat:

https://forums.gentoo.org/viewtopic-t-444323-highlight-libgcj.html

Nie wnikałem za bardzo co jest źle, ale zdaje się, że coś z gcc, nie z gentoo.

Zatem co robić? Zacząć od przeszukiwania forum  :Wink:  Wpisując "libgcj revdep-rebuild" są 54 wyniki z czego pewnie z 1/3 na ten właśnie temat.

Ja zastosowałem "fix'a" z ln -s i co upgrade gcc trzeba powtarzać, więc to raczej obejście niż naprawa.

----------

## mbar

polecam wyłączyć wskazane przeze mnie flagi (oprócz gcj jak ktoś potrzebuje), np. fortran raczej nie jest nikomu potrzebny, a potrafi rozwalić właśnie emerge gcc.

----------

## SlashBeast

```
[ebuild   R   ] sys-devel/gcc-4.2.2  USE="fortran mudflap nls openmp (-altivec) -bootstrap -build -doc -gcj -gtk (-hardened) -ip28 -ip32r10k (-multilib) -multislot (-n32) (-n64) -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB 

```

One są domyślnie włączone, nigdy nie miałem problemów.

----------

## Arfrever

 *mbar wrote:*   

> polecam wyłączyć wskazane przeze mnie flagi (oprócz gcj jak ktoś potrzebuje)

 

Odnośnie Mudflap i OpenMP można poczytać:

Mudflap Pointer Debugging

GOMP

Perduodu linkėjimus

Arfrever

----------

## sir KAT

 *mbar wrote:*   

> np. fortran raczej nie jest nikomu potrzebny, a potrafi rozwalić właśnie emerge gcc.

 

Heh, może jestem dziwny ale ja używam fortrana  :Neutral: 

----------

## mbar

miałem na myśli normalne używanie systemu, a nie kogoś, kto musi coś w tym pisać  :Wink:  żaden z programów instalowanych przeze mnie z portage w ciągu ostatnich 3 albo i więcej lat nie wymagał kompilatora fortrana.

----------

## mar_rud

Hmm. wydawało mi się, że wątek nie był o flagach i które są komu potrzebne. 

Co do fortrana, to może bezpośrednio rzadko ktoś może potrzebować, ale ja sprawdziłem i nieświadomie używam  :Smile:  . Np. octave, z którego czasami korzystam do jakiś operacji macierzowych itp matematycznych wyliczeń potrzebuje kompilatora fortrana. Co do gcj, jakoś mi się kojarzy, że ostatnio (<1rok) aplikacja, raczej specyficzna, która potrzebowała tego gcj i nie chciała dalej się ruszyć. Niestety nie pamiętam co, ale nic z popularnych rzeczy.

Ok, przegrepowałem się przez /usr/portage i znalazłem winowajcę, który umierał bez gcj:

pdftk, do manipulacji pdf'ami. Poniżej wycinek z ebuilda:

```
pkg_setup() {

if [ -z "$(type -P gcj 2>/dev/null)" ]; then

eerror 'It seems that gcj is not in ${PATH}.'

eerror "Re-emerge sys-devel/gcc with \"gcj\" enabled."

die "gcj not found."

fi

}
```

Wśród wszystkich ebuildów jest to chyba jedyny przypadek, ale na mnie akurat trafiło  :Smile: . Poza tym jest jeszcze jakieś libffi wspomina o gcj, oraz eclipse-* wykrywa i dodaje obsługę jeśli znajdzie.

Jak widać niektórzy mogą potrzebować gcj i fortrana, nawet o tym nie wiedząc.

----------

