I had the same problem after doing an emerge world, and here's how I fixed it. Check /dev/pty* for permissions. I found that all of mine were umask 660. I changed this to 666 after looking at another working machine and seeing how the permissions were there. That fixed the problem immediately.

find /dev/ -name 'pty*' -exec chmod 666 {} \;

This command should fix it, if that is your problem as well.