#pragma pack()\r
#endif\r
\r
+#if defined(__GNUC__) && defined(__pic__)\r
+//\r
+// Mark all symbol declarations and references as protected, meaning they will\r
+// not be subject to symbol preemption. This allows the compiler to refer to\r
+// symbols directly using relative references rather than via the GOT, which\r
+// contains absolute symbol addresses that are subject to runtime relocation.\r
+//\r
+#pragma GCC visibility push (protected)\r
+#endif\r
\r
#if defined(__INTEL_COMPILER)\r
//\r