+2017-08-13 Florian Weimer <fweimer@redhat.com>
+
+ * debug/fortify_fail.c (__fortify_fail, __fortify_fail_abort):
+ Remove internal_function.
+ * include/stdio.h (__fortify_fail, __fortify_fail_abort): Likewise.
+ * sysdeps/mach/hurd/i386/____longjmp_chk.S (CALL_FAIL): Pass
+ message argument on the stack.
+ * sysdeps/unix/sysv/linux/i386/____longjmp_chk.S (CALL_FAIL):
+ Likeweise.
+
2017-08-12 Mike FABIAN <mfabian@redhat.com>
Adapt test case data to the changes in the thousands
extern char **__libc_argv attribute_hidden;
void
-__attribute__ ((noreturn)) internal_function
+__attribute__ ((noreturn))
__fortify_fail_abort (_Bool need_backtrace, const char *msg)
{
/* The loop is added only to keep gcc happy. Don't pass down
}
void
-__attribute__ ((noreturn)) internal_function
+__attribute__ ((noreturn))
__fortify_fail (const char *msg)
{
__fortify_fail_abort (true, msg);
__attribute__ ((__noreturn__));
extern void __libc_message (enum __libc_message_action action,
const char *__fnt, ...);
-extern void __fortify_fail (const char *msg)
- __attribute__ ((__noreturn__)) internal_function;
+extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__));
extern void __fortify_fail_abort (_Bool, const char *msg)
- __attribute__ ((__noreturn__)) internal_function;
+ __attribute__ ((__noreturn__));
libc_hidden_proto (__fortify_fail)
libc_hidden_proto (__fortify_fail_abort)
cfi_register(%ebx,%ecx); \
LOAD_PIC_REG (bx); \
leal longjmp_msg@GOTOFF(%ebx), %eax; \
+ movl %eax, (%esp); \
call HIDDEN_JUMPTARGET(__fortify_fail)
#else
# define CALL_FAIL movl $longjmp_msg, %eax; \
+ movl %eax, (%esp); \
call HIDDEN_JUMPTARGET(__fortify_fail)
#endif
cfi_register(%ebx,%ecx); \
LOAD_PIC_REG (bx); \
leal longjmp_msg@GOTOFF(%ebx), %eax; \
+ movl %eax, (%esp); \
call HIDDEN_JUMPTARGET(__fortify_fail)
#else
# define CALL_FAIL movl $longjmp_msg, %eax; \
+ movl %eax, (%esp); \
call HIDDEN_JUMPTARGET(__fortify_fail)
#endif