[gccsdk] [GCCSDK commit] jjvdgeer - r4136 - trunk/autobuilder/develop/vala

Peter Naulls peter at chocky.org
Tue Sep 29 13:14:33 PDT 2009

Jan-Jaap van der Geer wrote:
> Peter Naulls wrote:

>> You need to adjust your patches so they have #if __riscos__ wrappers.
>> You would need to do that anyway, if you were planning to submit
>> upstream.  Then you can use the same source for the native and
>> cross builds.
> Either I don't understand or I think it is not going to work.
> I think you're suggesting the patches will contain these #if __riscos__ wrappers. I checked the FAQ and 
 > although Vala has a minimal preprocessor, it has #if, but no #define and
> as far as I know no predefined values. However, the valac executable has a -D to 
 > preprocessor stuff, so it would be possible to define __riscos__ 
within the
> makefile. 

Yes, you would definitely not be using a #define here, even for C.  In
the case of GCC, it internally defines __riscos__, but you could easily
arrange for the makefile to pick up an environment variable which you
set when calling ro-make/make in setvars and is then passed as -D.

> But that is not the main issue. As the patches operate on the .vala files, the 
> .vala files will be newer than the .c files which are generated from the .vala files 
 > (they are just supplied so you do not need a vala compiler to build 
it. A "make clean"
> will remove them...). So "#if __riscos__" or not, the vala compiler will be needed to 
 > compile a native compiler if we are applying the patches before
> building a native compiler. Chicken and egg...

Couple of things you can do here which may help.  One is to build the 
native and cross compiler in different trees from the source; which
configure will generally handle seamlessly for you.   If date stamps are
a problem, you can also play games with 'touch', as some of the builds
do.  Finally, you are free to reverse/reapply patches if necessary.

Note also the procedure in the Firefox build where it applies the
patches itself; although this is partly due to is atypical code
check out.

More information about the gcc mailing list