From 9849c407e8e6732fbf417cb447937e3b3b9a54ec Mon Sep 17 00:00:00 2001 From: Carmelo Amoroso Date: Wed, 16 Dec 2009 09:09:38 +0100 Subject: build: Get rids of PIC macro using compiler flag __PIC__ instead Based on Peter Mazinger's comments on a recent commit, I decided to get rids of all occurrences of PIC changing them to __PIC__ Signed-off-by: Carmelo Amoroso --- libc/string/x86_64/memcpy.S | 2 +- libc/string/x86_64/memset.S | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'libc/string/x86_64') diff --git a/libc/string/x86_64/memcpy.S b/libc/string/x86_64/memcpy.S index 697b992d0..011291447 100644 --- a/libc/string/x86_64/memcpy.S +++ b/libc/string/x86_64/memcpy.S @@ -26,7 +26,7 @@ #define MEMPCPY_P (defined memcpy) .text -#if defined PIC && !defined NOT_IN_libc +#if defined __PIC__ && !defined NOT_IN_libc ENTRY (__memcpy_chk) cmpq %rdx, %rcx jb HIDDEN_JUMPTARGET (__chk_fail) diff --git a/libc/string/x86_64/memset.S b/libc/string/x86_64/memset.S index 46751006b..562574a4d 100644 --- a/libc/string/x86_64/memset.S +++ b/libc/string/x86_64/memset.S @@ -29,7 +29,7 @@ #define LARGE $120000 .text -#if !BZERO_P && defined PIC && !defined NOT_IN_libc +#if !BZERO_P && defined __PIC__ && !defined NOT_IN_libc ENTRY (__memset_chk) cmpq %rdx, %rcx jb HIDDEN_JUMPTARGET (__chk_fail) @@ -142,6 +142,6 @@ END (memset) libc_hidden_def(memset) #endif -#if !BZERO_P && defined PIC && !defined NOT_IN_libc +#if !BZERO_P && defined __PIC__ && !defined NOT_IN_libc strong_alias (__memset_chk, __memset_zero_constant_len_parameter) #endif -- cgit v1.2.3 From 7dcd83e8bded560b6a2c658889995390d3021a92 Mon Sep 17 00:00:00 2001 From: Austin Foxley Date: Sat, 19 Dec 2009 13:35:52 -0800 Subject: x86_64: fix multiple definition of chk functions also enable __chk_fail and only try to call it when SSP is on Signed-off-by: Austin Foxley --- libc/string/x86_64/bzero.S | 1 + libc/string/x86_64/memcpy.S | 2 ++ libc/string/x86_64/mempcpy.S | 1 + libc/string/x86_64/memset.S | 4 +++- 4 files changed, 7 insertions(+), 1 deletion(-) (limited to 'libc/string/x86_64') diff --git a/libc/string/x86_64/bzero.S b/libc/string/x86_64/bzero.S index 4d179ec4e..231d7cb41 100644 --- a/libc/string/x86_64/bzero.S +++ b/libc/string/x86_64/bzero.S @@ -1,5 +1,6 @@ #include #ifdef __UCLIBC_SUSV3_LEGACY__ # define memset bzero +# define __memset_chk __bzero_chk # include "memset.S" #endif diff --git a/libc/string/x86_64/memcpy.S b/libc/string/x86_64/memcpy.S index 011291447..6d941e0f2 100644 --- a/libc/string/x86_64/memcpy.S +++ b/libc/string/x86_64/memcpy.S @@ -29,7 +29,9 @@ #if defined __PIC__ && !defined NOT_IN_libc ENTRY (__memcpy_chk) cmpq %rdx, %rcx +#if defined __UCLIBC_HAS_SSP__ jb HIDDEN_JUMPTARGET (__chk_fail) +#endif END (__memcpy_chk) #endif ENTRY (BP_SYM (memcpy)) diff --git a/libc/string/x86_64/mempcpy.S b/libc/string/x86_64/mempcpy.S index 3816d9f72..b0607aa57 100644 --- a/libc/string/x86_64/mempcpy.S +++ b/libc/string/x86_64/mempcpy.S @@ -1,3 +1,4 @@ #define memcpy mempcpy +#define __memcpy_chk __mempcpy_chk #include "memcpy.S" libc_hidden_def(mempcpy) diff --git a/libc/string/x86_64/memset.S b/libc/string/x86_64/memset.S index 562574a4d..df265f394 100644 --- a/libc/string/x86_64/memset.S +++ b/libc/string/x86_64/memset.S @@ -29,10 +29,12 @@ #define LARGE $120000 .text -#if !BZERO_P && defined __PIC__ && !defined NOT_IN_libc +#if defined __PIC__ && !defined NOT_IN_libc ENTRY (__memset_chk) cmpq %rdx, %rcx +#if defined __UCLIBC_HAS_SSP__ jb HIDDEN_JUMPTARGET (__chk_fail) +#endif END (__memset_chk) #endif ENTRY (memset) -- cgit v1.2.3