This came to my attention when trying to build several of my own projects, but also showed up when emerging certain packages from portage (a good example is aaquake2)... io.h is no longer in /usr/include/asm/, but as I have come to find out, it now resides in /usr/include/sys/io.h. This obviously leads to being unable to compile software that expects this file to be there... especially older code. There are definitely packages in portage where this hasn't been taken into account. The above listed package is, again, a good example.
Steps to Reproduce:
1. Build a gentoo system
2. try and emerge aaquake2 (or any application coded to #include <asm/io.h>
3. watch as the compilation can't be completed
I was left with an uncompiled package.
Compilation should have succeeded.
I corrected the issue (so far it seems), by creating a symling from /usr/include/sys/io.h to /usr/include/asm/io.h
Yeah, you need to fix your software; symlinking is completely wrong solution. NOTABUG.