Please consider dropping *_API_SUBJECT_TO_CHANGE
Requiring -DGCK_API_SUBJECT_TO_CHANGE and -DGCR_API_SUBJECT_TO_CHANGE for the whole API is very inconvenient for the library users. If the there's indeed a chance of useful API just going away or, worse, changing semantics without a library version change, it makes the library very close to useless.
Gcr has been around for quite some time, perhaps the API is proven enough now?
Sure there have been API changes recently, but they went along with a library version number change anyway. Maybe those macros have been a bad idea all along.