Bryce CR brycecr at
Tue Aug 2 21:15:05 CEST 2011

Hi Hackers,

I'm attempting to build the Fiasco.OC kernel including several
additional files. When I attempt to make, I get endless complaints about
multiple definitions of functions. The catch is, every single file I
have added has a unique include guard...

A few things I want to check:
> My files are written in standard c++ format, not Preprocess compatible
format. E.g. I make use of namespaces. I haven't added the files to any
modules lists / Makerules files, so my thinking is that I'm just trying
to link with these files but not use any of their features (for testing
purposes). My impression was that namespace usage would be tolerated for
files used thus: Preprocess doesn't complain. 
> The c++ preprocessor is still run, correct? I don't see include guards
in kernel source files: are these generated by Preprocess, or simply not
> Specifically, the errors start appearing at "==> Archiving into
jdb_compound.o," and they complain about finding a definition of a
function in my source file which was already defined in an object file,

jdb-ia32-amd64.o: In function
/home/bryce/parsnip/fiasco_modified_src/recovery/src/kernel/fiasco/src/kern/R_test11impl.cpp:499: multiple definition of `prio_queue_rel::query_iterator_priority__element::next()'
jdb.o:/home/bryce/parsnip/fiasco_modified_src/recovery/src/kernel/fiasco/src/kern/R_test11impl.cpp:499: first defined here

I know that's not a lot to go on, but I'm not sure what else would be
useful. Please let me know what I do to help you help me...

Thank you!

More information about the l4-hackers mailing list