• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Applikation; Kernel Header Abhängigkeiten

scapa12

Newbie
Hallo zusammen

Ich komme bei einer Neukompilation einer Software nicht weiter.
Die Software implementiert eine Schnittstelle zu einem Power Switch der
an einem USB Port angeschlossen ist.

Ein make ergibt den folgenden Output:
------------------------------
Code:
gcc -g -c USBaccessBasic.c -o                     USBaccessBasic.o
In file included from /usr/include/linux/usb.h:4,
                 from USBaccessBasic.c:17:
/usr/include/linux/mod_devicetable.h:289: error: ‘BITS_PER_LONG’ undeclared here                     (not in a function)
-------------------------------
Include Liste von USBaccessBasic.c
----------------------------------------
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
#include <linux/usb.h>
#include <linux/hiddev.h>

#include "USBaccessBasic.h"
-------------------------------

Die Definition von BITS_PER_LONG befindet sich in Kernel Header Dateien. 

Die binaries für i386 32bit sind im Paket enthalten jedoch nicht für 64bit.
Meine Maschine:
AMD Athlon 64bit mit SuSE 10.2 - 64 bit. Entwicklungsumgebung installiert.

Wie löse ich das am besten?

Danke für eure Hilfe.
 
Hm, du hast einen Bug in glibc gefunden. Denn unter openSUSE 10.2 i586 ist unter /usr/include/asm/types.h BITS_PER_LONG definiert, bei x86_64 hingegen nur in (nonstandard) asm-x86_64/types.h. Mies mies :?
 
OP
S

scapa12

Newbie
Salü jengelh
Erstmal vielen Dank für deine Hilfe.

Hmm, ba so ein Zufall! Alle Jahre wieder mal ein Bug!
Die Frage ist wie bekomme ich das gefixt?
Klar, der richtige Weg ist Bug melden und auf Korrektur warten!
BTW: Wo melde ich den Bug am besten; Bei Suse oder auf Kernel.org?

Als Workaround soll ich den define in /usr/include/asm/types.h aufnehmen?

Danke für die Hilfe
 
Oben