]> git.ipfire.org Git - thirdparty/glibc.git/blob - sysdeps/unix/sysv/linux/errlist-compat.h
038a55d816f10d892a04134b486adf25126d86b2
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / errlist-compat.h
1 /* Linux sys_errlist compatibility macro definitions.
2 Copyright (C) 2020-2021 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
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.
9
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.
14
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/>. */
18
19 #ifndef _ERRLIST_COMPAT_H
20 #define _ERRLIST_COMPAT_H
21
22 #include <shlib-compat.h>
23
24 /* Define new compat symbols for symbols _sys_errlist, sys_errlist,
25 _sys_nerr, and sys_nerr for version VERSION with NUMBERERR times number of
26 bytes per long int size.
27 Both _sys_errlist and sys_errlist alias to _sys_errlist_internal symbol
28 (defined on errlist.c) while _sys_nerr and sys_nerr created new variable
29 with the expected size. */
30 #define DEFINE_COMPAT_ERRLIST(NUMBERERR, VERSION) \
31 const int __##VERSION##_sys_nerr = NUMBERERR; \
32 strong_alias (__##VERSION##_sys_nerr, __##VERSION##__sys_nerr); \
33 declare_symbol_alias (__ ## VERSION ## _sys_errlist, _sys_errlist_internal,\
34 object, NUMBERERR * (ULONG_WIDTH / UCHAR_WIDTH)); \
35 declare_symbol_alias (__ ## VERSION ## __sys_errlist, \
36 _sys_errlist_internal, object, \
37 NUMBERERR * (ULONG_WIDTH / UCHAR_WIDTH)); \
38 compat_symbol (libc, __## VERSION ## _sys_nerr, sys_nerr, VERSION); \
39 compat_symbol (libc, __## VERSION ## __sys_nerr, _sys_nerr, VERSION); \
40 compat_symbol (libc, __## VERSION ## _sys_errlist, sys_errlist, VERSION); \
41 compat_symbol (libc, __## VERSION ## __sys_errlist, _sys_errlist, VERSION);\
42
43 #endif