Index: uspace/lib/c/arch/abs32le/_link.ld.in
===================================================================
--- uspace/lib/c/arch/abs32le/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/abs32le/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -53,4 +53,6 @@
 	} :data
 
+	_end = .;
+
 	/DISCARD/ : {
 		*(*);
Index: pace/lib/c/arch/abs32le/include/libarch/entry.h
===================================================================
--- uspace/lib/c/arch/abs32le/include/libarch/entry.h	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/*
- * Copyright (c) 2010 Martin Decky
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - 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.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * 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.
- */
-
-/** @addtogroup libc
- * @{
- */
-/**
- * @file
- */
-
-#ifndef LIBC_abs32le_ENTRY_H_
-#define LIBC_abs32le_ENTRY_H_
-
-extern void __entry(void);
-
-#endif
-
-/** @}
- */
Index: uspace/lib/c/arch/abs32le/src/entry.c
===================================================================
--- uspace/lib/c/arch/abs32le/src/entry.c	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/abs32le/src/entry.c	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -30,7 +30,10 @@
  */
 
-#include <libarch/entry.h>
 #include "../../../generic/private/libc.h"
 #include <stddef.h>
+
+extern void __entry(void);
+
+/* Normally, the entry point is defined in assembly for the architecture. */
 
 void __entry(void)
Index: uspace/lib/c/arch/amd64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/amd64/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/amd64/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -53,4 +53,6 @@
 	} :data
 
+	_end = .;
+
 #ifdef CONFIG_LINE_DEBUG
 	.comment 0 : { *(.comment); } :debug
Index: uspace/lib/c/arch/arm32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/arm32/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/arm32/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -51,4 +51,6 @@
 	} :data
 
+	_end = .;
+
 	/DISCARD/ : {
 		*(*);
Index: uspace/lib/c/arch/ia32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia32/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/ia32/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -112,4 +112,6 @@
 	} :data
 
+	_end = .;
+
 #ifdef CONFIG_LINE_DEBUG
 	.comment 0 : { *(.comment); } :debug
Index: uspace/lib/c/arch/ia64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ia64/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/ia64/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -60,4 +60,6 @@
 	} :data
 
+	_end = .;
+
 	/DISCARD/ : {
 		*(*);
Index: uspace/lib/c/arch/mips32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/mips32/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/mips32/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -58,4 +58,6 @@
 	} :data
 
+	_end = .;
+
 	/DISCARD/ : {
 		*(*);
Index: uspace/lib/c/arch/ppc32/_link.ld.in
===================================================================
--- uspace/lib/c/arch/ppc32/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/ppc32/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -50,4 +50,6 @@
 	} :data
 
+	_end = .;
+
 #ifdef CONFIG_LINE_DEBUG
 	.comment 0 : { *(.comment); } :debug
Index: uspace/lib/c/arch/riscv64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/riscv64/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/riscv64/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -49,4 +49,6 @@
 	} :data
 
+	_end = .;
+
 #ifdef CONFIG_LINE_DEBUG
 	.comment 0 : { *(.comment); } :debug
Index: pace/lib/c/arch/riscv64/include/libarch/entry.h
===================================================================
--- uspace/lib/c/arch/riscv64/include/libarch/entry.h	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/*
- * Copyright (c) 2016 Martin Decky
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - 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.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * 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.
- */
-
-/** @addtogroup libc
- * @{
- */
-/**
- * @file
- */
-
-#ifndef LIBC_riscv64_ENTRY_H_
-#define LIBC_riscv64_ENTRY_H_
-
-extern void __entry(void);
-
-#endif
-
-/** @}
- */
Index: uspace/lib/c/arch/riscv64/src/entry.c
===================================================================
--- uspace/lib/c/arch/riscv64/src/entry.c	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/riscv64/src/entry.c	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -30,6 +30,9 @@
  */
 
-#include <libarch/entry.h>
 #include "../../../generic/private/libc.h"
+
+extern void __entry(void);
+
+// FIXME: Implement properly.
 
 void __entry(void)
Index: uspace/lib/c/arch/sparc64/_link.ld.in
===================================================================
--- uspace/lib/c/arch/sparc64/_link.ld.in	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/arch/sparc64/_link.ld.in	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -54,4 +54,6 @@
 	} :data
 
+	_end = .;
+
 #ifdef CONFIG_LINE_DEBUG
 	.comment 0 : { *(.comment); } :debug
Index: uspace/lib/c/generic/as.c
===================================================================
--- uspace/lib/c/generic/as.c	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/generic/as.c	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -60,5 +60,5 @@
 {
 	return (void *) __SYSCALL5(SYS_AS_AREA_CREATE, (sysarg_t) base,
-	    (sysarg_t) size, (sysarg_t) flags, (sysarg_t) __entry,
+	    (sysarg_t) size, (sysarg_t) flags, (sysarg_t) _end,
 	    (sysarg_t) pager_info);
 }
Index: uspace/lib/c/generic/async.c
===================================================================
--- uspace/lib/c/generic/async.c	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/generic/async.c	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -2677,6 +2677,7 @@
     unsigned int flags)
 {
+	// FIXME: The source has no business deciding destination address.
 	return ipc_answer_3(chandle, EOK, (sysarg_t) src, (sysarg_t) flags,
-	    (sysarg_t) __entry);
+	    (sysarg_t) _end);
 }
 
@@ -2747,5 +2748,5 @@
 errno_t async_share_out_finalize(cap_call_handle_t chandle, void **dst)
 {
-	return ipc_answer_2(chandle, EOK, (sysarg_t) __entry, (sysarg_t) dst);
+	return ipc_answer_2(chandle, EOK, (sysarg_t) _end, (sysarg_t) dst);
 }
 
Index: uspace/lib/c/generic/ddi.c
===================================================================
--- uspace/lib/c/generic/ddi.c	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/generic/ddi.c	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -72,5 +72,5 @@
 {
 	return (errno_t) __SYSCALL5(SYS_PHYSMEM_MAP, (sysarg_t) phys,
-	    pages, flags, (sysarg_t) virt, (sysarg_t) __entry);
+	    pages, flags, (sysarg_t) virt, (sysarg_t) _end);
 }
 
@@ -145,5 +145,5 @@
 	return (errno_t) __SYSCALL6(SYS_DMAMEM_MAP, (sysarg_t) size,
 	    (sysarg_t) map_flags, (sysarg_t) flags | DMAMEM_FLAGS_ANONYMOUS,
-	    (sysarg_t) phys, (sysarg_t) virt, (sysarg_t) __entry);
+	    (sysarg_t) phys, (sysarg_t) virt, (sysarg_t) _end);
 }
 
Index: uspace/lib/c/generic/private/libc.h
===================================================================
--- uspace/lib/c/generic/private/libc.h	(revision 1abcf1db7c2a8071caaf9983f1571b2ef88e1be6)
+++ uspace/lib/c/generic/private/libc.h	(revision a69d42e063015b31f1b430429f3a03ea17fdc9de)
@@ -36,5 +36,5 @@
 #define LIBC_PRIVATE_LIBC_H_
 
-extern void __entry(void);
+extern unsigned char _end[];
 extern void __main(void *) __attribute__((noreturn));
 extern int main(int, char *[]);
