Is aliases.h really absent? If so, you find a complete tarball, including
aliases.h, at
http://ftp.gnu.org/gnu/libiconv/libiconv-1.12.tar.gz
Seems it's named 'aliases2.h':
$ find libiconv-1.12 | grep aliases
libiconv-1.12/lib/genaliases.c
libiconv-1.12/lib/aliases2.h
libiconv-1.12/lib/aliases.gperf
libiconv-1.12/lib/genaliases2.c
libiconv-1.12/gnulib/doc/glibc-headers/aliases.texi
That's on your disk. It's correct in the tarball to which I pointed you:
$ wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.12.tar.gz
$ tar tvfz libiconv-1.12.tar.gz | grep aliases
-rw-r--r-- root/root 8177 2007-11-11 17:47 libiconv-1.12/lib/aliases.gperf
-rw-r--r-- root/root 1120 2005-05-19 19:14 libiconv-1.12/lib/aliases2.h
-rw-r--r-- root/root 69143 2007-11-11 17:47 libiconv-1.12/lib/aliases.h
-rw-r--r-- root/root 614 2007-11-11 17:47 libiconv-1.12/lib/aliases_aix.h
-rw-r--r-- root/root 80 2007-11-11 17:47 libiconv-1.12/lib/aliases_osf1.h
-rw-r--r-- root/root 1567 2007-11-11 17:47 libiconv-1.12/lib/aliases_dos.h
-rw-r--r-- root/root 3025 2005-05-19 19:14 libiconv-1.12/lib/genaliases.c
-rw-r--r-- root/root 2523 2005-05-19 19:14 libiconv-1.12/lib/genaliases2.c
-rw-r--r-- root/root 375 2007-11-11 17:47
libiconv-1.12/lib/aliases_extra.h
Where did you download the broken libiconv-1.12 source package?