svn commit: r300303 - in head: . contrib/netbsd-tests/lib/libc/gen contrib/netbsd-tests/lib/libc/sys lib/libc/aarch64 lib/libc/aarch64/sys sys/sys
Andrew Turner
andrew at FreeBSD.org
Fri May 20 15:04:50 UTC 2016
Author: andrew
Date: Fri May 20 15:04:48 2016
New Revision: 300303
URL: https://svnweb.freebsd.org/changeset/base/300303
Log:
Remove brk and sbrk from arm64. They were defined in The Single UNIX
Specification, Version 2, but marked as legacy, and have been removed from
later specifications. After 12 years it is time to remove them from new
architectures when the main use for sbrk is an invalid method to attempt
to find how much memory has been allocated from malloc.
There are a few places in the tree that still call sbrk, however they are
not used on arm64. They will need to be fixed to cross build from arm64,
but these will be fixed in a follow up commit.
Old copies of binutils from ports called into sbrk, however this has been
fixed around 6 weeks ago. It is advised to update binutils on arm64 before
installing a world that includes this change.
Reviewed by: brooks, emaste
Obtained from: brooks
Relnotes: yes
Sponsored by: ABT Systems Ltd
Differential Revision: https://reviews.freebsd.org/D6464
Deleted:
head/lib/libc/aarch64/sys/brk.S
head/lib/libc/aarch64/sys/sbrk.S
Modified:
head/UPDATING
head/contrib/netbsd-tests/lib/libc/gen/t_dir.c
head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c
head/lib/libc/aarch64/Symbol.map
head/lib/libc/aarch64/sys/Makefile.inc
head/sys/sys/param.h
Modified: head/UPDATING
==============================================================================
--- head/UPDATING Fri May 20 15:00:12 2016 (r300302)
+++ head/UPDATING Fri May 20 15:04:48 2016 (r300303)
@@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
+20160520:
+ The brk and sbrk functions have been removed from libc on arm64.
+ Binutils from ports has been updated to not link to these
+ functions and should be updated to the latest version before
+ installing a new libc.
+
20160517:
The armv6 port now defaults to hard float ABI. Limited support
for running both hardfloat and soft float on the same system
Modified: head/contrib/netbsd-tests/lib/libc/gen/t_dir.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/gen/t_dir.c Fri May 20 15:00:12 2016 (r300302)
+++ head/contrib/netbsd-tests/lib/libc/gen/t_dir.c Fri May 20 15:04:48 2016 (r300303)
@@ -111,6 +111,7 @@ ATF_TC_BODY(seekdir_basic, tc)
closedir(dp);
}
+#ifndef __aarch64__ /* There is no sbrk on AArch64 */
ATF_TC(telldir_leak);
ATF_TC_HEAD(telldir_leak, tc)
{
@@ -154,12 +155,15 @@ ATF_TC_BODY(telldir_leak, tc)
(void)printf("OK: used %td bytes\n", (char *)(sbrk(0))-memused);
}
}
+#endif
ATF_TP_ADD_TCS(tp)
{
ATF_TP_ADD_TC(tp, seekdir_basic);
+#ifndef __aarch64__
ATF_TP_ADD_TC(tp, telldir_leak);
+#endif
return atf_no_error();
}
Modified: head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c
==============================================================================
--- head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c Fri May 20 15:00:12 2016 (r300302)
+++ head/contrib/netbsd-tests/lib/libc/sys/t_mlock.c Fri May 20 15:04:48 2016 (r300303)
@@ -176,7 +176,9 @@ ATF_TC_BODY(mlock_err, tc)
unsigned long vmin = 0;
size_t len = sizeof(vmin);
#endif
+#ifndef __aarch64__
void *invalid_ptr;
+#endif
int null_errno = ENOMEM; /* error expected for NULL */
#ifdef __FreeBSD__
@@ -212,6 +214,7 @@ ATF_TC_BODY(mlock_err, tc)
errno = 0;
ATF_REQUIRE_ERRNO(EINVAL, munlock((char *)-1, page) == -1);
+#ifndef __aarch64__ /* There is no sbrk on AArch64 */
/*
* Try to create a pointer to an unmapped page - first after current
* brk will likely do.
@@ -224,6 +227,7 @@ ATF_TC_BODY(mlock_err, tc)
errno = 0;
ATF_REQUIRE_ERRNO(ENOMEM, munlock(invalid_ptr, page) == -1);
+#endif
}
#ifdef __FreeBSD__
Modified: head/lib/libc/aarch64/Symbol.map
==============================================================================
--- head/lib/libc/aarch64/Symbol.map Fri May 20 15:00:12 2016 (r300302)
+++ head/lib/libc/aarch64/Symbol.map Fri May 20 15:04:48 2016 (r300303)
@@ -28,8 +28,6 @@ FBSD_1.0 {
ntohl;
ntohs;
vfork;
- brk;
- sbrk;
makecontext;
};
Modified: head/lib/libc/aarch64/sys/Makefile.inc
==============================================================================
--- head/lib/libc/aarch64/sys/Makefile.inc Fri May 20 15:00:12 2016 (r300302)
+++ head/lib/libc/aarch64/sys/Makefile.inc Fri May 20 15:04:48 2016 (r300303)
@@ -5,10 +5,8 @@ MIASM:= ${MIASM:Nfreebsd[467]_*}
SRCS+= __vdso_gettc.c
#MDASM= ptrace.S
-MDASM= brk.S \
- cerror.S \
+MDASM= cerror.S \
pipe.S \
- sbrk.S \
shmat.S \
sigreturn.S \
syscall.S \
@@ -19,6 +17,7 @@ NOASM= break.o \
exit.o \
getlogin.o \
openbsd_poll.o \
+ sbrk.o \
sstk.o \
vfork.o \
yield.o
Modified: head/sys/sys/param.h
==============================================================================
--- head/sys/sys/param.h Fri May 20 15:00:12 2016 (r300302)
+++ head/sys/sys/param.h Fri May 20 15:04:48 2016 (r300303)
@@ -58,7 +58,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1100110 /* Master, propagated to newvers */
+#define __FreeBSD_version 1100111 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
More information about the svn-src-head
mailing list