after task 9: support fPIC