[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Ayuda con full-upgrade y dependencias (Noviembre 2011 - Debian testing)



El Fri, 18 Nov 2011 20:03:08 -0300, Angel Claudio Alvarez escribió:

> El vie, 18-11-2011 a las 12:45 +0000, Camaleón escribió:

(...)

>> > Es mas peligroso vi que un compilador
>> 
>> No he tenido ni leído problemas con vi. ¿Sabes de alguna catástrofe que
>> te pueda generar en concreto ese paquete?
>> 
> editar un archivo binario, por ejemplo y meter un dedazo editar un
> archivo de configuracion y modificarlo sin querer etc, etc, etc

Pero ese error no es exclusivo de vi.

>> > Por favor especificame un paquete que dependa de una version en
>> > concreto de gcc
>> > Yo he compilado modulos para kernels con una version diferente de gcc
>> > a la que se compilo el kernel, sin problemas
>> 
>> Los drivers propietarios de nvidia, por ejemplo. Está documentado en su
>> página.
> 
> error: nvidia te avisa que vas a compilar el modulo con un gcc distinto
> del que se compilo el kernel. Vos podes ignorar tranquilamente ese
> mensaje y compilar con la version de gcc que tengas. Es muy habitual en
> sid. Me he cansado de hacerlo y jamas tuve problemas

Repito, esta documentado por nvidia en su archivo README. Que te permita 
ignorarlo y continúe con la instalación es simple casualidad. Que te 
funcione el driver y no te dé problemas, ídem. Nvidia es clara el 
respecto: la versión de compilador debe coincidir con la versión del 
compilador usado para el kernel.

***
http://us.download.nvidia.com/XFree86/Linux-x86_64/285.05.09/README/commonproblems.html

Compiling the NVIDIA kernel module gives this error:

You appear to be compiling the NVIDIA kernel module with
a compiler different from the one that was used to compile
the running kernel. This may be perfectly fine, but there
are cases where this can lead to unexpected behavior and
system crashes.

If you know what you are doing and want to override this
check, you can do so by setting IGNORE_CC_MISMATCH.

In any other case, set the CC environment variable to the
name of the compiler that was used to compile the kernel.

You should compile the NVIDIA kernel module with the same compiler 
version that was used to compile your kernel. Some Linux kernel data 
structures are dependent on the version of gcc used to compile it; for 
example, in include/linux/spinlock.h:

        ...
        * Most gcc versions have a nasty bug with empty initializers.
        */
        #if (__GNUC__ > 2)
          typedef struct { } rwlock_t;
          #define RW_LOCK_UNLOCKED (rwlock_t) { }
        #else
          typedef struct { int gcc_is_buggy; } rwlock_t;
          #define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
        #endif

If the kernel is compiled with gcc 2.x, but gcc 3.x is used when the 
kernel interface is compiled (or vice versa), the size of rwlock_t will 
vary, and things like ioremap will fail. To check what version of gcc was 
used to compile your kernel, you can examine the output of:

    % cat /proc/version

To check what version of gcc is currently in your $PATH, you can examine 
the output of:

    % gcc -v
***

Saludos,

-- 
Camaleón


Reply to: