błąd w gcc (było Re: poszukiwany gcc-DESTDIR.patch do gcc 3.0)

Arkadiusz Miskiewicz misiek w pld.ORG.PL
Pią, 3 Sie 2001, 18:01:31 CEST


Jakub Bogusz <qboosh w prioris.mini.pw.edu.pl> writes:

> Że był to widać, bo cvs get SOURCES/gcc-DESTDIR.patch nic nie pisze
> (a pisałby "nothing known..."), ale pliku nie ściąga.
> cvsweb mówi, że pliku nie ma.
Nie dobrze.

> > A patch wygląda tak:
> 
> No to mój problem wystąpił wcześniej, niż to co ten patch poprawia.
> gcc uparł się, że kroskompiluje z i686-pc-linux-gnu na
> i686-pld-linux-gnu. Pomogło podanie %{_target_platform} zarówno jako
> --host i --build (samo --host nie).
> Po tym się skompilował. 
configure jak dostanie CC=i686-pc-linux-gnu to od razu robi
kroskompilację? Chyba nie...

W każdym razie winne są makar rpma:

...
./configure LDFLAGS=-s CFLAGS=-O2 -march=i686 CXXFLAGS=-O2 -march=i686
FFLAGS=-O2 -march=i686 CC=i686-pld-linux-gcc --build=i686-pld-linux
                       ^^^^^^^^^^^^^^^^^^^^^
--prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include
--libdir=/usr/lib --libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/usr/com --mandir=/usr/share/man
--infodir=/usr/share/info
...
a teraz:
[misiek w arm SPECS]$ export CC=gcc2
[misiek w arm SPECS]$ export CXX=g++2
[misiek w arm SPECS]$ rpm -bb sane-backends.spec 
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.53921
Patch #0 (sane-backends-DESTDIR.patch):
Patch #1 (sane-backends-no_libs.patch):
Patch #2 (sane-backends-mustek-path.patch):
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.97914
+ umask 022
+ cd /home/users/misiek/rpm/BUILD
+ cd sane-backends-1.0.5
+ autoconf
+ ./configure LDFLAGS=-s CFLAGS=-O2 -march=i686 CXXFLAGS=-O2
-march=i686 FFLAGS=-O2 -march=i686 CC=i686-pld-linux-gcc
--build=i686-pld-linux --prefix=/usr --exec-prefix=/usr
--bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib
--libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/usr/com --mandir=/usr/share/man
--infodir=/usr/share/info
checking for gcc... i686-pld-linux-gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix... 
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pld-linux-gcc accepts -g... yes
checking build system type... i686-pld-linux-gnu
checking host system type... i686-pld-linux-gnu
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for a BSD compatible install... /usr/bin/install -c
checking whether make sets ${MAKE}... yes
checking how to run the C preprocessor... i686-pld-linux-gcc -E
checking whether i686-pld-linux-gcc needs -traditional... no

i dalej jest kicha jak diabli :-(

W %configure powinno się znaleść coś ala:
        CC="${CC:-%{?__cc:CC=%{__cc}}}" \
        CXX="${CXX:-%{?__cxx:CXX=%{__cxx}}}" \
Tyle, że to będzie działało tylko wtedy gdy w macros znajdzie się
również jakaś domyślna definicja __cxx (której aktualnie nie ma).

Zresztą Artur napewno wymyśli coś lepszego :-)

> Przy okazji wyszły braki Requires w specu gcc z HEAD - mogłem
> zupgradować bez --nodeps same cpp, gcc, libgcc podczas gdy gcc-c++
> i gcc-f77 pozostały stare (oczywiście nie działające) - powinny mieć
> co najmniej Requires cpp = %{version} (lub cpp2 = %{version} w
> gcc2.spec).
Mam nadzieję, że poprawisz gdy będziesz mógł.

> Czy w gnu.org zajmują się jeszcze poprawianiem błędów w gcc 2.95.3?
Wrzucają poprawki do cvsu (chyba będzie jeszcze 2.95.4) ale nie jestem
pewien czy zajmują się wyszukiwaniem błędów w kodzie na podstawie
bugreportu. Tak czy siak warto spróbować.

> W BUGS w przypadku gcc < 3.0 każą upgradować.
Najwyżej oleją sprawę. Ciekawe Debianowy gcc kompiluje poprawnie (tam
mają wersję 2.95.4 z cvsu).

> Jakub Bogusz

ps. my też powinniśmy wziąść się za 2.95.4 z cvsu 
-- 
 Arkadiusz Miśkiewicz, AM2-6BONE, 1024/3DB19BBD
 IPv6 ready PLD Linux at http://www.pld.org.pl/
My jsme Borg. Odpor je marný, budete asimilováni



Więcej informacji o liście dyskusyjnej pld-devel-pl