Problem compiling Fiasco Kernel (kip.cc)

olivier olivier.landemarre at free.fr
Sat Nov 28 22:41:41 CET 2009


Hello all

I'm currently trying compil current Fiasco Kernel under Cygwin, 
unfortunatly I have a problem of compilation. when compiler try compil 
kip.cc I have an assembler message that said: Error: junk at the end of 
line, first unrecognized character is ','

Any Idea?

Thanks

Olivier

PS: my kip.cc

// AUTOMATICALLY GENERATED -- DO NOT EDIT!         -*- c++ -*-

#include "kip.h"
#include "kip_i.h"

#line 47 "/tudos/kernel/fiasco/src/abi/kip.cpp"

//============================================================================ 


#line 182 "/tudos/kernel/fiasco/src/abi/kip.cpp"

//---------------------------------------------------------------------------- 


#line 188 "/tudos/kernel/fiasco/src/abi/kip.cpp"

Kip *Kip::global_kip;
#line 192 "/tudos/kernel/fiasco/src/abi/kip.cpp"

asm(".section .initkip.version, \"a\", %progbits        \n"    \
   ".string \"" CONFIG_KERNEL_VERSION_STRING "\"       \n"    \
   ".previous                                          \n");
#line 196 "/tudos/kernel/fiasco/src/abi/kip.cpp"

asm(".section .initkip.features.fini, \"a\", %progbits  \n"    \
   ".string \"\"                                       \n"    \
   ".previous                                          \n");

#line 110 "/tudos/kernel/fiasco/src/abi/kip.cpp"


bool Kip::add_mem_region(Mem_desc const &md)
{
 Mem_desc *m = mem_descs();
 Mem_desc *end = m + num_mem_descs();
 for (;m<end;++m)
   {
     if (m->type() == Mem_desc::Undefined)
   {
     *m = md;
     return true;
   }
   }

 // Add mem region failed -- must be a Fiasco startup problem.  Bail out.
 assert (0);

 return false;
}

#line 130 "/tudos/kernel/fiasco/src/abi/kip.cpp"


Mem_region Kip::last_free() const
{
 Mem_desc const *m = mem_descs();
 Mem_desc const *const end = m + num_mem_descs();
 Mem_region r;
 r.start = 0;
 r.end   = 0;
 for (;m<end;++m)
   {
     Address s = m->start();
     Address e = m->end();

     // Speep out stupid descriptors (that have the end before the start)
     if (s>=e)
   {
     const_cast<Mem_desc*>(m)->type(Mem_desc::Undefined);
     continue;
   }

     if (m->is_virtual())    // skip virtual memory descriptors
   continue;

     switch (m->type())
   {
   case Mem_desc::Conventional:
     if (e>r.end)
       r.end = e;
     if (s>r.start)
       r.start = s;
     break;
   case Mem_desc::Reserved:
   case Mem_desc::Dedicated:
   case Mem_desc::Shared:
   case Mem_desc::Arch:
   case Mem_desc::Bootloader:
     if (e>=r.start && e<r.end)
       {
         r.start = e + 1;
       }
     if (s>=r.start && s<r.end)
       {
         r.end = s - 1;
       }
     break;
   default:
     break;
   }
   }
 return r;
}




More information about the l4-hackers mailing list