Niekompatybilne libGL.so (X <-> NVidia)

Paweł Sikora pluto w ds14.agh.edu.pl
Śro, 7 Kwi 2004, 12:29:25 CEST


On Wednesday 07 of April 2004 12:07, Marcin Doliński wrote:
> W liście z śro, 07-04-2004, godz. 11:50 +0200, Marcin Doliński napisał:
> > W liście z śro, 07-04-2004, godz. 11:41 +0200, Paweł Sikora napisał:
> > > 3 pytania:
> > > - czy ten oops nastepuje w momencie ladowania modulu?
> > > - czy kernel budowales z opcja CONFIG_REGPARM=y ?
> > > - czy deklaracaje funkcji eksportowanych przez prekompilaty firegl
> > >   maja odpowiednie dyrektywy odnosnie regparm?
> >
> > 1) tak, po czym moduł jest 'in use' i nie działa - mogę załadować moduł
> > radeon i on działa.
> > 2) Nie wiem? mam dystrybucyjny

# grep REGPARM kernel-ia32.config
CONFIG_REGPARM=y

tak na moje oko (po wlasnych przejsciach z nvidia),
to sypia sie wywolania funkcji z prekompilatu,
ktory byl budowany standardowo tj. parametry typu integer/pointer dostawal
przez stos. teraz kompilujac pomost, skrypty z kernela 2.6.x
rzucaja -mregparm=3 do flag i wychodza opsy przy pierwszej
lepszej okazji.

rozwiazanie:

#ifndef SAFE_API_CALL
#define SAFE_API_CALL __attribute__((regparm(0)))
#endif

i pododawac gdzie trzeba. jak tak poprawialem czesc kodu nvidii w DEVEL
bo tez mi sypalo opsami. milej zabawy zycze.

> > 3) jest ok, bo przy nieprawidłowym moduł się nie ładuje.
>
> Jeszcze jedno - moduł nie jest prekompilowany, kompiluje się u mnie na
> maszynie w kernelspace.

a biblioteki libfglrx.a.GCC{2,3} uzywane przy linkowaniu modulu,
to moze sa zrodla, a nie prekompilat (w postaci archiwum), tak? ;)

-- 
If you think of MS-DOS as mono, and Windows as stereo,
  then Linux is Dolby Digital and all the music is free...



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