f
- это префикс gcc для опций, которые "управляют используемыми соглашениями об интерфейсе".
в генерации кода "
PIC
расшифровывается как «Независимый от положения код», это специализация fpic
для m68K и SPARC.
Редактировать: После прочтения 11-й страницы документа , на который ссылается 0x6adb015 , и комментария Кориана, я сделал несколько изменений:
Этот параметр имеет смысл только для разделяемых библиотек, и вы сообщаете ОС, что используете глобальную таблицу смещений GOT. Это означает, что все ваши адреса адресов относятся к GOT, и код может быть передан нескольким процессам.
В противном случае без этой опции загрузчик должен будет изменить все смещения самостоятельно.
Излишне говорить, что мы почти всегда используем -fpic / PIC.