In the current glibc headers package in rawhide the O_RSYNC is defined as __O_SYNC in /usr/include/bits/fcntl-linux.h but the __O_SYNC is defined only in linux kernel private headers. I suppose the O_SYNC without underscore should be used instead as it was done in previous glibc headers package releases.
Yea, all this stuff is in a significant state of flux; it looks like this particular problem has already been fixed upstream. For reasons unknown I can't upload new sources to Fedora rawhide right now. Regardless, I'll have it fixed soon.
I hope that the upstream fix will apply also for Ruby: compiling io.c gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -mtune=generic -fPIC -m64 -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -I. -I.ext/include/x86_64-linux -I./include -I. -o io.o -c io.c io.c: In function 'Init_IO': io.c:11670:45: error: '__O_SYNC' undeclared (first use in this function) io.c:11670:45: note: each undeclared identifier is reported only once for each function it appears in make: *** [io.o] Error 1 make: *** Waiting for unfinished jobs....
(In reply to comment #1) > For reasons unknown I can't upload new sources to Fedora rawhide right now. https://bugzilla.redhat.com/show_bug.cgi?id=872124
I updated rawhide's glibc which should fix this problem.