This works for me.

sqlplus '/ as sysdba'

SQL> select * from v$version;

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Solaris: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production


SQL> create role xxxx;
Role created.
SQL> GRANT CREATE VIEW TO xxxx;
Grant succeeded.
SQL> GRANT CREATE TABLE TO XXXX;
Grant succeeded.
SQL> GRANT CREATE SESSION TO XXXX;
Grant succeeded.
SQL> GRANT ALTER SESSION TO XXXX;
Grant succeeded.

SQL> grant select on dba_role_privs to XXXX;

SQL> create user yyy identified by yyy default tablespace users
temporary tablespace temp;


SQL> grant xxxx to yyy;

SQL> exit

sqlplus yyy/yyy

Grant succeeded.
SQL> show user
USER is "YYY"

SQL> select * from dba_role_privs;

GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SYS GL_RUID YES YES
SYS EXP_FULL_DATABASE YES YES
SYS CONNECT YES YES
DBA DATAPUMP_IMP_FULL_DATABASE NO YES
IMP_FULL_DATABASE SELECT_CATALOG_ROLE NO YES
.....
......
......