aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2015-01-12 18:13:38 +0000
committerEd Maste <emaste@FreeBSD.org>2015-01-12 18:13:38 +0000
commit4b12fb6103ac9323d2aaa89f6c7835d62c2c0996 (patch)
tree67703947ed80be0aa986763bceb3d27f76952ed1
parentfc2517100bc337274155f1ca7fd98456914df236 (diff)
downloadsrc-4b12fb6103ac9323d2aaa89f6c7835d62c2c0996.tar.gz
src-4b12fb6103ac9323d2aaa89f6c7835d62c2c0996.zip
Remove duplicate copies of trivial getcontextx.c
Only i386 and amd64 provide a non-trivial __getcontextx(). Use a common trivial implementation in gen/ for other architectures, rather than copying the file to each MD subdirectory. Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D1472
Notes
Notes: svn path=/head/; revision=277078
-rw-r--r--lib/libc/arm/gen/Makefile.inc5
-rw-r--r--lib/libc/gen/trivial-getcontextx.c (renamed from lib/libc/arm/gen/getcontextx.c)0
-rw-r--r--lib/libc/mips/gen/Makefile.inc5
-rw-r--r--lib/libc/mips/gen/getcontextx.c76
-rw-r--r--lib/libc/powerpc/gen/Makefile.inc6
-rw-r--r--lib/libc/powerpc/gen/getcontextx.c76
-rw-r--r--lib/libc/powerpc64/gen/Makefile.inc5
-rw-r--r--lib/libc/powerpc64/gen/getcontextx.c76
-rw-r--r--lib/libc/sparc64/gen/Makefile.inc5
-rw-r--r--lib/libc/sparc64/gen/getcontextx.c76
10 files changed, 16 insertions, 314 deletions
diff --git a/lib/libc/arm/gen/Makefile.inc b/lib/libc/arm/gen/Makefile.inc
index 8efde09ff3e0..c0f53927bc81 100644
--- a/lib/libc/arm/gen/Makefile.inc
+++ b/lib/libc/arm/gen/Makefile.inc
@@ -2,9 +2,10 @@
# $FreeBSD$
SRCS+= _ctx_start.S _setjmp.S _set_tp.c alloca.S fabs.c \
- getcontextx.c infinity.c ldexp.c makecontext.c \
+ infinity.c ldexp.c makecontext.c \
__aeabi_read_tp.S setjmp.S signalcontext.c sigsetjmp.S flt_rounds.c \
- arm_initfini.c
+ arm_initfini.c \
+ trivial-getcontextx.c
.if ${MACHINE_ARCH} == "armv6hf"
SRCS+= fpgetmask_vfp.c fpgetround_vfp.c fpgetsticky_vfp.c fpsetmask_vfp.c \
diff --git a/lib/libc/arm/gen/getcontextx.c b/lib/libc/gen/trivial-getcontextx.c
index 54f851384811..54f851384811 100644
--- a/lib/libc/arm/gen/getcontextx.c
+++ b/lib/libc/gen/trivial-getcontextx.c
diff --git a/lib/libc/mips/gen/Makefile.inc b/lib/libc/mips/gen/Makefile.inc
index 9d9cc7aaedfa..a186fda62036 100644
--- a/lib/libc/mips/gen/Makefile.inc
+++ b/lib/libc/mips/gen/Makefile.inc
@@ -6,5 +6,6 @@ SRCS+= infinity.c fabs.c ldexp.c
# SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
# fpsetround.c fpsetsticky.c
-SRCS+= _ctx_start.S _set_tp.c _setjmp.S getcontextx.c makecontext.c \
- setjmp.S signalcontext.c sigsetjmp.S
+SRCS+= _ctx_start.S _set_tp.c _setjmp.S makecontext.c \
+ setjmp.S signalcontext.c sigsetjmp.S \
+ trivial-getcontextx.c
diff --git a/lib/libc/mips/gen/getcontextx.c b/lib/libc/mips/gen/getcontextx.c
deleted file mode 100644
index 54f851384811..000000000000
--- a/lib/libc/mips/gen/getcontextx.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2011 Konstantin Belousov <kib@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int
-__getcontextx_size(void)
-{
-
- return (sizeof(ucontext_t));
-}
-
-int
-__fillcontextx2(char *ctx)
-{
-
- return (0);
-}
-
-int
-__fillcontextx(char *ctx)
-{
- ucontext_t *ucp;
-
- ucp = (ucontext_t *)ctx;
- return (getcontext(ucp));
-}
-
-__weak_reference(__getcontextx, getcontextx);
-
-ucontext_t *
-__getcontextx(void)
-{
- char *ctx;
- int error;
-
- ctx = malloc(__getcontextx_size());
- if (ctx == NULL)
- return (NULL);
- if (__fillcontextx(ctx) == -1) {
- error = errno;
- free(ctx);
- errno = error;
- return (NULL);
- }
- return ((ucontext_t *)ctx);
-}
diff --git a/lib/libc/powerpc/gen/Makefile.inc b/lib/libc/powerpc/gen/Makefile.inc
index 81c6a698fac8..2a00ba332b94 100644
--- a/lib/libc/powerpc/gen/Makefile.inc
+++ b/lib/libc/powerpc/gen/Makefile.inc
@@ -1,9 +1,11 @@
# $FreeBSD$
SRCS += _ctx_start.S eabi.S fabs.S flt_rounds.c fpgetmask.c fpgetround.c \
- fpgetsticky.c fpsetmask.c fpsetround.c getcontextx.c \
+ fpgetsticky.c fpsetmask.c fpsetround.c \
infinity.c ldexp.c makecontext.c _setjmp.S \
setjmp.S sigsetjmp.S signalcontext.c syncicache.c \
- _set_tp.c
+ _set_tp.c \
+ trivial-getcontextx.c
+
diff --git a/lib/libc/powerpc/gen/getcontextx.c b/lib/libc/powerpc/gen/getcontextx.c
deleted file mode 100644
index 54f851384811..000000000000
--- a/lib/libc/powerpc/gen/getcontextx.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2011 Konstantin Belousov <kib@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int
-__getcontextx_size(void)
-{
-
- return (sizeof(ucontext_t));
-}
-
-int
-__fillcontextx2(char *ctx)
-{
-
- return (0);
-}
-
-int
-__fillcontextx(char *ctx)
-{
- ucontext_t *ucp;
-
- ucp = (ucontext_t *)ctx;
- return (getcontext(ucp));
-}
-
-__weak_reference(__getcontextx, getcontextx);
-
-ucontext_t *
-__getcontextx(void)
-{
- char *ctx;
- int error;
-
- ctx = malloc(__getcontextx_size());
- if (ctx == NULL)
- return (NULL);
- if (__fillcontextx(ctx) == -1) {
- error = errno;
- free(ctx);
- errno = error;
- return (NULL);
- }
- return ((ucontext_t *)ctx);
-}
diff --git a/lib/libc/powerpc64/gen/Makefile.inc b/lib/libc/powerpc64/gen/Makefile.inc
index 79a274656e82..864fb9ede4f4 100644
--- a/lib/libc/powerpc64/gen/Makefile.inc
+++ b/lib/libc/powerpc64/gen/Makefile.inc
@@ -1,9 +1,10 @@
# $FreeBSD$
SRCS += _ctx_start.S fabs.S flt_rounds.c fpgetmask.c fpgetround.c \
- fpgetsticky.c fpsetmask.c fpsetround.c getcontextx.c \
+ fpgetsticky.c fpsetmask.c fpsetround.c \
infinity.c ldexp.c makecontext.c _setjmp.S \
setjmp.S sigsetjmp.S signalcontext.c syncicache.c \
- _set_tp.c
+ _set_tp.c \
+ trivial-getcontextx.c
diff --git a/lib/libc/powerpc64/gen/getcontextx.c b/lib/libc/powerpc64/gen/getcontextx.c
deleted file mode 100644
index 54f851384811..000000000000
--- a/lib/libc/powerpc64/gen/getcontextx.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2011 Konstantin Belousov <kib@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int
-__getcontextx_size(void)
-{
-
- return (sizeof(ucontext_t));
-}
-
-int
-__fillcontextx2(char *ctx)
-{
-
- return (0);
-}
-
-int
-__fillcontextx(char *ctx)
-{
- ucontext_t *ucp;
-
- ucp = (ucontext_t *)ctx;
- return (getcontext(ucp));
-}
-
-__weak_reference(__getcontextx, getcontextx);
-
-ucontext_t *
-__getcontextx(void)
-{
- char *ctx;
- int error;
-
- ctx = malloc(__getcontextx_size());
- if (ctx == NULL)
- return (NULL);
- if (__fillcontextx(ctx) == -1) {
- error = errno;
- free(ctx);
- errno = error;
- return (NULL);
- }
- return ((ucontext_t *)ctx);
-}
diff --git a/lib/libc/sparc64/gen/Makefile.inc b/lib/libc/sparc64/gen/Makefile.inc
index d3fbfe4e2acf..5442a33fdb18 100644
--- a/lib/libc/sparc64/gen/Makefile.inc
+++ b/lib/libc/sparc64/gen/Makefile.inc
@@ -2,5 +2,6 @@
SRCS+= _ctx_start.S _setjmp.S fabs.S fixunsdfsi.S flt_rounds.c fpgetmask.c \
fpgetround.c fpgetsticky.c fpsetmask.c fpsetround.c \
- getcontextx.c infinity.c ldexp.c makecontext.c \
- signalcontext.c setjmp.S sigsetjmp.S _set_tp.c
+ infinity.c ldexp.c makecontext.c \
+ signalcontext.c setjmp.S sigsetjmp.S _set_tp.c \
+ trivial-getcontextx.c
diff --git a/lib/libc/sparc64/gen/getcontextx.c b/lib/libc/sparc64/gen/getcontextx.c
deleted file mode 100644
index 54f851384811..000000000000
--- a/lib/libc/sparc64/gen/getcontextx.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2011 Konstantin Belousov <kib@FreeBSD.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <sys/ucontext.h>
-#include <errno.h>
-#include <stdlib.h>
-
-int
-__getcontextx_size(void)
-{
-
- return (sizeof(ucontext_t));
-}
-
-int
-__fillcontextx2(char *ctx)
-{
-
- return (0);
-}
-
-int
-__fillcontextx(char *ctx)
-{
- ucontext_t *ucp;
-
- ucp = (ucontext_t *)ctx;
- return (getcontext(ucp));
-}
-
-__weak_reference(__getcontextx, getcontextx);
-
-ucontext_t *
-__getcontextx(void)
-{
- char *ctx;
- int error;
-
- ctx = malloc(__getcontextx_size());
- if (ctx == NULL)
- return (NULL);
- if (__fillcontextx(ctx) == -1) {
- error = errno;
- free(ctx);
- errno = error;
- return (NULL);
- }
- return ((ucontext_t *)ctx);
-}