diff options
author | Mike Frysinger <vapier@gentoo.org> | 2021-05-29 16:07:43 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-06-12 23:51:35 -0400 |
commit | ad9cc2097049a04dc6fa0a593a59f4a3b4807c6f (patch) | |
tree | ee8209786ce5600003dcd3646231d32a5fe4251e /sim/common | |
parent | dd8e16ea7b2b929480a3cfac894af78aecc7608e (diff) | |
download | gdb-ad9cc2097049a04dc6fa0a593a59f4a3b4807c6f.zip gdb-ad9cc2097049a04dc6fa0a593a59f4a3b4807c6f.tar.gz gdb-ad9cc2097049a04dc6fa0a593a59f4a3b4807c6f.tar.bz2 |
sim: start unifying portability shims
There are some functions that gnulib does not yet provide fallbacks
for, so start a common file of our own for holding existing stubs.
Diffstat (limited to 'sim/common')
-rw-r--r-- | sim/common/ChangeLog | 6 | ||||
-rw-r--r-- | sim/common/Make-common.in | 1 | ||||
-rw-r--r-- | sim/common/local.mk | 1 | ||||
-rw-r--r-- | sim/common/portability.c | 67 | ||||
-rw-r--r-- | sim/common/portability.h | 47 |
5 files changed, 122 insertions, 0 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 5d713c6..8f44658 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,5 +1,11 @@ 2021-06-12 Mike Frysinger <vapier@gentoo.org> + * Make-common.in (COMMON_OBJS_NAMES): Add portability.o. + * local.mk (%C%_libcommon_a_SOURCES): Add %D%/portability.c. + * portability.c, portability.h: New files. + +2021-06-12 Mike Frysinger <vapier@gentoo.org> + * Make-common.in (SIM_NEW_COMMON_OBJS): Move sim-load.o to ... (COMMON_OBJS_NAMES): ... here. Rename var from COMMON_OBJS. (COMMON_OBJS): Redefine. diff --git a/sim/common/Make-common.in b/sim/common/Make-common.in index 8454d16..7a5bbc1 100644 --- a/sim/common/Make-common.in +++ b/sim/common/Make-common.in @@ -254,6 +254,7 @@ EXTRA_LIBS = $(BFD_LIB) $(OPCODES_LIB) $(LIBINTL) $(LIBIBERTY_LIB) \ $(CONFIG_LIBS) $(SIM_EXTRA_LIBS) $(LIBDL) $(LIBGNU) $(LIBGNU_EXTRA_LIBS) COMMON_OBJS_NAMES = \ + portability.o \ sim-load.o \ version.o COMMON_OBJS = $(COMMON_OBJS_NAMES:%=../common/common_libcommon_a-%) diff --git a/sim/common/local.mk b/sim/common/local.mk index a340feb..076335d 100644 --- a/sim/common/local.mk +++ b/sim/common/local.mk @@ -34,6 +34,7 @@ noinst_LIBRARIES += %D%/libcommon.a -I../bfd \ -I.. %C%_libcommon_a_SOURCES = \ + %D%/portability.c \ %D%/sim-load.c \ %D%/version.c diff --git a/sim/common/portability.c b/sim/common/portability.c new file mode 100644 index 0000000..f0ccc46 --- /dev/null +++ b/sim/common/portability.c @@ -0,0 +1,67 @@ +/* Portability shims for missing OS support. + Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Mike Frysinger. + +This file is part of the GNU Simulators. + +This program 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. + +This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* This must come before any other includes. */ +#include "defs.h" + +#include <unistd.h> + +#include "portability.h" + +#ifndef HAVE_GETEGID +int getegid(void) +{ + return 0; +} +#endif + +#ifndef HAVE_GETEUID +int geteuid(void) +{ + return 0; +} +#endif + +#ifndef HAVE_GETGID +int getgid(void) +{ + return 0; +} +#endif + +#ifndef HAVE_GETUID +int getuid(void) +{ + return 0; +} +#endif + +#ifndef HAVE_SETGID +int setgid(int gid) +{ + return -1; +} +#endif + +#ifndef HAVE_SETUID +int setuid(int uid) +{ + return -1; +} +#endif diff --git a/sim/common/portability.h b/sim/common/portability.h new file mode 100644 index 0000000..12971f6 --- /dev/null +++ b/sim/common/portability.h @@ -0,0 +1,47 @@ +/* Portability shims for missing OS support. + Copyright (C) 2021 Free Software Foundation, Inc. + Contributed by Mike Frysinger. + +This file is part of the GNU Simulators. + +This program 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. + +This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */ + +#ifndef PORTABILITY_H +#define PORTABILITY_H + +#ifndef HAVE_GETEGID +int getegid(void); +#endif + +#ifndef HAVE_GETEUID +int geteuid(void); +#endif + +#ifndef HAVE_GETGID +int getgid(void); +#endif + +#ifndef HAVE_GETUID +int getuid(void); +#endif + +#ifndef HAVE_SETGID +int setgid(int gid); +#endif + +#ifndef HAVE_SETUID +int setuid(int uid); +#endif + +#endif |