+ if (got_end >= prev_got_start && got_start <= prev_got_end) { \
+ if (got_end > prev_got_end) \
+ prev_got_end = got_end; \
+ if (got_start < prev_got_start) \
+ prev_got_start = got_start; \
+ continue; \
+ } else if (prev_got_start != prev_got_end) { \
+ _dl_mprotect ((void *)(prev_got_start + l_addr), \
+ prev_got_end - prev_got_start, \
+ PROT_READ | PROT_WRITE | PROT_EXEC); \
+ } \
+ prev_got_start = got_start; \
+ prev_got_end = got_end; \
+ } \
+\
+ if (prev_got_start != prev_got_end) { \
+ _dl_mprotect ((void *)(prev_got_start + l_addr), \
+ prev_got_end - prev_got_start, \