Index: devel/binutils/Makefile =================================================================== --- devel/binutils/Makefile +++ devel/binutils/Makefile @@ -4,7 +4,7 @@ PORTNAME= binutils PORTVERSION= 2.25.1 PORTEPOCH= 1 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES= devel MASTER_SITES= SOURCEWARE/binutils/releases @@ -89,5 +89,8 @@ ${STAGEDIR}${PREFIX}/man/man1/${BUTARGET}-${tool}.1 \ ${STAGEDIR}${PREFIX}/${BUTARGET}/bin/${tool} .endfor +.if ${BUREMOVE:Mld} + @${RM} -rf ${STAGEDIR}${PREFIX}/${BUTARGET}/lib/ldscripts +.endif .include Index: devel/cloudabi-binutils-aarch64/Makefile =================================================================== --- devel/cloudabi-binutils-aarch64/Makefile +++ devel/cloudabi-binutils-aarch64/Makefile @@ -12,6 +12,7 @@ PLIST= ${.CURDIR}/pkg-plist BUTARGET= aarch64-unknown-cloudabi -BUREMOVE= ar dlltool nlmconv nm objdump ranlib size windmc windres +BUREMOVE= ar dlltool ld ld.bfd nlmconv nm objdump ranlib size windmc \ + windres .include "${MASTERDIR}/Makefile" Index: devel/cloudabi-binutils-aarch64/pkg-plist =================================================================== --- devel/cloudabi-binutils-aarch64/pkg-plist +++ devel/cloudabi-binutils-aarch64/pkg-plist @@ -3,8 +3,6 @@ bin/aarch64-unknown-cloudabi-c++filt bin/aarch64-unknown-cloudabi-elfedit bin/aarch64-unknown-cloudabi-gprof -bin/aarch64-unknown-cloudabi-ld -bin/aarch64-unknown-cloudabi-ld.bfd bin/aarch64-unknown-cloudabi-objcopy bin/aarch64-unknown-cloudabi-readelf bin/aarch64-unknown-cloudabi-strings @@ -14,39 +12,10 @@ man/man1/aarch64-unknown-cloudabi-c++filt.1.gz man/man1/aarch64-unknown-cloudabi-elfedit.1.gz man/man1/aarch64-unknown-cloudabi-gprof.1.gz -man/man1/aarch64-unknown-cloudabi-ld.1.gz man/man1/aarch64-unknown-cloudabi-objcopy.1.gz man/man1/aarch64-unknown-cloudabi-readelf.1.gz man/man1/aarch64-unknown-cloudabi-strings.1.gz man/man1/aarch64-unknown-cloudabi-strip.1.gz -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.x -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xbn -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xd -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xdc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xdw -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xn -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xr -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xs -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xsc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xsw -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xu -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabi.xw -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.x -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xbn -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xd -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xdc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xdw -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xn -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xr -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xs -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xsc -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xsw -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xu -aarch64-unknown-cloudabi/lib/ldscripts/aarch64cloudabib.xw aarch64-unknown-cloudabi/bin/as -aarch64-unknown-cloudabi/bin/ld -aarch64-unknown-cloudabi/bin/ld.bfd aarch64-unknown-cloudabi/bin/objcopy aarch64-unknown-cloudabi/bin/strip Index: devel/cloudabi-binutils-x86_64/Makefile =================================================================== --- devel/cloudabi-binutils-x86_64/Makefile +++ devel/cloudabi-binutils-x86_64/Makefile @@ -12,6 +12,7 @@ PLIST= ${.CURDIR}/pkg-plist BUTARGET= x86_64-unknown-cloudabi -BUREMOVE= ar dlltool nlmconv nm objdump ranlib size windmc windres +BUREMOVE= ar dlltool ld ld.bfd nlmconv nm objdump ranlib size windmc \ + windres .include "${MASTERDIR}/Makefile" Index: devel/cloudabi-binutils-x86_64/pkg-plist =================================================================== --- devel/cloudabi-binutils-x86_64/pkg-plist +++ devel/cloudabi-binutils-x86_64/pkg-plist @@ -3,8 +3,6 @@ bin/x86_64-unknown-cloudabi-c++filt bin/x86_64-unknown-cloudabi-elfedit bin/x86_64-unknown-cloudabi-gprof -bin/x86_64-unknown-cloudabi-ld -bin/x86_64-unknown-cloudabi-ld.bfd bin/x86_64-unknown-cloudabi-objcopy bin/x86_64-unknown-cloudabi-readelf bin/x86_64-unknown-cloudabi-strings @@ -14,26 +12,10 @@ man/man1/x86_64-unknown-cloudabi-c++filt.1.gz man/man1/x86_64-unknown-cloudabi-elfedit.1.gz man/man1/x86_64-unknown-cloudabi-gprof.1.gz -man/man1/x86_64-unknown-cloudabi-ld.1.gz man/man1/x86_64-unknown-cloudabi-objcopy.1.gz man/man1/x86_64-unknown-cloudabi-readelf.1.gz man/man1/x86_64-unknown-cloudabi-strings.1.gz man/man1/x86_64-unknown-cloudabi-strip.1.gz -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.x -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xbn -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xc -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xd -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xdc -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xdw -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xn -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xr -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xs -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xsc -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xsw -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xu -x86_64-unknown-cloudabi/lib/ldscripts/elf_x86_64_cloudabi.xw x86_64-unknown-cloudabi/bin/as -x86_64-unknown-cloudabi/bin/ld -x86_64-unknown-cloudabi/bin/ld.bfd x86_64-unknown-cloudabi/bin/objcopy x86_64-unknown-cloudabi/bin/strip Index: devel/cloudabi-toolchain/Makefile =================================================================== --- devel/cloudabi-toolchain/Makefile +++ devel/cloudabi-toolchain/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= cloudabi-toolchain -PORTVERSION= 1.3 +PORTVERSION= 1.4 CATEGORIES= devel MASTER_SITES= # None DISTFILES= # None @@ -13,22 +13,36 @@ LICENSE= MIT RUN_DEPENDS= clang${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \ - pkgconf:devel/pkgconf \ - aarch64-unknown-cloudabi-ld:devel/cloudabi-binutils-aarch64 \ - x86_64-unknown-cloudabi-ld:devel/cloudabi-binutils-x86_64 + lld${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} \ + pkgconf:devel/pkgconf -LLVM_SUFFIX= 38 +LLVM_SUFFIX= -devel CLOUDABI_ARCHS= aarch64-unknown-cloudabi x86_64-unknown-cloudabi LLVM_TOOLS= ar nm objdump ranlib size SHELL_TOOLS= man pkg-config +.include + +.if ${OSVERSION} >= 1100100 +# Depend on ELF tools provided by the base system. They work well with +# CloudABI executables. +BASE_TOOLS= addr2line c++filt objcopy readelf strings strip +CONFLICTS= cloudabi-binutils-* +.else +# The tools in the base system are too old to properly support CloudABI +# and aarch64. Depend on versions provided by GNU Binutils instead. +RUN_DEPENDS+= aarch64-unknown-cloudabi-readelf:devel/cloudabi-binutils-aarch64 \ + x86_64-unknown-cloudabi-readelf:devel/cloudabi-binutils-x86_64 +.endif + .for arch in ${CLOUDABI_ARCHS} -. for tool in ${LLVM_TOOLS} ${SHELL_TOOLS} +. for tool in ${BASE_TOOLS} ${LLVM_TOOLS} ${SHELL_TOOLS} PLIST_FILES+= bin/${arch}-${tool} . endfor -PLIST_FILES+= bin/${arch}-cc bin/${arch}-c++ llvm${LLVM_SUFFIX}/${arch} +PLIST_FILES+= bin/${arch}-cc bin/${arch}-c++ bin/${arch}-ld \ + llvm${LLVM_SUFFIX}/${arch} .endfor do-build: @@ -42,19 +56,25 @@ do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX} .for arch in ${CLOUDABI_ARCHS} +. for tool in ${BASE_TOOLS} + @${LN} -s /usr/bin/${tool} \ + ${STAGEDIR}${PREFIX}/bin/${arch}-${tool} +. endfor . for tool in ${LLVM_TOOLS} @${LN} -s ../llvm${LLVM_SUFFIX}/bin/llvm-${tool} \ ${STAGEDIR}${PREFIX}/bin/${arch}-${tool} . endfor . for tool in ${SHELL_TOOLS} - @${INSTALL_SCRIPT} ${WRKDIR}/${arch}-${tool} \ + ${INSTALL_SCRIPT} ${WRKDIR}/${arch}-${tool} \ ${STAGEDIR}${PREFIX}/bin/${arch}-${tool} . endfor @${LN} -s ../llvm${LLVM_SUFFIX}/bin/clang \ ${STAGEDIR}${PREFIX}/bin/${arch}-cc @${LN} -s ../llvm${LLVM_SUFFIX}/bin/clang++ \ ${STAGEDIR}${PREFIX}/bin/${arch}-c++ + @${LN} -s ../llvm${LLVM_SUFFIX}/bin/lld \ + ${STAGEDIR}${PREFIX}/bin/${arch}-ld @${LN} -s ../${arch} ${STAGEDIR}${PREFIX}/llvm${LLVM_SUFFIX}/${arch} .endfor -.include +.include