From 06875abb1a3d7fede90ff71e7823fd148606e930 Mon Sep 17 00:00:00 2001 From: guenther <> Date: Wed, 29 Nov 2017 05:13:57 +0000 Subject: [PATCH] clang doesn't propagate attributes like "asm labels" and "visibility(hidden)" to builtins like mem{set,cpy,move} and __stack_smash_handler. So, when building with clang, instead mark those as protected visibility to get rid of the PLT relocations. We can't take the address of them then, but that's ok: it's a build-time error not a run-time error. ok kettenis@ --- src/lib/libc/string/memcpy.c | 4 ++-- src/lib/libc/string/memmove.c | 4 ++-- src/lib/libc/string/memset.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/libc/string/memcpy.c b/src/lib/libc/string/memcpy.c index a2516ed0..19fddc0a 100644 --- a/src/lib/libc/string/memcpy.c +++ b/src/lib/libc/string/memcpy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: memcpy.c,v 1.3 2017/08/14 17:10:02 guenther Exp $ */ +/* $OpenBSD: memcpy.c,v 1.4 2017/11/29 05:13:57 guenther Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. @@ -106,4 +106,4 @@ memcpy(void *dst0, const void *src0, size_t length) done: return (dst0); } -DEF_STRONG(memcpy); +DEF_BUILTIN(memcpy); diff --git a/src/lib/libc/string/memmove.c b/src/lib/libc/string/memmove.c index 2f1deb2c..1cd1086a 100644 --- a/src/lib/libc/string/memmove.c +++ b/src/lib/libc/string/memmove.c @@ -1,4 +1,4 @@ -/* $OpenBSD: memmove.c,v 1.2 2015/08/31 02:53:57 guenther Exp $ */ +/* $OpenBSD: memmove.c,v 1.3 2017/11/29 05:13:57 guenther Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. @@ -110,4 +110,4 @@ memmove(void *dst0, const void *src0, size_t length) done: return (dst0); } -DEF_STRONG(memmove); +DEF_BUILTIN(memmove); diff --git a/src/lib/libc/string/memset.c b/src/lib/libc/string/memset.c index 242529ee..0c261f09 100644 --- a/src/lib/libc/string/memset.c +++ b/src/lib/libc/string/memset.c @@ -1,4 +1,4 @@ -/* $OpenBSD: memset.c,v 1.7 2015/08/31 02:53:57 guenther Exp $ */ +/* $OpenBSD: memset.c,v 1.8 2017/11/29 05:13:57 guenther Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. * All rights reserved. @@ -45,4 +45,4 @@ memset(void *dst, int c, size_t n) } return (dst); } -DEF_STRONG(memset); +DEF_BUILTIN(memset);