From 60d8c18024fd517e68b2e7f84eda1cf361c17f84 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Sat, 2 Jan 2021 10:00:35 +0100 Subject: [PATCH] Revert "Mes C Library: m2/execve.c: Remove specialization." MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes gcc-lib/libc+gnu.c: At top level: gcc-lib/libc+gnu.c:2694:1: error: conflicting types for ‘execve’ execve (char const *file_name, char **argv, char **env) ^~~~~~ In file included from gcc-lib/libc+gnu.c:492:0: include/unistd.h:66:5: note: previous declaration of ‘execve’ was here int execve (char const *file, char *const argv[], char *const env[]); ^~~~~~ This reverts commit 828c27a073896facdc3a3b24265ee69f0033f58f. --- kaem.run | 2 +- lib/linux/execve.c | 10 +++------- lib/m2/execve.c | 31 +++++++++++++++++++++++++++++++ simple.make | 2 +- 4 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 lib/m2/execve.c diff --git a/kaem.run b/kaem.run index 12b6c11c..c0ba3500 100644 --- a/kaem.run +++ b/kaem.run @@ -80,7 +80,7 @@ M2-Planet \ -f lib/linux/ioctl3.c \ -f lib/m2/isatty.c \ -f lib/linux/fork.c \ - -f lib/linux/execve.c \ + -f lib/m2/execve.c \ -f lib/m2/execv.c \ -f lib/linux/waitpid.c \ -f lib/linux/gettimeofday.c \ diff --git a/lib/linux/execve.c b/lib/linux/execve.c index cd3ae1a9..51c8b4ff 100644 --- a/lib/linux/execve.c +++ b/lib/linux/execve.c @@ -1,6 +1,6 @@ /* -*-comment-start: "//";comment-end:""-*- * GNU Mes --- Maxwell Equations of Software - * Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen + * Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen * * This file is part of GNU Mes. * @@ -18,15 +18,11 @@ * along with GNU Mes. If not, see . */ -#include #include #include int -execve (char const *file_name, char **argv, char **env) +execve (char const *file_name, char *const argv[], char *const env[]) { - long long_file_name = cast_voidp_to_long (file_name); - long long_argv = cast_voidp_to_long (argv); - long long_env = cast_voidp_to_long (env); - return _sys_call3 (SYS_execve, long_file_name, long_argv, long_env); + return _sys_call3 (SYS_execve, (long) file_name, (long) argv, (long) env); } diff --git a/lib/m2/execve.c b/lib/m2/execve.c new file mode 100644 index 00000000..7fe7c9ba --- /dev/null +++ b/lib/m2/execve.c @@ -0,0 +1,31 @@ +/* -*-comment-start: "//";comment-end:""-*- + * GNU Mes --- Maxwell Equations of Software + * Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen + * + * 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 . + */ + +#include +#include + +int +execve (char const *file_name, char **argv, char **env) +{ + long long_file_name = file_name; + long long_argv = argv; + long long_env = env; + return _sys_call3 (SYS_execve, file_name, argv, env); +} diff --git a/simple.make b/simple.make index 41404c91..93b51e7e 100644 --- a/simple.make +++ b/simple.make @@ -121,7 +121,7 @@ M2_SOURCES = \ lib/linux/ioctl3.c \ lib/m2/isatty.c \ lib/linux/fork.c \ - lib/linux/execve.c \ + lib/m2/execve.c \ lib/m2/execv.c \ lib/linux/waitpid.c \ lib/linux/gettimeofday.c \