cht電腦資訊Linux
adm Find login register

.o 有 -fPIC 與沒有的 size 比較

eliu

joined: 2007-08-09
posted: 11283
promoted: 612
bookmarked: 185
新竹, 台灣
1subject: .o 有 -fPIC 與沒有的 size 比較Promote 0 Bookmark 12008-01-28quote  

-fPIC 是用來產生 position independent code, 也就是 call, jump 不是用固定 address(相對?),static data 則用 global offset table。 -PIC 用來產生 .so,也就是 share library,可以在執行時有需要的時候才 load 進來,所以需要 PIC。代價就是 .o 的大小變大了約 11%。所以不常用的才變成 .so 比較好。
 

 gcc -O  -c gtab.c
 26096
 gcc  -O -fPIC -c gtab.c  28956

 

edited: 3

CC: gcin
cht電腦資訊Linux
adm Find login register
views:3633