XXX The way this is done is really wrong, as this function ends up
modifying read-only data marked with 'const'.
The reason we can get away with this is that apparently all the
ports using this code maps text and read-only data read-write.
Reviewed by christos, who suggested "a big XXX comment".