what i did was make those smaller cylinder so they won't intersect with eachother.. and made two combines.. so no cylinder surface would intersect with each other..
i deleted history of the gun and the cylinders..
then selected the gun and i combined cylinder thingy.. boolean > difference..
then deleted history again.. and went on to the second difference the same way..
here's a *.ma with the gun ready for difference.. and one already done..