Preheat oven to 350 degrees. Grease and flour three 9-inch cake pans; set aside.
CAKE: Mix buttermilk with baking soda, let stand 10 minutes.
In a large mixing bowl, cream sugar, butter, and shortening until smooth. Add egg yolks, one at a time, beating well after each one. Sift together flour and salt. Add flour alternately with buttermilk to butter mixture. Stir in vanilla, coconut, and pecans. Beat egg whites until stiff, gently fold into batter. Pour into prepared cake pans.
Bake for 30 minutes or until cake springs back when touched in the center. Cool completely. Frost with cream cheese frosting.
CREAM CHEESE FROSTING: In a large bowl using an electric hand mixer, beat together cream cheese and butter until smooth. On low speed add vanilla, salt, and confectioners' sugar 1 cup at a time. Turn mixer on high and beat until light and fluffy. Spread frosting between layers, on sides and over top of the cake.