I am using Fedora 12: /root> gcc --version gcc (GCC) 4.4.2 20091222 (Red Hat 4.4.2-20) Copyright (C) 2009 Free Software Foundation, Inc. ------------------------------------------------------------------------- Please take a look at the following program in /root/tmp3/prog1.c: extern int func1(int a); main(){ printf("kkkkkkkk\n"); printf("func1= %d", func1(10)); } I compiled the function, func1, separately and put its object code in /usr/func1.o: int func1(int a){ return (a*4); } I have a simple ld script in /root/tmp3/prog1.ld: INPUT(/usr/func1.o) Then I want to make an executable by: /root/tmp3> gcc -o prog1.o prog1.c -T prog1.ld the result is: /root/tmp3> gcc -o prog1.o prog1.c -T prog1.ld prog1.c: In function ‘main’: prog1.c:4: warning: incompatible implicit declaration of built-in function ‘printf’ as: unrecognized option '-T' ---------------------------------------------------------------------- -t is OK!! but man page of GCC is saying -T is the right option!