I found no other way to make solaris use the temporary, privacy-enhanced address than to patch in.ndpd as follows:
--- in.ndpd.orig.dis 2015-11-07 10:56:48.776716882 +0100
+++ in.ndpd.dis 2015-11-07 12:19:59.009907616 +0100
@@ -1,4 +1,4 @@
-disassembly for in.ndpd.orig
+disassembly for in.ndpd
section .plt
@@ -14442,7 +14442,7 @@
prefix_update_k+0x157: 33 d2 xorl %edx,%edx
prefix_update_k+0x159: 83 c8 00 orl $0x0,%eax
prefix_update_k+0x15c: 74 05 je +0x5 <prefix_update_k+0x163>
- prefix_update_k+0x15e: ba 08 00 00 00 movl $0x8,%edx
+ prefix_update_k+0x15e: ba 0c 00 00 00 movl $0xc,%edx
prefix_update_k+0x163: 83 ec 0c subl $0xc,%esp
prefix_update_k+0x166: 6a 00 pushl $0x0
prefix_update_k+0x168: 6a 00 pushl $0x0
This adds the "PREFERRED" flag to the "TEMPORARY" address generated by in.ndpd:
net0: flags=120002000841<UP,RUNNING,MULTICAST,IPv6,PHYSRUNNING> mtu 1492 index 2
inet6 fe80::219:99ff:****:84d5/10
net0:1: flags=120002080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6,PHYSRUNNING> mtu 1492 index 2
inet6 2003:48:2937:5000:219:99ff:****:84d5/64
net0:2: flags=120c02080841<UP,RUNNING,MULTICAST,ADDRCONF,IPv6,PREFERRED,TEMPORARY,PHYSRUNNING> mtu 1492 index 2
inet6 2003:48:2937:5000:70b7:8159:937c:f526/64
If you know a better way to make the privacy-enhanced address the default one, please leave a comment!