<div dir="ltr"><div><div><div><div><div>At some point between branch mono-2-10-9 and branch master, a change was made to /mono/mini/main.c:<br><br></div>branch mono-2-10-9:<br><br></div>main.c:<br>#include <config.h><br>
#include "mini.h"<br>#ifndef HOST_WIN32<br>#include "buildver.h"<br>#endif<br><br><br></div>branch master:<br>#include <config.h><br>#include "mini.h"<br>#ifndef HOST_WIN32<br>#ifdef HAVE_SGEN_GC<br>
#include "buildver-sgen.h"<br>#else<br>#include "buildver.h"<br>#endif<br>#endif<br><br></div>This makes main.c impossible to compile when buildver-sgen.h is generated and not buildver.h. First of all, HAVE_SGEN_GC is never defined for files in /mini as far as I can tell, so main.c always attempts to include buildver.h, which does not exist when buildver-sgen.h is generated instead.<br>
<br>However, even if you explicitly define HAVE_SGEN_GC in CFLAGS, etc... then you will still get an error, in mini.h, because it believes it is an error to have either HAVE_SGEN_GC or HAVE_BOEHM_GC defined when mini.h is included, as /mini code should not have dependencies on the GC being used, so it says:<br>
<br></div><div>mini.h:<br>/*<br> * The mini code should not have any compile time dependencies on the GC being used, so the same object file from mini/<br> * can be linked into both mono and mono-sgen.<br> */<br>#if defined(HAVE_BOEHM_GC) || defined(HAVE_SGEN_GC)<br>
#error "The code in mini/ should not depend on these defines."<br>#endif<br><br><br></div><div>So, either way, main.c won't compile without modification. Is the error in /mono/mini/mini.h no longer valid? Or was the change to /mono/mini/main.c to depend on the HAVE_SGEN_GC define a regression?<br>
<br></div><div>Thanks,<br>Jeremy<br></div></div>