[linux] Re: niet compilerend systeem (32/64 bits conflict)

Julien Michielsen michkloo op xs4all.nl
Wo Okt 1 14:03:10 CEST 2014


On 09/30/14 18:53, Daniel C. von Asmuth wrote:
> Aldus schreef Julien Michielsen op Tue, Sep 30, 2014 at 04:51:44PM +0200:
>> Het lukt me momenteel niet meer een kernel te compileren. Na de
>> "make bzImage" opdracht krijg ik de melding
>> scripts/mod/empty.c:1:0: error: code model 'kernel' not supported in the
>> 32 bit mode
>> scripts/mod/empty.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
>> scripts/mod/devicetable-offsets.c:1:0: error: code model 'kernel' not
>> supported in the 32 bit mode
>>
>> Ik weet niet of de compiler niet ziet dat ik een 64-bits systeem heb
>> (Athlon 64 X2
>> Dual Core Processor 5200+ ) of dat er een 32bits compiler staat
>> ge??nstalleerd die
>> niet samenwil met de 64-bits processor.
> De vraagstelling laat ons weer raden wat het probleem is, in het bijzonder
> de uitspraak 'het lukt niet meer een kernel te compileren' suggereert dat
> het eerst wel lukte.
>
> Als u een 64-bit processor hebt, waarop een 64-bit kernel draait en u
> probeert een 64-bit kernel te compileren met een 64-bit compiler dan
> zou het moeten lukken.
>
> Met vriendelijke groet,
>
>
>
> Daniel von Asmuth
>
Zoals je schreef: "De vraagstelling laat ons weer raden wat het probleem is"
Dat is eigenlijk ook het niveau waarop ik zelf zit: een compilatie "deed 
het altijd
gewoon": je geeft een commando als "make -j5 bzImage", of  "make -j5 
modules",
en je doet net of je geduld hebt tot het systeem klaar is.  Maar dan 
ineens lukt
het niet meer, en krijg je moeilijke foutmeldingen.
Twee aanvullingen:
Een verandering aan mijn computer: er zit nu een ssd-disk in.  Maar ja, 
dat zou
weinig te maken moeten hebben met de 32/64-bits meldingen.
Tweede aanvulling, die eigenlijk geen aanvulling is:
vanmorgen heb ik nog een keer een "make bzImage" uitgevoerd, en vandaag 
vielen
mij dingen op die ik eerder over het hoofd zag:
# make bzImage
   HOSTCC  arch/x86/tools/relocs_32.o
   HOSTCC  arch/x86/tools/relocs_64.o
   HOSTCC  arch/x86/tools/relocs_common.o
   HOSTLD  arch/x86/tools/relocs
   CHK     include/config/kernel.release
   CHK     include/generated/uapi/linux/version.h
   CHK     include/generated/utsrelease.h
   CC      kernel/bounds.s
kernel/bounds.c:1:0: error: code model 'kernel' not supported in the 32 
bit mode
  /*
  ^
kernel/bounds.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
make[1]: *** [kernel/bounds.s] Error 1
Het meest opvallende is mogelijk de 32-bits klacht: "code model 'kernel' 
not
supported in the 32 bit mode".  Ook volgens de .config in de betreffende
directory (/home/julien/local/linux-3.16.2) is het een 64-bits machine.
Kan het nut hebben (en is daar een parameter voor) bij make op te geven
dat het gaat om een 64-bits machine?  Het lijkt bijna zinloos, want bovenaan
in .config staat

CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y

Maar dan toch: wanneer het systeem ziet dat het om een 64-bitter gaat,
waarom zou het dan  zoals boven staat melden
" kernel/bounds.c:1:0: error: code model 'kernel' not supported in the 
32 bit mode" ??

Nu hopelijk een vraagstelling die niet laat raden wat het probleem is ;-)
bvd
Julien

-- 
Julien Michielsen
julien_at_michkloo.xs4all.nl





More information about the Linux mailing list