Based on https://en.bitcoin.it/wiki/Getblocktemplate :
Collect your coinbase transaction (modified or not) at the front of the "transactions" list provided by the server. Apply a double-SHA256 hash to each transaction in the list. Now, as long as the list has more than 1 hash remaining, go through each pair and hash them together. That is, concatenate the first two, double-SHA256 that, repeat for the next two, and so on. If you encounter an odd pair (that is, the hash list ends with a single item and no pairing), concatenate it with itself and hash that. Continue to do that until there is only one hash left: that is your merkle root.
But what if the block is empty? Since there is no other transaction other than the coinbase transaction, it means there is only one hash.
Is the merkle root of an empty block the double hash of the coinbase transaction? Or do I still need to do something other than double hashing the coinbase?