summaryrefslogtreecommitdiffstats
path: root/lib/libc/arm/gen
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2015-01-12 18:13:38 +0000
committeremaste <emaste@FreeBSD.org>2015-01-12 18:13:38 +0000
commitf4c1fe1732a25f7e3edf2c0d59c376ba0e4ac6a0 (patch)
tree67703947ed80be0aa986763bceb3d27f76952ed1 /lib/libc/arm/gen
parentc7a07214050e325cbf850ffba5bef789b63a6fe8 (diff)
downloadFreeBSD-src-f4c1fe1732a25f7e3edf2c0d59c376ba0e4ac6a0.zip
FreeBSD-src-f4c1fe1732a25f7e3edf2c0d59c376ba0e4ac6a0.tar.gz
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
Diffstat (limited to 'lib/libc/arm/gen')
-rw-r--r--lib/libc/arm/gen/Makefile.inc5
-rw-r--r--lib/libc/arm/gen/getcontextx.c76
2 files changed, 3 insertions, 78 deletions
diff --git a/lib/libc/arm/gen/Makefile.inc b/lib/libc/arm/gen/Makefile.inc
index 8efde09..c0f5392 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/arm/gen/getcontextx.c
deleted file mode 100644
index 54f8513..0000000
--- a/lib/libc/arm/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);
-}
OpenPOWER on IntegriCloud