airbus-seclab / ramooflax

a bare metal (type 1) VMM (hypervisor) with a python remote control API
178 stars 35 forks source link

Compiling under gcc-4.6 #1

Closed nicetuxedo closed 12 years ago

nicetuxedo commented 12 years ago

Hello,

I am trying to compile ramooflax under gcc-4.6 and I am getting strange build errors which seem to be easy to fix. But I can not figure out from where are they coming.

Here is the output

In file included from include/msr.h:183:0, from loader/src/core/init.c:24: include/svm_msr.h: At top level: include/types.h:141:13: error: duplicate member ‘raw’ include/types.h:142:13: error: duplicate member ‘sraw’ include/types.h:143:13: error: duplicate member ‘byte’ include/types.h:148:15: error: duplicate member ‘_low’ include/types.h:149:15: error: duplicate member ‘_high’ include/types.h:164:13: error: duplicate member ‘blow’ include/types.h:165:13: error: duplicate member ‘bhigh’ include/types.h:169:18: error: duplicate member ‘wlow’ include/types.h:173:15: error: duplicate member ‘whigh’ include/types.h:177:13: error: duplicate member ‘low’ include/types.h:181:17: error: duplicate member ‘high’ include/types.h:101:13: error: duplicate member ‘raw’ include/types.h:102:13: error: duplicate member ‘sraw’ include/types.h:103:13: error: duplicate member ‘byte’ include/types.h:108:15: error: duplicate member ‘_wlow’ include/types.h:109:15: error: duplicate member ‘_whigh’ include/types.h:120:14: error: duplicate member ‘blow’ include/types.h:121:14: error: duplicate member ‘bhigh’ include/types.h:125:12: error: duplicate member ‘wlow’ include/types.h:129:16: error: duplicate member ‘whigh’ include/types.h:81:13: error: duplicate member ‘raw’ include/types.h:82:13: error: duplicate member ‘sraw’ include/types.h:83:13: error: duplicate member ‘byte’ include/types.h:88:15: error: duplicate member ‘blow’ include/types.h:89:15: error: duplicate member ‘bhigh’ loader/src/core/init.c:32:4: error: unknown field ‘raw’ specified in initializer loader/src/core/init.c:33:4: error: unknown field ‘raw’ specified in initializer loader/src/core/init.c:34:4: error: unknown field ‘raw’ specified in initializer loader/src/core/init.c:35:4: error: unknown field ‘raw’ specified in initializer loader/src/core/init.c: In function ‘init_pagemem_1G’: loader/src/core/init.c:54:7: error: ‘pdpe_t’ has no member named ‘raw’ loader/src/core/init.c: In function ‘init_pagemem_2M’: loader/src/core/init.c:64:7: error: ‘pdpe_t’ has no member named ‘raw’ loader/src/core/init.c:67:3: error: ‘pde64_t’ has no member named ‘raw’ loader/src/core/init.c: In function ‘init_pagemem’: loader/src/core/init.c:75:4: error: ‘pml4e_t’ has no member named ‘raw’ loader/src/core/init.c:82:7: error: ‘cr3_reg_t’ has no member named ‘raw’ loader/src/core/init.c:86:4: error: ‘cr3_reg_t’ has no member named ‘low’ loader/src/core/init.c:87:4: error: ‘amd_efer_msr_t’ has no member named ‘raw’ loader/src/core/init.c:87:4: error: ‘amd_efer_msr_t’ has no member named ‘raw’ loader/src/core/init.c:73:14: warning: variable ‘cr3’ set but not used [-Wunused-but-set-variable] make[2]: * [loader/src/core/init.o] Error 1 make[1]: * [loader/src/core/build.o] Error 2 make: *\ [loader] Error 2

When I pull out the definitions from involved in error structures (raw_xx_bits_entry, raw_msr_entry, amd_syscfg_msr) into separate file it compiles.

Would be happy to hear any suggestions, Thank you

PS: I am not sure if this is the right place for questions/issues of this type.

sduverger commented 12 years ago

GCC-4.6 is not supported by Ramooflax. The Makefile rules force GCC-4.4 usage. Many things seem to have changed between these two releases. I'm having a look a compilation issues, but i can't promess GCC-4.6 will be the next compiler for Ramooflax.

Do you have special needs (C1X ? ...)

nicetuxedo commented 12 years ago

No special needs. I was trying to compile under my stock compiler in Open SuSE 12 which is 4.6

Here is the answer I've got for this error at http://www.codeproject.com/Questions/314231/Nested-and-unnamed-unions-and-structures-do-not-co

I would switch back to 4.4 for now.

sduverger commented 12 years ago

It is fixed. I think you can now use gcc 4.6 but prefer using 4.4 as it is known to work.