svn commit: r296570 - in head: sys/amd64/cloudabi64 sys/arm64/cloudabi64 usr.bin/kdump

John Baldwin jhb at FreeBSD.org
Wed Mar 9 18:38:32 UTC 2016


Author: jhb
Date: Wed Mar  9 18:38:30 2016
New Revision: 296570
URL: https://svnweb.freebsd.org/changeset/base/296570

Log:
  Fix reporting of the CloudABI ABI in kdump.
  
  - Advertise the word size for CloudABI ABIs via the SV_LP64 flag.  All of
    the other ABIs include either SV_ILP32 or SV_LP64.
  - Fix kdump to not assume a 32-bit ABI if the ABI flags field is non-zero
    but SV_LP64 isn't set.  Instead, only assume a 32-bit ABI if SV_ILP32 is
    set and fallback to the unknown value of "00" if neither SV_LP64 nor
    SV_ILP32 is set.
  
  Reviewed by:	kib, ed
  Differential Revision:	https://reviews.freebsd.org/D5560

Modified:
  head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
  head/sys/arm64/cloudabi64/cloudabi64_sysvec.c
  head/usr.bin/kdump/kdump.c

Modified: head/sys/amd64/cloudabi64/cloudabi64_sysvec.c
==============================================================================
--- head/sys/amd64/cloudabi64/cloudabi64_sysvec.c	Wed Mar  9 18:38:03 2016	(r296569)
+++ head/sys/amd64/cloudabi64/cloudabi64_sysvec.c	Wed Mar  9 18:38:30 2016	(r296570)
@@ -143,7 +143,7 @@ static struct sysentvec cloudabi64_elf_s
 	.sv_usrstack		= USRSTACK,
 	.sv_stackprot		= VM_PROT_READ | VM_PROT_WRITE,
 	.sv_copyout_strings	= cloudabi64_copyout_strings,
-	.sv_flags		= SV_ABI_CLOUDABI | SV_CAPSICUM,
+	.sv_flags		= SV_ABI_CLOUDABI | SV_CAPSICUM | SV_LP64,
 	.sv_set_syscall_retval	= cloudabi64_set_syscall_retval,
 	.sv_fetch_syscall_args	= cloudabi64_fetch_syscall_args,
 	.sv_syscallnames	= cloudabi64_syscallnames,

Modified: head/sys/arm64/cloudabi64/cloudabi64_sysvec.c
==============================================================================
--- head/sys/arm64/cloudabi64/cloudabi64_sysvec.c	Wed Mar  9 18:38:03 2016	(r296569)
+++ head/sys/arm64/cloudabi64/cloudabi64_sysvec.c	Wed Mar  9 18:38:30 2016	(r296570)
@@ -144,7 +144,7 @@ static struct sysentvec cloudabi64_elf_s
 	.sv_usrstack		= USRSTACK,
 	.sv_stackprot		= VM_PROT_READ | VM_PROT_WRITE,
 	.sv_copyout_strings	= cloudabi64_copyout_strings,
-	.sv_flags		= SV_ABI_CLOUDABI | SV_CAPSICUM,
+	.sv_flags		= SV_ABI_CLOUDABI | SV_CAPSICUM | SV_LP64,
 	.sv_set_syscall_retval	= cloudabi64_set_syscall_retval,
 	.sv_fetch_syscall_args	= cloudabi64_fetch_syscall_args,
 	.sv_syscallnames	= cloudabi64_syscallnames,

Modified: head/usr.bin/kdump/kdump.c
==============================================================================
--- head/usr.bin/kdump/kdump.c	Wed Mar  9 18:38:03 2016	(r296569)
+++ head/usr.bin/kdump/kdump.c	Wed Mar  9 18:38:30 2016	(r296570)
@@ -529,12 +529,11 @@ abidump(struct ktr_header *kth)
 		break;
 	}
 
-	if (flags != 0) {
-		if (flags & SV_LP64)
-			arch = "64";
-		else
-			arch = "32";
-	} else
+	if (flags & SV_LP64)
+		arch = "64";
+	else if (flags & SV_ILP32)
+		arch = "32";
+	else
 		arch = "00";
 
 	printf("%s%s  ", abi, arch);


More information about the svn-src-all mailing list