Hi,
I have an obscure little error that kept me from running Genode with base-foc. I have a freshly cloned Genode repo on the master branch with a freshly 'make prepare'd base-foc/contrib. The build dir is also freshly created and not modified (no 'MAKE+=j' or something). I'm using Linux 3.0.0-23 x86_64 and GCC 4.7.2 and i already built with FOC on GCC 4.6.x some time ago. The error:
[ "222" -lt "218" ] && \ CPP_ARGS="-DMAXPAGESIZE=0x1000 -DCOMMONPAGESIZE=0x1000 -DCONSTANT(x)=x"; \ cpp -nostdinc -include /home/hyronimo/LokaleDaten1/GenodeLabs/genode/test/base-foc/contrib/l4/pkg/ldscripts/generic.h \ -Wno-trigraphs -Ui386 -P $CPP_ARGS /home/hyronimo/LokaleDaten1/GenodeLabs/genode/test/base-foc/contrib/l4/pkg/ldscripts/ARCH-arm/main_dyn.ld main_dyn.ld cc1: error: missing argument to "-P"
led me to 'base-foc/contrib/l4/pkg/ldscripts/Makefile' where
%.ld: $(PKGDIR)/ARCH-$(ARCH)/%.ld $(SRC_DIR)/Makefile $(SRC_DIR)/generic.h -@$(GEN_MESSAGE) $(VERBOSE)[ "$(LDVERSION)" -lt "218" ] && \ CPP_ARGS="-DMAXPAGESIZE=$(MAXPAGESIZE_$(ARCH)) -DCOMMONPAGESIZE=$(COMMONPAGESIZE_$(ARCH)) -DCONSTANT(x)=x"; \ cpp -nostdinc -include $(SRC_DIR)/generic.h \ -Wno-trigraphs -Ui386 -P $$CPP_ARGS $< $@
checks the LD version that is 222 and not 218 in my scenario, thus CPP_ARGS is empty. But even with a not empty CPP_ARGS i get the error. Thus i removed anything before the cpp-call and inserted the CPP_ARGS directly, one times with the 222-version and another with the 218 version.
Now the build was going on until this came up:
/usr/local/genode-gcc/bin/genode-arm-ld:/home/hyronimo/LokaleDaten1/GenodeLabs/genode/build.test/l4/lib/arm_armv7a/main_rel.ld:1: ignoring invalid character `#' in expression /usr/local/genode-gcc/bin/genode-arm-ld:/home/hyronimo/LokaleDaten1/GenodeLabs/genode/build.test/l4/lib/arm_armv7a/main_rel.ld:1: syntax error
that was caused by comments that were preceeded by '#' instead of '/*', thus i removed all of these faulty comments and now the demo builds and runs fine.
I'm a little confused with this, has anybody a hint for me?