NOTE
Version 3.2.1 (libffi.so.6.0.4) can be successfully built under Solaris 11.3 GA, either 32-bits or 64-bits. Hence I'm wondering if the 32-bits version built under Solaris 11.3 could be reused on a 32-bits Solaris 11 Express. AFAIK the only dependencies are on libc.so.1 and libgcc_s.so.1.The basic building strategy and general assumptions have been detailed on a previous post Staged Building.
$ pwd
/stage/build
$ ./gnu-build-preparation ../source/.../libffi-3.0.13.tar.gz
...
$ cd libffi/libffi-3.0.13-32
$ source ../setenv-3.0.13 32
...
$ ./configure --build=i386-pc-solaris2.11 --prefix=/opt/usr
...
$ gmake -j3
...
$ sudo gmake install
...
$ sudo zfs snapshot -r .../opt/usr@libffi-3.0.13
$ l /opt/usr/lib/ |grep ffi
drwxr-xr-x ... libffi-3.0.13
-rw-r--r-- ... libffi.a
-rwxr-xr-x ... libffi.la
lrwxrwxrwx ... libffi.so -> libffi.so.6.0.1
lrwxrwxrwx ... libffi.so.6 -> libffi.so.6.0.1
-rwxr-xr-x ... libffi.so.6.0.1
Furthermore, there's no much else to say.
In fact, if all packages were simple to build like this, life would be much better ;-)