Address the clang 13 "changed binding to STB_WEAK" warning on arm64:
authorguenther <guenther@openbsd.org>
Tue, 24 May 2022 22:34:02 +0000 (22:34 +0000)
committerguenther <guenther@openbsd.org>
Tue, 24 May 2022 22:34:02 +0000 (22:34 +0000)
add _?ENTRY_NB to asm.h, switch libc's asm bits to the generic
DEFS.h, and use ENTRY_NB as necessary.

Also, give sizes to the htonl/htons symbols and mark them as weak.

ok kettenis@ miod@

lib/libc/arch/aarch64/DEFS.h [deleted file]
lib/libc/arch/aarch64/gen/byte_swap_2.S
lib/libc/arch/aarch64/gen/byte_swap_4.S
lib/libc/arch/aarch64/sys/brk.S
lib/libc/arch/aarch64/sys/sbrk.S
sys/arch/arm64/include/asm.h

diff --git a/lib/libc/arch/aarch64/DEFS.h b/lib/libc/arch/aarch64/DEFS.h
deleted file mode 100644 (file)
index 0466294..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*     $OpenBSD: DEFS.h,v 1.1 2017/01/11 18:09:24 patrick Exp $        */
-
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * William Jolitz.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- *     from: @(#)SYS.h 5.5 (Berkeley) 5/7/91
- *     $NetBSD: SYS.h,v 1.5 2002/06/03 18:30:32 fvdl Exp $
- */
-
-#include <machine/asm.h>
-
-/*
- * We define a hidden alias with the prefix "_libc_" for each global symbol
- * that may be used internally.  By referencing _libc_x instead of x, other
- * parts of libc prevent overriding by the application and avoid unnecessary
- * relocations.
- */
-#define _HIDDEN(x)             _libc_##x
-#define _HIDDEN_ALIAS(x,y)                     \
-       STRONG_ALIAS(_HIDDEN(x),y);             \
-       .hidden _HIDDEN(x)
-#define _HIDDEN_FALIAS(x,y)                    \
-       _HIDDEN_ALIAS(x,y);                     \
-       .type _HIDDEN(x),@function
-
-/*
- * For functions implemented in ASM that aren't syscalls.
- *   END_STRONG(x)     Like DEF_STRONG() in C; for standard/reserved C names
- *   END_WEAK(x)       Like DEF_WEAK() in C; for non-ISO C names
- */
-#define        END_STRONG(x)   END(x); _HIDDEN_FALIAS(x,x); END(_HIDDEN(x))
-#define        END_WEAK(x)     END_STRONG(x); .weak x
-
index 76b7db5..306b40c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: byte_swap_2.S,v 1.2 2018/08/12 17:15:10 mortimer Exp $        */
+/*     $OpenBSD: byte_swap_2.S,v 1.3 2022/05/24 22:34:02 guenther Exp $        */
 /*     $NetBSD: byte_swap_2.S,v 1.3 2003/04/05 23:08:51 bjh21 Exp $    */
 
 /*-
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <machine/asm.h>
+#include "DEFS.h"
 
-_ENTRY(_C_LABEL(__bswap16))
-_ENTRY(_C_LABEL(ntohs))
-_ENTRY(_C_LABEL(htons))
-_PROF_PROLOGUE
+_ENTRY(__bswap16)
+_ENTRY_NB(ntohs)
+ENTRY_NB(htons)
        RETGUARD_SETUP(__bswap16, x15)
        and     w8, w0, #0xffff
         ubfx    w0, w0, #8, #8
        bfi     w0, w8, #8, #16
        RETGUARD_CHECK(__bswap16, x15)
        ret
+END(htons)
+_END(ntohs)
+_END(__bswap16)
+       .weak   htons
+       .weak   ntohs
index dfc3db4..4d285b8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: byte_swap_4.S,v 1.2 2018/08/12 17:15:10 mortimer Exp $        */
+/*     $OpenBSD: byte_swap_4.S,v 1.3 2022/05/24 22:34:02 guenther Exp $        */
 /*     $NetBSD: byte_swap_4.S,v 1.2 2003/04/05 23:08:51 bjh21 Exp $    */
 
 /*-
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <machine/asm.h>
+#include "DEFS.h"
 
-_ENTRY(_C_LABEL(__bswap32))
-_ENTRY(_C_LABEL(ntohl))
-_ENTRY(_C_LABEL(htonl))
-_PROF_PROLOGUE
+_ENTRY(__bswap32)
+_ENTRY_NB(ntohl)
+ENTRY_NB(htonl)
        RETGUARD_SETUP(__bswap32, x15)
        rev     w0, w0
        RETGUARD_CHECK(__bswap32, x15)
        ret
+END(htonl)
+_END(ntohl)
+_END(__bswap32)
+       .weak   htonl
+       .weak   ntohl
index 574c615..a18c1fc 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: brk.S,v 1.5 2018/08/12 17:15:10 mortimer Exp $        */
+/*     $OpenBSD: brk.S,v 1.6 2022/05/24 22:34:02 guenther Exp $        */
 /*     $NetBSD: brk.S,v 1.7 2003/12/26 11:23:44 martin Exp $   */
 
 /*-
@@ -47,7 +47,7 @@ __minbrk:
 /*
  * Change the data segment size
  */
-ENTRY(brk)
+ENTRY_NB(brk)
        RETGUARD_SETUP(brk, x15)
 #ifdef __PIC__
        /* Setup the GOT */
index 1e3bd83..e1ffccd 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: sbrk.S,v 1.4 2018/08/12 17:15:10 mortimer Exp $       */
+/*     $OpenBSD: sbrk.S,v 1.5 2022/05/24 22:34:02 guenther Exp $       */
 /*     $NetBSD: sbrk.S,v 1.7 2003/08/07 16:42:05 agc Exp $     */
 
 /*-
@@ -48,7 +48,7 @@ __curbrk:
 /*
  * Change the data segment size
  */
-ENTRY(sbrk)
+ENTRY_NB(sbrk)
        RETGUARD_SETUP(sbrk, x15)
 #ifdef __PIC__
        /* Setup the GOT */
index 396940e..24b0a1e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: asm.h,v 1.8 2022/02/24 07:08:21 guenther Exp $        */
+/*     $OpenBSD: asm.h,v 1.9 2022/05/24 22:34:02 guenther Exp $        */
 /*     $NetBSD: asm.h,v 1.4 2001/07/16 05:43:32 matt Exp $     */
 
 /*
  */
 #define _ASM_TYPE_FUNCTION     #function
 #define _ASM_TYPE_OBJECT       #object
-#define _ENTRY(x) \
-       .text; _ALIGN_TEXT; .globl x; .type x,_ASM_TYPE_FUNCTION; x:
+/* NB == No Binding: use .globl or .weak as necessary */
+#define _ENTRY_NB(x) \
+       .text; _ALIGN_TEXT; .type x,_ASM_TYPE_FUNCTION; x:
+#define _ENTRY(x)      .globl x; _ENTRY_NB(x)
 
 #if defined(PROF) || defined(GPROF)
 #  define _PROF_PROLOGUE       \
 
 #define        ENTRY(y)        _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
 #define        ENTRY_NP(y)     _ENTRY(_C_LABEL(y))
+#define        ENTRY_NB(y)     _ENTRY_NB(y); _PROF_PROLOGUE
 #define        ASENTRY(y)      _ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
 #define        ASENTRY_NP(y)   _ENTRY(_ASM_LABEL(y))
 #define        END(y)          .size y, . - y