[Nestedvm] building nestedvm with gcc 4.x
Charles Oliver Nutter
headius at headius.com
Thu May 6 14:11:23 EDT 2010
Wow, this sounds like a great find. I have been staying off NestedVM
hackery because I didn't want to futz with getting an older GCC
installed (I'm on OS X).
As it happens, the other machine I have access to is Ubuntu :)
What system are you on? Maybe you can post updated instructions (w/
patch) for getting the cross-compiler built?
On Thu, May 6, 2010 at 12:09 PM, Simmons, Aaron
<asimmons at rosettastone.com> wrote:
> As mentioned earlier, trying to build the C++ part of nestedvm (make cxxtest) with gcc 4.x will fail with this error:
> ../../gcc-3.3.6/gcc/f/com.c:11080: error: conflicting types for 'ffecom_gfrt_basictype'
> ../../gcc-3.3.6/gcc/f/com.h:236: error: previous declaration of 'ffecom_gfrt_basictype' was here
>
> The workaround has been to use gcc 3.3.6, which can be painful on systems where its unavailable (newer Ubuntu or any recent Mac OS X).
>
> However, I've figured out a workaround that allows gcc 4.x to be used. It turns out the error is coming from a bona-fide bug in the gcc 3.3.6 code: the function prototype for "ffecom_gfrt_basictype" is different in com.h than it is in com.c. (It looks like a copy-paste bug for the nearby function "ffecom_gfrt_kindtype".) Apparently old versions of gcc would let this kind of prototype mismatching slide, whereas gcc 4.x enforces it. Anyway, the fix is to simply make the prototype of "ffecom_gfrt_basictype" in com.h match the function in com.c. Then the rest of it compiles and works!
>
> I'm attaching a patchfile that implements the fix. I think it would be a good idea to have the nestedvm build process apply this patch to gcc before it builds it. This will allow nestedvm to be used on many newer platforms. :)
>
>
> Thanks,
> aaron
>
>
> _______________________________________________
> Nestedvm mailing list
> Nestedvm at lists.hcoop.net
> https://lists.hcoop.net/listinfo/nestedvm
>
>
More information about the Nestedvm
mailing list