Ok, I set up a VM for doing builds, and I've got a configuration that works nicely for my purposes:
Specifically, I unset L2TP, PPTP, HTTPS, and FTP in the default Makefile and then build K26 with the options NO_SAMBA=y NO_CIFS=y NO_ZEBRA=y IPV6SUPP=y USB="" and the resulting image has a bit over 300 KB usable JFFS space on my WRT54G.
My ISP (TekSavvy, DSL) is has native IPv6 transit. I did some hacking and added some basic IPv6 configuration options… things seem to be working well.
Changes I made:
-added "ipv6_enable" and "ipv6_global_prefix" nvram variables.
All the subsequent things only take effect if ipv6_enable=1.
-*don't* set the sysctl to disable IPv6 on all interfaces by default. Instead, leave it enabled, and also enable IPv6 forwarding.
-assign "ipv6_global_prefix::1/64" to lan_ifname
-add "-6" to the argument list for pppoecd
-on wan_up, add default ipv6 route via wan_iface (but only if wan is PPPoE.)
-added start and stop_ipv6 functions to services.c, that start and stop radvd. (The start function also writes an appropriate radvd.conf file for the address prefix and interfaces being used.)
I tried to fit these changes in wherever they made the most sense / were the best fit. It seems to be working quite well… the router is happily booting up to serve both IPv4 and IPv6 without and additional scripting. A couple of my changes are a bit hackish/temporary, but most are probably generally helpful. Is there interest in having this committed to the tree?