Page MenuHomeFreeBSD

D5053.1786756061.diff
No OneTemporary

Size
9 KB
Referenced Files
None
Subscribers
None

D5053.1786756061.diff

Index: lib/csu/aarch64/crt1.c
===================================================================
--- lib/csu/aarch64/crt1.c
+++ lib/csu/aarch64/crt1.c
@@ -71,17 +71,8 @@
if (&_DYNAMIC != NULL)
atexit(cleanup);
- else {
- /*
- * Hack to resolve _end so we read the correct symbol.
- * Without this it will resolve to the copy in the library
- * that firsts requests it. We should fix the toolchain,
- * however this is is needed until this can take place.
- */
- *(volatile long *)&_end;
-
+ else
_init_tls();
- }
#ifdef GCRT
atexit(_mcleanup);
Index: lib/libc/aarch64/sys/Makefile.inc
===================================================================
--- lib/libc/aarch64/sys/Makefile.inc
+++ lib/libc/aarch64/sys/Makefile.inc
@@ -3,10 +3,10 @@
SRCS+= __vdso_gettc.c
#MDASM= ptrace.S
-MDASM= brk.S \
+MDASM= brk.c \
cerror.S \
pipe.S \
- sbrk.S \
+ sbrk.c \
shmat.S \
sigreturn.S \
syscall.S \
Index: lib/libc/aarch64/sys/brk.S
===================================================================
--- lib/libc/aarch64/sys/brk.S
+++ /dev/null
@@ -1,76 +0,0 @@
-/*-
- * Copyright (c) 2014 The FreeBSD Foundation
- * All rights reserved.
- *
- * This software was developed by Andrew Turner under
- * sponsorship from the FreeBSD Foundation.
- *
- * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-
- .globl _C_LABEL(_end)
-
- .data
- .align 3
- .globl _C_LABEL(minbrk)
- .type _C_LABEL(minbrk),#object
-_C_LABEL(minbrk):
- .quad _C_LABEL(_end)
-
- .text
-/*
- * int brk(const void *addr);
- */
-ENTRY(_brk)
- WEAK_REFERENCE(_brk, brk)
-
- /* Load the address of minbrk */
- adrp x3, minbrk
- ldr x2, [x3, :lo12:minbrk]
-
- /* Validate the address */
- cmp x0, x2
- b.ge 1f
- /* Invalid, set it to the minimum */
- mov x0, x2
-
- /* Backup the new address */
-1: mov x4, x0
-
- /* Update for this value, will overwrite x0 and x1 */
- _SYSCALL(break)
- b.cs cerror
-
- /* Store the new curbrk value */
- adrp x2, curbrk
- str x4, [x2, :lo12:curbrk]
-
- /* Return success */
- mov x0, #0
- ret
-
-END(_brk)
Index: lib/libc/aarch64/sys/brk.c
===================================================================
--- /dev/null
+++ lib/libc/aarch64/sys/brk.c
@@ -0,0 +1,43 @@
+/*-
+ * Copyright (c) 2016 Andrew Turner
+ * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <errno.h>
+#include <unistd.h>
+
+__weak_reference(_brk, brk);
+
+int
+_brk(void *addr)
+{
+
+ errno = ENOSYS;
+ return (-1);
+}
Index: lib/libc/aarch64/sys/sbrk.S
===================================================================
--- lib/libc/aarch64/sys/sbrk.S
+++ /dev/null
@@ -1,72 +0,0 @@
-/*-
- * Copyright (c) 2014 The FreeBSD Foundation
- * All rights reserved.
- *
- * This software was developed by Andrew Turner under
- * sponsorship from the FreeBSD Foundation.
- *
- * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <machine/asm.h>
-__FBSDID("$FreeBSD$");
-
-#include "SYS.h"
-
- .globl _C_LABEL(_end)
-
- .data
- .align 3
- .global _C_LABEL(curbrk)
- .type _C_LABEL(curbrk),#object
-_C_LABEL(curbrk):
- .quad _C_LABEL(_end)
-
- .text
-/*
- * void *sbrk(intptr_t incr);
- */
-ENTRY(_sbrk)
- WEAK_REFERENCE(_sbrk, sbrk)
-
- /* Load the address of curbrk */
- adrp x3, curbrk
-
- /* Get the current brk address */
- ldr x2, [x3, :lo12:curbrk]
-
- /* Calculate the new value */
- add x0, x2, x0
- mov x4, x0
-
- /* Update for this value, will overwrite x0 and x1 */
- _SYSCALL(break)
- b.cs cerror
-
- /* Load the old value to return */
- ldr x0, [x3, :lo12:curbrk]
-
- /* Store the new curbrk value */
- str x4, [x3, :lo12:curbrk]
-
- ret
-END(_sbrk)
Index: lib/libc/aarch64/sys/sbrk.c
===================================================================
--- /dev/null
+++ lib/libc/aarch64/sys/sbrk.c
@@ -0,0 +1,43 @@
+/*-
+ * Copyright (c) 2016 Andrew Turner
+ * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <errno.h>
+#include <unistd.h>
+
+__weak_reference(_sbrk, sbrk);
+
+void *
+_sbrk(intptr_t incr)
+{
+
+ errno = ENOSYS;
+ return ((void *)-1);
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 15, 1:07 AM (19 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29409035
Default Alt Text
D5053.1786756061.diff (9 KB)

Event Timeline