Skocz do zawartości

Jak Zrobić Pakiet I686 Na 64Bitowej Fedorze?


SeeM

Rekomendowane odpowiedzi

Mam taki problem:

# rpmbuild --rebuild --target=i686 libtxc_dxtn-1.0.0-123.fc23.src.rpm

rpmbuild nie ma nic przeciwko, ale kompilator się wykłada:

/usr/bin/ld: i386 architecture of input file `txc_compress_dxtn.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `txc_fetch_dxtn.o' is incompatible with i386:x86-64 output
/usr/bin/ld: txc_compress_dxtn.o: file class ELFCLASS32 incompatible with ELFCLASS64
/usr/bin/ld: final link failed: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'libtxc_dxtn.so' failed
make: *** [libtxc_dxtn.so] Error 1
błąd: Błędny stan wyjścia z /var/tmp/rpm-tmp.0quweq (%build)

Ja się na tym zupełnie nie znam. Czy ktoś mógłby łopatologicznie wyjaśnić zależności, których może brakować? ALbo flagi kompilatora? Nie wiem nawet od czego zacząć.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 months later...

Też probuję na innym systemie i mam troche problemów z tym,

 -  udało mi się skompilować zależnosci i mese na 32bit,

    ale żeby nie uszkodzić plików w systemie umiejscowiłem wszystkie pliki prefix=/usr/local/

     Ale jakoś to miejsce mi nie pasuje , to tak jakbym robił pakiet eksperymentalny czy coś ...

 

      Chciałbym sie dowiedziec jak to jest w fedorze, ale dawno nie aktualizowalem systemu i przy np instalacji woła aktualizacje glibc i się na tym wykrzacza,

         instalowanie Fedory na nowo też nie pomaga, bo aktualizacja się zatrzymuje, wystakuje nieoczekiwany bląd 250 ,

          yum ekstender nie idzie uruchomić ponownie az do rebootu  i takie tam ...  ( nie wazne )

 

    Mógłby podac ktoś gdzie sa instalowane pliki pakietów 32bit w Fedorze ?

Zgaduje ze dla paczek 64bit jest tak

  /usr/bin        /usr/lib64       /usr/include/       /usr/lib64/pkgconfig/

 

A w paczkach 32 bit jak jest ?

   Najbardziej mnie trapi gdzie sa binarki , bo nie mogą być w tym samym katalogu bo by się nadpisały.

 

#-------------------------------------------------------------------------------------------

Edyt:

Dobra wyspałem się i doszłem do wniosku że mogę zajrzeć do repo

# binarka i386
/usr/bin/
/usr/lib/
/usr/share/doc/
/usr/share/man/
#    devel i386
/usr/include/
/usr/lib/

# binarka 64
/usr/bin/
/usr/lib64/
/usr/share/doc/
/usr/share/man/
# devel 64
/usr/include/
/usr/lib64/

Nie rozumiem... pliki binarne się nadpisują ?

Odnośnik do komentarza
Udostępnij na innych stronach

SeeM

Wszystkie zależności budowania muszą być 32-bitowe.

 

Gdyby pkgconfig miał jakieś problemy - wyeksportuj PKG_CONFIG_PATH (choć nie musi to byc konieczne):

export PKG_CONFIG_PATH=%{_libdir}/pkgconfig

Przed budową wyeksportuj odpowiednie flagi

export CFLAGS='-m32'

export CXXFLAGS='-m32'

export LDFLAGS='-m32'

Czy na forum jest jakiś pracownik RedHata? Może się mylę, ale flagi kompilatora powinny być zapewnione przez %{optflags} definiowane dla dostępnych architektur w plikach "rpmrc", a wywołane przez opcję rpmbuild --target=i586 . Czy ktoś próbował to rozgryźć - "naprawić"?

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki. Chcę uruchomić Steama na Fedorze 23, więc przebudowuję sobie pakiety z rpmfusion.

 

 

Ja mam steama na F23 i żadnych pakietów nie przebudowywałem. po prostu doinstaluj so wypluwa Steam przy instalacji (przepraszam nie pamiętam co, pare miesięcy temu to było) w wersji 32 bitowej

Sciagnij z rpmfind.net czy gdzie tam znajdziesz.

Jak mu znowu jakaś ścieżka nie pasuje, to symbolic link i po sprawie, U mnie śmiga wszystko, chociaż nie wszystkie gierki chodzą bo za starą karte graficzną już mam, a nowsze gierki wymagają nowszego OpenGLa

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 months later...

Dzięki. Chcę uruchomić Steama na Fedorze 23, więc przebudowuję sobie pakiety z rpmfusion.

 

 

Ja mam steama na F23 i żadnych pakietów nie przebudowywałem. po prostu doinstaluj so wypluwa Steam przy instalacji (przepraszam nie pamiętam co, pare miesięcy temu to było) w wersji 32 bitowej

Sciagnij z rpmfind.net czy gdzie tam znajdziesz.

Jak mu znowu jakaś ścieżka nie pasuje, to symbolic link i po sprawie, U mnie śmiga wszystko, chociaż nie wszystkie gierki chodzą bo za starą karte graficzną już mam, a nowsze gierki wymagają nowszego OpenGLa

 

Ale po co tak kombinujecie?

dnf install steam

i działa.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam taki problem:

# rpmbuild --rebuild --target=i686 libtxc_dxtn-1.0.0-123.fc23.src.rpm

rpmbuild nie ma nic przeciwko, ale kompilator się wykłada:

/usr/bin/ld: i386 architecture of input file `txc_compress_dxtn.o' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `txc_fetch_dxtn.o' is incompatible with i386:x86-64 output
/usr/bin/ld: txc_compress_dxtn.o: file class ELFCLASS32 incompatible with ELFCLASS64
/usr/bin/ld: final link failed: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:8: recipe for target 'libtxc_dxtn.so' failed
make: *** [libtxc_dxtn.so] Error 1
błąd: Błędny stan wyjścia z /var/tmp/rpm-tmp.0quweq (%build)

Ja się na tym zupełnie nie znam. Czy ktoś mógłby łopatologicznie wyjaśnić zależności, których może brakować? ALbo flagi kompilatora? Nie wiem nawet od czego zacząć.

 

Można prościej:

setarch i686 rpmbuild --rebuild foo.src.rpm

Pozdrawiam,

Dominik

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...