Index: devel/Makefile =================================================================== --- devel/Makefile +++ devel/Makefile @@ -1582,6 +1582,7 @@ SUBDIR += maven31 SUBDIR += maven33 SUBDIR += mcpp + SUBDIR += mdb SUBDIR += mdds SUBDIR += mdds0 SUBDIR += menhir Index: devel/binutils/Makefile =================================================================== --- devel/binutils/Makefile +++ devel/binutils/Makefile @@ -3,7 +3,7 @@ PORTNAME= binutils PORTVERSION= 2.27 -PORTREVISION= 5 +PORTREVISION= 6 PORTEPOCH?= 1 CATEGORIES?= devel MASTER_SITES= SOURCEWARE/binutils/releases @@ -21,6 +21,8 @@ CONFLICTS= libbfd-[0-9]* .endif +EXTRA_PATCHES= ${FILESDIR}/commit-6164468 + OPTIONS_DEFINE= NLS RELRO RELRO_DESC= enable -z relro in ELF linker by default Index: devel/binutils/files/commit-6164468 =================================================================== --- /dev/null +++ devel/binutils/files/commit-6164468 @@ -0,0 +1,88 @@ +commit 3d3424e9a8d6ad56160b98bf6e223c0346164468 +Author: Matthew Fortune +Date: Thu Sep 29 11:13:46 2016 +0100 + + Refine .cfi_sections check to only consider compact eh_frame + + The .cfi_sections directive can be safely used multiple times + with different sections named at any time unless the compact form + of exception handling is requested after CFI information has + been emitted. Only the compact form of CFI information changes + the way in which CFI is generated and therefore cannot be + retrospectively requested after generating CFI information. + + gas/ + + PR gas/20648 + * dw2gencfi.c (dot_cfi_sections): Refine the check for + inconsistent .cfi_sections to only consider compact vs non + compact forms. + * testsuite/gas/cfi/cfi-common-9.d: New file. + * testsuite/gas/cfi/cfi-common-9.s: New file. + * testsuite/gas/cfi/cfi.exp: Run new test. + +diff --git gas/dw2gencfi.c gas/dw2gencfi.c +index 7294f17996..8eebb51e1c 100644 +--- gas/dw2gencfi.c ++++ gas/dw2gencfi.c +@@ -1269,7 +1269,10 @@ dot_cfi_sections (int ignored ATTRIBUTE_UNUSED) + } + + demand_empty_rest_of_line (); +- if (cfi_sections_set && cfi_sections != sections) ++ if (cfi_sections_set ++ && (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)) ++ && (cfi_sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact)) ++ != (sections & (CFI_EMIT_eh_frame | CFI_EMIT_eh_frame_compact))) + as_bad (_("inconsistent uses of .cfi_sections")); + cfi_sections = sections; + } +diff --git gas/testsuite/gas/cfi/cfi-common-9.d gas/testsuite/gas/cfi/cfi-common-9.d +new file mode 100644 +index 0000000000..33f01762a0 +--- /dev/null ++++ gas/testsuite/gas/cfi/cfi-common-9.d +@@ -0,0 +1,23 @@ ++#objdump: -Wf ++#name: CFI common 9 ++#... ++Contents of the .eh_frame section: ++ ++00000000 0+0010 0+0000 CIE ++ Version: 1 ++ Augmentation: "zR" ++ Code alignment factor: .* ++ Data alignment factor: .* ++ Return address column: .* ++ Augmentation data: [01]b ++ ++ DW_CFA_nop ++ DW_CFA_nop ++ DW_CFA_nop ++ ++00000014 0+00(10|18|1c|20) 0+0018 FDE cie=0+0000 pc=.* ++ ++ DW_CFA_nop ++ DW_CFA_nop ++ DW_CFA_nop ++#... +diff --git gas/testsuite/gas/cfi/cfi-common-9.s gas/testsuite/gas/cfi/cfi-common-9.s +new file mode 100644 +index 0000000000..1bc7cc2609 +--- /dev/null ++++ gas/testsuite/gas/cfi/cfi-common-9.s +@@ -0,0 +1,4 @@ ++ .cfi_sections .eh_frame ++ .cfi_startproc simple ++ .cfi_sections .debug_frame ++ .cfi_endproc +diff --git gas/testsuite/gas/cfi/cfi.exp gas/testsuite/gas/cfi/cfi.exp +index 30568564b2..6251434700 100644 +--- gas/testsuite/gas/cfi/cfi.exp ++++ gas/testsuite/gas/cfi/cfi.exp +@@ -136,4 +136,5 @@ if { ![istarget "hppa64*-*"] } then { + } + run_dump_test "cfi-common-7" + run_dump_test "cfi-common-8" ++ run_dump_test "cfi-common-9" + } Index: devel/mdb/Makefile =================================================================== --- /dev/null +++ devel/mdb/Makefile @@ -0,0 +1,36 @@ +# $FreeBSD$ + +PORTNAME= mdb +PORTVERSION= 0.1 +CATEGORIES= devel + +MAINTAINER= jhb@FreeBSD.org +COMMENT= Solaris Modular Debugger + +LICENSE= CDDL + +USES= uidfix + +USE_GITHUB= yes +GH_ACCOUNT= bsdjhb +GH_PROJECT= illumos-gate +GH_TAGNAME= b8a73a7590 + +ONLY_FOR_ARCHS= amd64 + +MAKE_ARGS= WITH_CTF=yes +MAKE_ARGS+= BINDIR=${PREFIX}/bin +MAKE_ARGS+= LIBDIR=${PREFIX}/lib +WRKSRC_SUBDIR= freebsd/cddl/usr.bin/mdb +CFLAGS+= -DMDB_PREFIX=\\\"${PREFIX}\\\" -g + +.include + +.if !exists(${SRC_BASE}/cddl/compat) || !exists(${SRC_BASE}/sys/cddl/compat) +IGNORE= requires full source tree with CDDL sources +.endif + +pre-install: + ${MKDIR} ${STAGEDIR}${PREFIX}/lib/mdb/kvm/${MACHINE_ARCH} + +.include Index: devel/mdb/distinfo =================================================================== --- /dev/null +++ devel/mdb/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1500586203 +SHA256 (bsdjhb-illumos-gate-0.1-b8a73a7590_GH0.tar.gz) = 6fe907ac8c107400ccf68ed4dc240b35361e14e18ddac571e554c261d46f758c +SIZE (bsdjhb-illumos-gate-0.1-b8a73a7590_GH0.tar.gz) = 115104723 Index: devel/mdb/pkg-descr =================================================================== --- /dev/null +++ devel/mdb/pkg-descr @@ -0,0 +1,6 @@ +This is a port of the Solaris Modular Debugger to FreeBSD. Currently it +only supports debugging of FreeBSD/amd64 kernels via kernel crashes +(vmcores) or live systems via /dev/mem. It does not include a port of the +in-kernel kmdb debugger. + +WWW: https://docs.oracle.com/cd/E19683-01/806-6545/index.html Index: devel/mdb/pkg-plist =================================================================== --- /dev/null +++ devel/mdb/pkg-plist @@ -0,0 +1,4 @@ +bin/mdb +lib/mdb/kvm/amd64/kernel.so +lib/mdb/kvm/amd64/kld.so +lib/mdb/kvm/amd64/mdb_ks.so