Those are not actually the same. There are several differences, but the most obvious one is that the standard ABI on x86-64 Linux passes integer parameters in the following order: rdi, rsi, rdx, rcx, r8, r9.
I noticed this immediately the first time I tried reading some Windows disassembly, as “rdi rsi rdx” is very thoroughly burned into my brain...
http://wiki.osdev.org/System_V_ABI
Projects that are meant to be widely reused should export their functionality through that simple ABI. Otherwise people will rewrite it in C.