Hi : It seems that gcc always puts _impure_ptr into .sdata section and loads it using gp because the variable _impure_ptr is declared with attribute "__attribute__((__section__(".sdata")))". So sorry to disturb you. Thanks. -- Regards.