Hello, I am using -fPIC option on several architectures, and have experienced some strange differences in behavior over 2 aspects :     - Call of routines     - Access to constants (eg. constant strings, constant tables, larger to fit into one single instruction). When compiling with -fPIC on an arm platform (I am using Cortex-Mx), the jumps and calls are all relative, and constant access are also relative if you are cautious enough. You may even end-up having the compiler not needing the GOT. Bottom line, for me -fPIC on ARM means portable and really Position Independant Code. (I am using GCC 10.3). When compiling with -fPIC on a xtensa platform, the compiler generates CALLX instructions, which effectively make an access at an absolute address. The same issue appears about the constants, which are accessed at the address you compiled your binary for, which is not the definition I have (and have experienced on ARM platforms). (I am using in this case 8.4). When NOT specifying -fPIC on a xtensa platform, the compiler generates CALL instructions, which are relative calls, and which is the base for me for having a portable/relocable executable. My questions are : - Did I miss anything ? - Is there somewhere a common definition of what mean PIC for the different architectures ? Regards, Vincent.