ret
#endif
-#if defined(VGP_x86_linux) || defined(VGP_amd64_linux)
/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-#endif
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_darwin)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_amd64_RIP */
#endif // defined(VGP_amd64_darwin)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_amd64_RIP */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_amd64_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_solaris)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_amd64_RIP */
#endif // defined(VGP_amd64_solaris)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_arm_linux)
.fpu vfp
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_arm_R* */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
-
#endif // defined(VGP_arm_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end dispatch-arm-linux.S ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_arm64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_arm_R* */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
-
#endif // defined(VGP_arm64_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end dispatch-arm64-linux.S ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
#if defined(VGP_mips32_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_mips_PC */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
+#endif // defined(VGP_mips32_linux)
-/* Let the linker know we do not need an executable stack */
-.section .note.GNU-stack,"",@progbits
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
-#endif // defined(VGP_mips32_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
#if defined(VGP_mips64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_mips_PC */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
+#endif // defined(VGP_mips64_linux)
-/* Let the linker know we do not need an executable stack */
-.section .note.GNU-stack,"",@progbits
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
-#endif // defined(VGP_mips64_linux)
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc32_linux)
#include "config.h"
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_ppc32_CIA */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_ppc32_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc64be_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_ppc64_CIA */
.size .VG_(disp_run_translations), .-.VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_ppc64be_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc64le_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_ppc64_CIA */
.size .VG_(disp_run_translations), .-.VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
- .section .note.GNU-stack,"",@progbits
-
#endif /* VGA_s390x */
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end dispatch-s390x-linux.S ---*/
/*--------------------------------------------------------------------*/
/* Contributed by Zhi-Gang Liu <zliu at tilera dot com> */
-#if defined(VGP_tilegx_linux)
#include "pub_core_basics_asm.h"
+
+#if defined(VGP_tilegx_linux)
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_tilegx_PC */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
+#endif /* defined(VGP_tilegx_linux) */
- /* Let the linker know we do not need an executable stack */
- .section .note.GNU-stack,"",@progbits
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
-#endif /* defined(VGP_tilegx_linux) */
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_darwin)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_x86_EIP */
#endif // defined(VGP_x86_darwin)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_x86_EIP */
.size VG_(disp_run_translations), .-VG_(disp_run_translations)
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_x86_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_solaris)
-#include "pub_core_basics_asm.h"
#include "pub_core_dispatch_asm.h"
#include "pub_core_transtab_asm.h"
#include "libvex_guest_offsets.h" /* for OFFSET_x86_EIP */
#endif // defined(VGP_x86_solaris)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_darwin)
#include "vki/vki-scnums-darwin.h"
#endif // defined(VGP_amd64_darwin)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_darwin)
// DDD: should use __NR_ constants in here instead of the trap numbers
#endif // defined(VGP_x86_darwin)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_darwin)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
#endif // defined(VGP_amd64_darwin)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_finished): .quad 5b
.previous
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_amd64_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_amd64_solaris)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
#endif // defined(VGP_amd64_solaris)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_arm_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .long 4b
ML_(blksys_finished): .long 5b
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
-
-.previous
-
#endif // defined(VGP_arm_linux)
+
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_arm64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .quad 4b
ML_(blksys_finished): .quad 5b
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
-
-.previous
-
#endif // defined(VGP_arm_linux)
+
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_mips32_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_complete): .long 3b
ML_(blksys_committed): .long 4b
ML_(blksys_finished): .long 5b
-.previous
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
+#endif // defined(VGP_mips32_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
-#endif // defined(VGP_mips32_linux)
-
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_mips64_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_complete): .quad 3b
ML_(blksys_committed): .quad 4b
ML_(blksys_finished): .quad 5b
-.previous
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",%progbits
#endif // defined(VGP_mips64_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc32_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .long 4b
ML_(blksys_finished): .long 5b
-.previous
-
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif // defined(VGP_ppc32_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc64be_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .quad 4b
ML_(blksys_finished): .quad 5b
+#endif // defined(VGP_ppc64be_linux)
/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
-#endif // defined(VGP_ppc64be_linux)
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_ppc64le_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .quad 4b
ML_(blksys_finished): .quad 5b
+#endif // defined(VGP_ppc64le_linux)
/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
-#endif // defined(VGP_ppc64le_linux)
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
ML_(blksys_finished): .quad 5b
.previous
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
-
#endif /* VGA_s390x */
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
/* Contributed by Zhi-Gang Liu <zliu at tilera dot com> */
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_tilegx_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .quad 4b
ML_(blksys_finished): .quad 5b
.previous
- /* Let the linker know we don't need an executable stack */
- .section .note.GNU-stack,"",%progbits
#endif /* defined(VGP_tilegx_linux) */
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_darwin)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_finished_UNIX): .long MK_L_SCCLASS_N(UNIX,5)
#endif // defined(VGP_x86_darwin)
-
+
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_linux)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
ML_(blksys_committed): .long 4b
ML_(blksys_finished): .long 5b
.previous
-
-/* Let the linker know we don't need an executable stack */
-.section .note.GNU-stack,"",@progbits
#endif // defined(VGP_x86_linux)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
The GNU General Public License is contained in the file COPYING.
*/
+#include "pub_core_basics_asm.h"
+
#if defined(VGP_x86_solaris)
-#include "pub_core_basics_asm.h"
#include "pub_core_vkiscnums_asm.h"
#include "libvex_guest_offsets.h"
#endif // defined(VGP_x86_solaris)
+/* Let the linker know we don't need an executable stack */
+MARK_STACK_NO_EXEC
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
#endif
#endif
-#if defined(VGO_linux)
/* Let the linker know we don't need an executable stack */
-# if defined(VGP_arm_linux)
- .section .note.GNU-stack,"",%progbits
-# else
- .section .note.GNU-stack,"",@progbits
-# endif
-#endif
+MARK_STACK_NO_EXEC
/*--------------------------------------------------------------------*/
/*--- end ---*/
# error Unknown OS
#endif
+/* Let the linker know we don't need an executable stack.
+ The call to MARK_STACK_NO_EXEC should be put unconditionally
+ at the end of all asm source files.
+*/
+#if defined(VGO_linux)
+# if defined(VGA_arm)
+# define MARK_STACK_NO_EXEC .section .note.GNU-stack,"",%progbits
+# else
+# define MARK_STACK_NO_EXEC .section .note.GNU-stack,"",@progbits
+# endif
+#else
+# define MARK_STACK_NO_EXEC
+#endif
+
#endif /* __PUB_TOOL_BASICS_ASM_H */
/*--------------------------------------------------------------------*/