mescc: Mes C Library: Support gcc-10.
See <https://lists.gnu.org/archive/html/bug-mes/2020-07/msg00000.html>. Reported by Vagrant Cascadian <vagrant@reproducible-builds.org>. * include/setjmp.h (jmp_buf): Remove. * include/errno.h (errno): Mark extern. * include/mes/lib-mini.h (environ, errno, __stdin, __stdout, __stderr): Likewise. * lib/mes/globals.c: New file; define them. * build-aux/configure-lib.sh (libc_mini_shared_SOURCES, libmescc_SOURCES): Add it. * build-aux/test-c.sh: Always use -l c-mini as a minimum.
This commit is contained in:
parent
be87ada6b5
commit
84ff05a839
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -36,6 +36,7 @@ lib/mes/oputs.c
|
|||
|
||||
if test $mes_libc = mes; then
|
||||
libc_mini_shared_SOURCES="$libc_mini_shared_SOURCES
|
||||
lib/mes/globals.c
|
||||
lib/$mes_kernel/$mes_cpu-mes-$compiler/mini.c
|
||||
lib/stdlib/exit.c
|
||||
lib/stdlib/puts.c
|
||||
|
@ -77,6 +78,7 @@ lib/mes/mini-write.c
|
|||
fi
|
||||
|
||||
libmescc_SOURCES="
|
||||
lib/mes/globals.c
|
||||
lib/linux/$mes_cpu-mes-$compiler/syscall-internal.c
|
||||
lib/mes/div.c
|
||||
"
|
||||
|
|
|
@ -47,7 +47,7 @@ then
|
|||
fi
|
||||
|
||||
if [ -z "${i/[012][0-9]-*/}" ]; then
|
||||
LIBS="${MES_CHECKING_BUILTIN_LIBS}"
|
||||
LIBS="${MES_CHECKING_BUILTIN_LIBS} -l c-mini"
|
||||
elif [ -z "${i/[34][0-9]-*/}" ]; then
|
||||
LIBS="-l c-mini ${MES_CHECKING_BUILTIN_LIBS} -l c-mini"
|
||||
elif [ -z "${i/[78][0-9a-z]-*/}" ]; then
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -31,10 +31,9 @@
|
|||
#ifndef __MES_ERRNO_T
|
||||
#define __MES_ERRNO_T 1
|
||||
typedef int error_t;
|
||||
int errno;
|
||||
#endif // !__MES_ERRNO_T
|
||||
|
||||
int errno;
|
||||
extern int errno;
|
||||
#define ENOENT 2
|
||||
#define EINTR 4
|
||||
#define EIO 5
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2016,2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -40,10 +40,10 @@
|
|||
#define STDERR 2
|
||||
#endif
|
||||
|
||||
char **environ;
|
||||
int __stdin;
|
||||
int __stdout;
|
||||
int __stderr;
|
||||
extern char **environ;
|
||||
extern int __stdin;
|
||||
extern int __stdout;
|
||||
extern int __stderr;
|
||||
|
||||
int eputs (char const *s);
|
||||
int puts (char const *s);
|
||||
|
@ -87,7 +87,7 @@ typedef long ssize_t;
|
|||
#ifndef __MES_ERRNO_T
|
||||
#define __MES_ERRNO_T 1
|
||||
typedef int error_t;
|
||||
int errno;
|
||||
extern int errno;
|
||||
#endif // !__MES_ERRNO_T
|
||||
|
||||
size_t strlen (char const *s);
|
||||
|
|
|
@ -43,12 +43,6 @@ typedef struct
|
|||
#endif
|
||||
typedef __jmp_buf jmp_buf[1];
|
||||
|
||||
#if __MESC__
|
||||
__jmp_buf buf[1];
|
||||
#else
|
||||
jmp_buf buf;
|
||||
#endif
|
||||
|
||||
void longjmp (jmp_buf env, int val);
|
||||
int setjmp (jmp_buf env);
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <mes/lib.h>
|
||||
#include <mes/lib-mini.h>
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
|
|
27
lib/mes/globals.c
Normal file
27
lib/mes/globals.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
* GNU Mes is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* GNU Mes is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <mes/lib-mini.h>
|
||||
|
||||
int errno;
|
||||
char **environ;
|
||||
int __stdin;
|
||||
int __stdout;
|
||||
int __stderr;
|
|
@ -18,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <mes/lib.h>
|
||||
#include <mes/lib-mini.h>
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
|
|
Loading…
Reference in a new issue