I agree that using /tmp is a problem, but this is definitely not the way to fix it. First of all, it breaks LinuxBIOS only builds, and secondly, it is dependent on how buildrom works, which may or may not change on a moment's notice. it would be smarter to use sed to modify the configuration on the fly, as the attached patch indicates.
While very elegant, I think changing the config file on the fly makes it harder to see whats going on. Rather than copy the payload into temp can we not just copy the payload into $(LINUXBIOS_TARGET_NAME)
Then the config file just has PAYLOAD ../olpcpayload.elf which should work for both buildrom and non-buildrom builds.
Perhaps we can build and export a $(LINUXBIOS_PAYLOAD_PATH)? So the higher level make code knows where to stick it.
That to me would seem to be a much more discoverable behavior than changing the config file automagically.