Hi Chandra (and Richard), > Would it be possible to the compiler to generate two object files:.<file>.o (general obj file) and <file>.So (obj file with -fpic) in single compilation? No. Consider, for example: int main() { #ifdef TWENTY return 10; #else return 20; #endif } It is not possible to have two executable outputs. Something like... gcc -o ten.exe -DTWENTY -o twenty.exe test.cpp I could write a gcc-bash front end, which would parse the parameters and run gcc twice for me... gcc -o ten.exe gcc -DTWENTY -o twenty.exe test.cpp ...but that does not reduce any time for building anything. Even if GCC had the capability to do what I envision my gcc-bash front end, I cannot see how that convenience would reduce any build time, since none of the effort of the compilation process would be reusable for the subsequent passes. Sincerely, --Eljay