It's called CrossStack etherchannel, an it is supported in newer versions of IOS (some 12.1.19 we had did not support it, but now we have 12.2.25 that supports it).
Trunk works fine with etherchannel. L2/L3 depends on what do you want to load balance upon, since etherchannel uses hash algorithms to assign link to a flow.