1 /* Linux sys_errlist compatibility macro definitions.
2 Copyright (C) 2020-2024 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
19 #ifndef _ERRLIST_COMPAT_H
20 #define _ERRLIST_COMPAT_H
22 #include <shlib-compat.h>
25 /* Define new compat symbols for symbols _sys_errlist, sys_errlist,
26 _sys_nerr, and sys_nerr for version VERSION with NUMBERERR times number of
27 bytes per long int size.
28 Both _sys_errlist and sys_errlist alias to _sys_errlist_internal symbol
29 (defined on errlist.c) while _sys_nerr and sys_nerr created new variable
30 with the expected size. */
32 # define DEFINE_COMPAT_ERRLIST(NUMBERERR, VERSION) \
33 declare_object_symbol_alias (__ ## VERSION ## _sys_errlist, \
34 _sys_errlist_internal, \
35 NUMBERERR * (ULONG_WIDTH / UCHAR_WIDTH)) \
37 declare_object_symbol_alias (__ ## VERSION ## __sys_errlist, \
38 _sys_errlist_internal, \
39 NUMBERERR * (ULONG_WIDTH / UCHAR_WIDTH)) \
41 compat_symbol (libc, __## VERSION ## _sys_errlist, sys_errlist, VERSION) \
43 compat_symbol (libc, __## VERSION ## __sys_errlist, _sys_errlist, VERSION)
45 # define DEFINE_COMPAT_ERRLIST(NUMBERERR, VERSION) \
46 const int __##VERSION##_sys_nerr = NUMBERERR; \
47 strong_alias (__##VERSION##_sys_nerr, __##VERSION##__sys_nerr); \
48 compat_symbol (libc, __## VERSION ## _sys_nerr, sys_nerr, VERSION); \
49 compat_symbol (libc, __## VERSION ## __sys_nerr, _sys_nerr, VERSION);