Bug 205250 - [exp-run] removal of /usr/bin/as (evaluate ports impact)
Summary: [exp-run] removal of /usr/bin/as (evaluate ports impact)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Port Management Team
URL:
Keywords: needs-qa, patch
Depends on: 239509
Blocks: 233094 233611
  Show dependency treegraph
 
Reported: 2015-12-11 19:51 UTC by Ed Maste
Modified: 2021-09-02 23:59 UTC (History)
2 users (show)

See Also:
koobs: exp-run?


Attachments
patch to remove /usr/bin/as (2.42 KB, patch)
2015-12-11 19:51 UTC, Ed Maste
no flags Details | Diff
Remove as from i386 (only) for now (709 bytes, patch)
2020-02-03 21:41 UTC, Ed Maste
no flags Details | Diff
turn off binutils by default (1.18 KB, patch)
2020-05-08 16:32 UTC, Ed Maste
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Maste freebsd_committer freebsd_triage 2015-12-11 19:51:49 UTC
Created attachment 164125 [details]
patch to remove /usr/bin/as

For those architectures where Clang is the system compiler, the Clang driver it is used to assemble .S files in the base system.

I would like to request an exp-run to determine the impact of not installing /usr/bin/as.
Comment 1 Antoine Brodin freebsd_committer freebsd_triage 2015-12-12 12:12:36 UTC
Buildworld doesn't complete on i386 without /usr/bin/as  (problem with i386 assembly in libcrypto?)
Comment 2 Antoine Brodin freebsd_committer freebsd_triage 2015-12-13 20:38:58 UTC
Exp-run results on amd64:

http://package18.nyi.freebsd.org/jail.html?mastername=headamd64PR205250-default

11 new failures, and around 200 new ports skipped:

+ {"origin"=>"emulators/qemu-devel", "pkgname"=>"qemu-devel-2.4.0", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"emulators/qemu-sbruno", "pkgname"=>"qemu-sbruno-2.4.50.g20151206", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"emulators/vmw", "pkgname"=>"vmw-060510_1", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"lang/ccl", "pkgname"=>"ccl-1.11", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"lang/fpc", "pkgname"=>"fpc-3.0.0", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"lang/mit-scheme", "pkgname"=>"mit-scheme-9.2_1", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"lang/ocaml", "pkgname"=>"ocaml-4.02.1", "phase"=>"build", "errortype"=>"missing_header"}
+ {"origin"=>"lang/ocaml-nox11", "pkgname"=>"ocaml-nox11-4.02.1", "phase"=>"build", "errortype"=>"missing_header"}
+ {"origin"=>"lang/smlnj", "pkgname"=>"smlnj-110.77", "phase"=>"build", "errortype"=>"install_error"}
+ {"origin"=>"lang/ypsilon", "pkgname"=>"ypsilon-0.9.6.3_3", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"multimedia/libxine", "pkgname"=>"libxine-1.2.6_3", "phase"=>"configure", "errortype"=>"configure_error"}

Failure logs:

http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/qemu-devel-2.4.0.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/qemu-sbruno-2.4.50.g20151206.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/vmw-060510_1.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/ccl-1.11.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/fpc-3.0.0.log   
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/mit-scheme-9.2_1.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/ocaml-4.02.1.log  
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/ocaml-nox11-4.02.1.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/smlnj-110.77.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/ypsilon-0.9.6.3_3.log 
http://package18.nyi.freebsd.org/data/headamd64PR205250-default/2015-12-13_17h30m47s/logs/errors/libxine-1.2.6_3.log
Comment 3 Ed Maste freebsd_committer freebsd_triage 2015-12-14 16:11:53 UTC
Thanks for the exp-run Antoine.

The mk/* infrastructure uses the Clang driver for assembling .S (uppercase) files and ${AS} for .s (lowercase) files. amd64 world has only .S files, but as you discovered i386 has .s files in secure/lib/libcrypto/i386/
Comment 4 Ed Maste freebsd_committer freebsd_triage 2018-02-01 14:54:00 UTC
My earlier comment missed any .s files in the kernel, but amd64 has also grown a single .s file since this was originally submitted:

% git ls-files | grep 'amd64.*\.s$'
sys/amd64/linux/linux_locore.s
sys/amd64/linux/linux_support.s
sys/amd64/linux/linux_vdso.lds.s
sys/amd64/linux32/linux32_locore.s
sys/amd64/linux32/linux32_support.s
sys/amd64/linux32/linux32_vdso.lds.s
sys/crypto/skein/amd64/skein_block_asm.s

The first issue encountered while assembling skein_block_asm.s with Clang is tracked in https://bugs.llvm.org/show_bug.cgi?id=33404; I haven't looked into the next ones after that's addressed.
Comment 5 Mark Millard 2018-08-26 21:36:11 UTC
(In reply to Ed Maste from comment #4)

In my trying to update to -r338319 for amd64 I discovered
that it involves i386's libstand and that in turn also is
using -no-integrated-as . This made my buildworld buildkernel
that used WITHOUT_BINUTILS_BOOTSTRAP= and WITHOUT_BINUTILS=
fail with:

--- btx.o ---
cc: error: unable to execute command: Executable "as" doesn't exist!
cc: error: assembler command failed with exit code 1 (use -v to see invocation)


For reference: examples of -no-integrated-as
(and CLANG_NO_IAS/CLANG_NO_IAS34) . . .

# grep -r "\-no-integrated-as" /usr/src/ | grep -v "/\.svn/" | more
. . . (Ignoring llvm internals here) . . .
/usr/src/sys/conf/kern.mk:CLANG_NO_IAS= -no-integrated-as
/usr/src/sys/conf/kern.mk:CLANG_NO_IAS34= -no-integrated-as

# grep -r "CLANG_NO_IAS" /usr/src/ | grep -v "/\.svn/" | more
/usr/src/lib/libz/Makefile:#ACFLAGS.gvmat64.S=  ${CLANG_NO_IAS}
/usr/src/share/mk/bsd.sys.mk:# only enable it for some files with CLFAGS.$FILE+=${CLANG_NO_IAS}.
/usr/src/share/mk/bsd.sys.mk:CLANG_NO_IAS=       -no-integrated-as
/usr/src/stand/i386/boot2/Makefile:CFLAGS.boot1.S=              ${CLANG_NO_IAS}
/usr/src/stand/i386/btx/btx/Makefile:CFLAGS.btx.S=              ${CLANG_NO_IAS}
/usr/src/stand/i386/btx/btxldr/Makefile:CFLAGS.btxldr.S=        ${CLANG_NO_IAS}
/usr/src/stand/i386/cdboot/Makefile:CFLAGS.cdboot.S=    ${CLANG_NO_IAS}
/usr/src/stand/i386/gptboot/Makefile:CFLAGS.gptldr.S=   ${CLANG_NO_IAS}
/usr/src/stand/i386/gptzfsboot/Makefile:CFLAGS.gptldr.S=        ${CLANG_NO_IAS}
/usr/src/stand/i386/libi386/Makefile:CFLAGS.amd64_tramp.S=      ${CLANG_NO_IAS}
/usr/src/stand/i386/libi386/Makefile:CFLAGS.multiboot_tramp.S=  ${CLANG_NO_IAS}
/usr/src/stand/i386/pxeldr/Makefile:CFLAGS.pxeldr.S=    ${CLANG_NO_IAS}
/usr/src/stand/i386/zfsboot/Makefile:CFLAGS.zfsldr.S=   ${CLANG_NO_IAS}
/usr/src/sys/conf/Makefile.amd64:ASM_CFLAGS.acpi_wakecode.S=    ${CLANG_NO_IAS34}
/usr/src/sys/conf/Makefile.amd64:ASM_CFLAGS.mpboot.S=           ${CLANG_NO_IAS34}
/usr/src/sys/conf/Makefile.i386:ASM_CFLAGS.acpi_wakecode.S=     ${CLANG_NO_IAS34}
/usr/src/sys/conf/Makefile.i386:ASM_CFLAGS.mpboot.s=            ${CLANG_NO_IAS34}
/usr/src/sys/conf/kern.mk:CLANG_NO_IAS= -no-integrated-as
/usr/src/sys/conf/kern.mk:CLANG_NO_IAS34= -no-integrated-as
/usr/src/sys/modules/bios/smapi/Makefile:CFLAGS.smapi_bios.S=   ${CLANG_NO_IAS34}
Comment 6 commit-hook freebsd_committer freebsd_triage 2018-11-20 16:55:17 UTC
A commit references this bug:

Author: emaste
Date: Tue Nov 20 16:54:43 UTC 2018
New revision: 340681
URL: https://svnweb.freebsd.org/changeset/base/340681

Log:
  stand: remove CLANG_NO_IAS from btx and gptboot

  Many components under stand/ had CLANG_NO_IAS added when Clang's
  Integrated Assembler (IAS) did not handle .codeNN directives.  Clang
  gained support quite some time ago, and we can now build stand/ with
  IAS.

  Note that in some cases there are small differences in the generated
  output, so CLANG_NO_IAS should be removed only after testing (or after
  finding no differences in the output).

  PR:		205250, 233094
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/stand/i386/btx/btx/Makefile
  head/stand/i386/btx/btxldr/Makefile
  head/stand/i386/gptboot/Makefile
Comment 7 commit-hook freebsd_committer freebsd_triage 2018-11-26 19:14:53 UTC
A commit references this bug:

Author: emaste
Date: Mon Nov 26 19:14:34 UTC 2018
New revision: 340990
URL: https://svnweb.freebsd.org/changeset/base/340990

Log:
  btx: rename .s files to .S to use Clang IAS

  As part of the migration away from obsolete binutils we want to retire
  GNU as.  Most assembly files used on amd64 have a .S extension and are
  assembled with Clang's integrated assembler; rename two files in
  stand/i386/btx/lib to .S to use IAS as well.

  The generated .text is identical (the entire .o files are not, as Clang
  adds debug info).

  PR:		205250, 233094
  Discussed with:	imp
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/stand/i386/btx/lib/Makefile
  head/stand/i386/btx/lib/btxsys.S
  head/stand/i386/btx/lib/btxsys.s
  head/stand/i386/btx/lib/btxv86.S
  head/stand/i386/btx/lib/btxv86.s
Comment 8 commit-hook freebsd_committer freebsd_triage 2018-11-26 19:30:10 UTC
A commit references this bug:

Author: emaste
Date: Mon Nov 26 19:29:18 UTC 2018
New revision: 340991
URL: https://svnweb.freebsd.org/changeset/base/340991

Log:
  stand/i386/libi386: rename .s file to .S to use Clang IAS

  As part of the migration away from obsolete binutils we want to retire
  GNU as.  Most assembly files used on amd64 have a .S extension and are
  assembled with Clang's Integrated Assembler (IAS); rename pxetram.s to
  .S to use IAS as well.

  The generated .text is identical (the entire .o file is not, as Clang
  adds debug info.)

  PR:		205250, 233094
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/stand/i386/libi386/Makefile
  head/stand/i386/libi386/pxetramp.S
  head/stand/i386/libi386/pxetramp.s
Comment 9 Ed Maste freebsd_committer freebsd_triage 2020-02-03 21:41:36 UTC
Created attachment 211326 [details]
Remove as from i386 (only) for now
Comment 10 Ed Maste freebsd_committer freebsd_triage 2020-02-04 00:12:33 UTC
Portmgr, could you try the exp-run on i386 again using the new patch (i386-no-as.diff, Remove as from i386 (only) for now)

Today as is only built for amd64 and i386; we still need to sort out skein-block-asm.s for amd64 but I would like to make incremental progress on binutils retirement.
Comment 11 Antoine Brodin freebsd_committer freebsd_triage 2020-02-18 09:02:34 UTC
New failures on i386:

+ {"origin"=>"comms/libfec", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"comms/syncterm", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"devel/plan9port", "phase"=>"stage", "errortype"=>"???"}
+ {"origin"=>"emulators/vmw", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"games/dxx-rebirth", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"graphics/vulkan-loader", "phase"=>"configure", "errortype"=>"???"}
+ {"origin"=>"lang/hla", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"lang/mit-scheme", "phase"=>"build", "errortype"=>"process_failed"}
+ {"origin"=>"lang/ocaml", "phase"=>"build", "errortype"=>"missing_header"}
+ {"origin"=>"lang/ocaml-nox11", "phase"=>"build", "errortype"=>"missing_header"}
+ {"origin"=>"math/ldouble", "phase"=>"build", "errortype"=>"???"}
+ {"origin"=>"multimedia/mencoder", "phase"=>"configure", "errortype"=>"configure_error"}
+ {"origin"=>"multimedia/mplayer", "phase"=>"configure", "errortype"=>"configure_error"}

Around 200 ports were skipped due to those new failures (lang/ocaml, graphics/vulkan-loader, multimedia/mplayer)
Comment 12 Antoine Brodin freebsd_committer freebsd_triage 2020-02-18 09:03:53 UTC
New failure logs on i386:

http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/libfec-3.0.1_4.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/syncterm-1.0.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/plan9port-20190619.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/vmw-060510_1.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/dxx-rebirth-20191227.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/vulkan-loader-1.1.108.0_1.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/hla-1.103.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/mit-scheme-9.2_4.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/ocaml-4.05.0_1.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/ocaml-nox11-4.05.0_1.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/ldouble-0.1_2.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/mencoder-1.4.0.20191227.log
http://package18.nyi.freebsd.org/data/headi386PR205250-default/2020-02-16_21h27m33s/logs/errors/mplayer-1.4.0.20191227.log
Comment 13 Ed Maste freebsd_committer freebsd_triage 2020-05-08 16:32:48 UTC
Created attachment 214281 [details]
turn off binutils by default

Updated patch - leave BINUTILS_BOOTSTRAP on for amd64 skein_block_asm.s, turn off so there is no installed /usr/bin/as.
Comment 14 Ed Maste freebsd_committer freebsd_triage 2020-05-09 00:26:16 UTC
ports patches: https://reviews.freebsd.org/D24739
Comment 15 commit-hook freebsd_committer freebsd_triage 2020-05-10 16:44:49 UTC
A commit references this bug:

Author: jbeich
Date: Sun May 10 16:43:59 UTC 2020
New revision: 534854
URL: https://svnweb.freebsd.org/changeset/ports/534854

Log:
  graphics/vulkan-loader: unbreak without /usr/bin/as on amd64/i386

  CMake Error at loader/CMakeLists.txt:151 (enable_language):
    No CMAKE_ASM-ATT_COMPILER could be found.

    Tell CMake where to find the compiler by setting either the environment
    variable "ASM-ATT" or the CMake cache entry CMAKE_ASM-ATT_COMPILER to the
    full path to the compiler, or to the compiler name if it is in the PATH.

  PR:		205250
  Reported by:	antoine (via exp-run)

Changes:
  head/graphics/vulkan-loader/Makefile
Comment 16 Ed Maste freebsd_committer freebsd_triage 2020-05-22 02:51:20 UTC
I've confirmed that the remaining failures on i386 are fixed by the addition of BUILD_DEPENDS=as:devel/binutils or at a minimum that the port builds with binutils installed. I've emailed the authors of the affected ports in case they prefer a different fix (e.g., using the compiler's integrated assembler).
Comment 17 commit-hook freebsd_committer freebsd_triage 2020-05-22 13:50:38 UTC
A commit references this bug:

Author: emaste
Date: Fri May 22 13:50:21 UTC 2020
New revision: 536201
URL: https://svnweb.freebsd.org/changeset/ports/536201

Log:
  lang/hla: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)

Changes:
  head/lang/hla/Makefile
Comment 18 commit-hook freebsd_committer freebsd_triage 2020-05-22 13:56:40 UTC
A commit references this bug:

Author: emaste
Date: Fri May 22 13:55:50 UTC 2020
New revision: 536203
URL: https://svnweb.freebsd.org/changeset/ports/536203

Log:
  math/ldouble: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)

Changes:
  head/math/ldouble/Makefile
Comment 19 Ed Maste freebsd_committer freebsd_triage 2020-05-22 14:51:13 UTC
On i386 the following have now been addressed, mostly by their maintainers:
emulators/vmw games/dxx-rebirth graphics/vulkan-loader lang/hla math/ldouble multimedia/mencoder multimedia/mplayer

I've tested adding binutils to address the following:
comms/libfec comms/syncterm devel/plan9port lang/ocaml lang/ocaml-nox11 lang/mit-scheme

I've emailed the maintainers of the 2nd list and will commit the BUILD_DEPENDS additions at the end of the month for any that haven't yet been handled, then default to WITHOUT_BINUTILS on i386 as previously discussed:
https://lists.freebsd.org/pipermail/freebsd-current/2020-May/076090.html

The amd64 exp-run is from 2015 so I will hold off on making the change there until the exp-run is done.
Comment 20 commit-hook freebsd_committer freebsd_triage 2020-05-29 00:12:36 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 00:11:49 UTC 2020
New revision: 536824
URL: https://svnweb.freebsd.org/changeset/ports/536824

Log:
  comms/libfec: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)

Changes:
  head/comms/libfec/Makefile
Comment 21 commit-hook freebsd_committer freebsd_triage 2020-05-29 00:15:41 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 00:15:17 UTC 2020
New revision: 536825
URL: https://svnweb.freebsd.org/changeset/ports/536825

Log:
  comms/syncterm: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)

Changes:
  head/comms/syncterm/Makefile
Comment 22 commit-hook freebsd_committer freebsd_triage 2020-05-29 00:17:43 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 00:17:08 UTC 2020
New revision: 536826
URL: https://svnweb.freebsd.org/changeset/ports/536826

Log:
  devel/plan9port: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/devel/plan9port/Makefile
Comment 23 commit-hook freebsd_committer freebsd_triage 2020-05-29 00:20:45 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 00:20:19 UTC 2020
New revision: 536827
URL: https://svnweb.freebsd.org/changeset/ports/536827

Log:
  lang/ocaml: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/lang/ocaml/Makefile
Comment 24 commit-hook freebsd_committer freebsd_triage 2020-05-29 00:22:47 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 00:22:24 UTC 2020
New revision: 536828
URL: https://svnweb.freebsd.org/changeset/ports/536828

Log:
  lang/mit-scheme: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/lang/mit-scheme/Makefile
Comment 26 commit-hook freebsd_committer freebsd_triage 2020-05-29 11:28:38 UTC
A commit references this bug:

Author: antoine
Date: Fri May 29 11:27:55 UTC 2020
New revision: 536967
URL: https://svnweb.freebsd.org/changeset/ports/536967

Log:
  ocaml depends on as(1) at runtime

  PR:		205250

Changes:
  head/lang/ocaml/Makefile
Comment 27 commit-hook freebsd_committer freebsd_triage 2020-05-29 17:37:13 UTC
A commit references this bug:

Author: emaste
Date: Fri May 29 17:36:55 UTC 2020
New revision: 361628
URL: https://svnweb.freebsd.org/changeset/base/361628

Log:
  Disable BINUTILS by default on i386

  The retirement of obsolete binutils 2.17.50 has been in progress for
  quite some time.  All tools other than GNU as were removed prior to this
  commit, and it was built only on two archs:

  i386, installed as /usr/bin/as
  amd64, installed as /usr/bin/as and as a bootstrap tool

  The i386 exp-run has completed and failures have been addressed in the
  individual ports, so disable it there.

  PR:		233611, 205250 [exp-run]
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/share/mk/src.opts.mk
Comment 29 commit-hook freebsd_committer freebsd_triage 2020-05-30 15:53:07 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 15:52:48 UTC 2020
New revision: 537087
URL: https://svnweb.freebsd.org/changeset/ports/537087

Log:
  audio/ardour5: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  This likely also addresses the reason this port is marked BROKEN_aarch64;
  that can be addressed in a subsequent sweep.

  PR:		205250
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/audio/ardour5/Makefile
Comment 30 commit-hook freebsd_committer freebsd_triage 2020-05-30 15:57:08 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 15:56:11 UTC 2020
New revision: 537088
URL: https://svnweb.freebsd.org/changeset/ports/537088

Log:
  security/akmos: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250 [exp-run]
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/security/akmos/Makefile
Comment 31 commit-hook freebsd_committer freebsd_triage 2020-05-30 15:58:09 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 15:57:53 UTC 2020
New revision: 537089
URL: https://svnweb.freebsd.org/changeset/ports/537089

Log:
  security/nflib: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250 [exp-run]
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/security/nflib/Makefile
Comment 32 commit-hook freebsd_committer freebsd_triage 2020-05-30 16:00:11 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 15:59:57 UTC 2020
New revision: 537090
URL: https://svnweb.freebsd.org/changeset/ports/537090

Log:
  net/zerotier: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250 [exp-run]
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/net/zerotier/Makefile
Comment 33 commit-hook freebsd_committer freebsd_triage 2020-05-30 16:02:12 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 16:01:53 UTC 2020
New revision: 537091
URL: https://svnweb.freebsd.org/changeset/ports/537091

Log:
  lang/myrddin: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250 [exp-run]
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/lang/myrddin/Makefile
Comment 34 commit-hook freebsd_committer freebsd_triage 2020-05-30 16:07:13 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 16:06:20 UTC 2020
New revision: 537092
URL: https://svnweb.freebsd.org/changeset/ports/537092

Log:
  databases/memcached: add BUILD_DEPENDS as:devel/binutils

  /usr/bin/as will soon be removed from the FreeBSD base system, for
  FreeBSD 13.0.

  Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
  change for existing 11.x and 12.x, which will continue to use the base
  system GNU as 2.17.50.

  PR:		205250 [exp-run]
  Approved by:	portmgr (blanket)
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/databases/memcached/Makefile
Comment 35 commit-hook freebsd_committer freebsd_triage 2020-05-30 16:12:16 UTC
A commit references this bug:

Author: emaste
Date: Sat May 30 16:12:01 UTC 2020
New revision: 361648
URL: https://svnweb.freebsd.org/changeset/base/361648

Log:
  Disable BINUTILS by default on amd64

  The retirement of obsolete binutils 2.17.50 has been in progress for
  quite some time.  All tools other than GNU as were removed prior to this
  commit, and it was built only on amd64 - installed as /usr/bin/as, and
  used as a bootstrap tool.

  The amd64 exp-run has completed and failures have now been addressed in
  the individual ports, so disable it by default.

  PR:		233611, 205250 [exp-run]
  Sponsored by:	The FreeBSD Foundation

Changes:
  head/share/mk/src.opts.mk
Comment 36 Ed Maste freebsd_committer freebsd_triage 2020-05-30 16:14:14 UTC
Failures have been addressed; thank you for the exp-runs Antoine.
Comment 37 Mark Millard 2020-06-02 22:46:24 UTC
(In reply to Ed Maste from comment #36)

I just got:

--- .obj/pixman-arm-neon-asm.o ---
cc: error: unable to execute command: Executable "as" doesn't exist!
cc: error: assembler command failed with exit code 1 (use -v to see invocation)
*** [.obj/pixman-arm-neon-asm.o] Error code 1

make[1]: stopped in /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-everywhere-src-5.14.2/src/gui
--- .obj/qdrawhelper_neon_asm.o ---
cc: error: unable to execute command: Executable "as" doesn't exist!
cc: error: assembler command failed with exit code 1 (use -v to see invocation)
*** [.obj/qdrawhelper_neon_asm.o] Error code 1

via using poudriere-devel on an aarch64 machine
building ports targetting armv7 for /usr/ports/
vintage:

# svnlite info /usr/ports/
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: svn://svn.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: svn://svn.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 537522
Node Kind: directory
Schedule: normal
Last Changed Author: riggs
Last Changed Rev: 537522
Last Changed Date: 2020-06-01 22:57:35 -0700 (Mon, 01 Jun 2020)

This was for my WITHOUT_BINUTILS= FreeBSD head -r360311 aarch64
context. Still, as far as I can tell, there is no reason for my
WITHOUT_BINUTILS= context to be an inapproprate context for
testing such builds. FYI:

# uname -apKU
FreeBSD FBSDCA57 13.0-CURRENT FreeBSD 13.0-CURRENT #2 r360311M: Sat Apr 25 10:41:54 PDT 2020     markmi@FBSDFHUGE:/usr/obj/cortexA57_clang/arm64.aarch64/usr/src/arm64.aarch64/sys/GENERIC-NODBG  arm64 aarch64 1300092 1300092
Comment 38 Ed Maste freebsd_committer freebsd_triage 2020-06-02 23:00:56 UTC
(In reply to Mark Millard from comment #37)
We haven't installed GNU as 2.17.50 on non-x86 archs for quite some time; is this a new regression or have you not tried building until recently?
Comment 39 Mark Millard 2020-06-02 23:35:53 UTC
(In reply to Ed Maste from comment #38)

I only discovered that on my aarch64 context I
could chroot to an armv7 installworld result
back in mid 2020-Apr or so, leading to poudriere
experiments. (amd64 via qemu does not work well
for poudriere builds of armv7 ports: various
processes in the build hang up.)

For aarch64 targeting armv7, various other things
were also not building for other reasons but more
are building now. Looking at the logs, the other
time I tried this (2020-Apr-22), qt5-gui had the
same failure. At the time, I focused on the 4
compilers that I could not build and ignored
getting any GUI code to build. So I did not
look at the details then. Sorry for the late
report.

For the compilers, it was more of a objdump
driven issue but all worked fine this time.

Note, on aarch64 targeting aarch64, the builds
went fine, including for qt5-gui. It is just
targeting armv7 that got the problem. I've not
tried on any of the much slower native armv7
contexts that I have access to. I may be able
to do so later.
Comment 40 Mark Millard 2020-06-02 23:56:13 UTC
(In reply to Mark Millard from comment #39)

I checked the logs on the native armv7 machine
that I rarely do builds on: back on
2019-Dec-28 I did a build that also showed the
problem. It was probably a WITHOUT_BINUTILS=
world experiment:

--- .obj/pixman-arm-neon-asm.o ---
cc: error: unable to execute command: Executable "as" doesn't exist!
cc: error: assembler command failed with exit code 1 (use -v to see invocation)
*** [.obj/pixman-arm-neon-asm.o] Error code 1

make[1]: stopped in /wrkdirs/usr/ports/x11-toolkits/qt5-gui/work/qtbase-everywhere-src-5.13.2/src/gui
--- .obj/qdrawhelper_neon_asm.o ---
cc: error: unable to execute command: Executable "as" doesn't exist!
cc: error: assembler command failed with exit code 1 (use -v to see invocation)
*** [.obj/qdrawhelper_neon_asm.o] Error code 1

(There were also compiler build failures as
well.)
Comment 41 Mark Millard 2020-06-03 00:15:17 UTC
(In reply to Mark Millard from comment #40)

Side note avoiding incorrect compiler-build
related implications of my prior wording . . .

I should have been more careful with my compiler
wording: I made local updates and also interacted
with a maintainer for some issues. Looking, I'd
forgotten that there were still things like the
following local to my environment:

-.if ${TARGETARCH} == "armv6" || ${TARGETARCH} == "aarch64"
+.if ${TARGETARCH} == "armv6" || ${TARGETARCH} == "armv7" || ${TARGETARCH} == "aarch64"
 . if ${COMPILER_TYPE} == clang
 MAKE_ARGS+=CXXFLAGS=-fbracket-depth=512
 . endif

Also (presumes my lack of needing elfv1):

+.if ${TARGETARCH} == powerpc64
+CONFIGURE_ARGS+=        --with-abi=elfv2
+.endif

and:

-BROKEN_aarch64=                configure: error: cannot compute suffix of object files: cannot compile
+#BROKEN_aarch64=               configure: error: cannot compute suffix of object files: cannot compile


My comments about all the compilers building okay are
really just relative to objdump and/or as binutils
issues relative to svn contents: some still have
other types of issues without updates.
Comment 42 Mark Millard 2020-06-03 03:49:32 UTC
(In reply to Ed Maste from comment #38)

FYI: I tried

# svnlite diff /usr/ports/x11-toolkits/qt5-gui/ | more
Index: /usr/ports/x11-toolkits/qt5-gui/Makefile
===================================================================
--- /usr/ports/x11-toolkits/qt5-gui/Makefile    (revision 537522)
+++ /usr/ports/x11-toolkits/qt5-gui/Makefile    (working copy)
@@ -11,7 +11,8 @@
 BUILD_DEPENDS= at-spi2-core>=0:accessibility/at-spi2-core \
                ${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
                ${LOCALBASE}/include/vulkan/vulkan.h:devel/vulkan-headers \
-               ${LOCALBASE}/include/xf86drm.h:graphics/libdrm
+               ${LOCALBASE}/include/xf86drm.h:graphics/libdrm \
+               as:devel/binutils
 LIB_DEPENDS=   libdbus-1.so:devel/dbus \
                libevdev.so:devel/libevdev \
                libfontconfig.so:x11-fonts/fontconfig \

and it built for armv7 just fine (and the overall build
finished).

May be armv7 needs its own exp run to see if there
are other examples. (I build less than 500 ports
based on the few that I directly select to build,
with a subset of less than 200 actually needing
rebuild for this particular /usr/ports/ update.)
Comment 43 commit-hook freebsd_committer freebsd_triage 2021-09-02 23:59:24 UTC
A commit in branch stable/12 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=76a6b4ad3519c752f531f488f4cbbb1eea811db4

commit 76a6b4ad3519c752f531f488f4cbbb1eea811db4
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2018-11-20 16:54:42 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2021-09-02 23:30:00 +0000

    stand: remove CLANG_NO_IAS from btx and gptboot

    Many components under stand/ had CLANG_NO_IAS added when Clang's
    Integrated Assembler (IAS) did not handle .codeNN directives.  Clang
    gained support quite some time ago, and we can now build stand/ with
    IAS.

    Note that in some cases there are small differences in the generated
    output, so CLANG_NO_IAS should be removed only after testing (or after
    finding no differences in the output).

    PR:             205250, 233094
    Sponsored by:   The FreeBSD Foundation

    (cherry picked from commit 02c4bf4391ec7296f5a002c139576ae8797853d1)

 stand/i386/btx/btx/Makefile    | 3 ---
 stand/i386/btx/btxldr/Makefile | 3 ---
 stand/i386/gptboot/Makefile    | 3 ---
 3 files changed, 9 deletions(-)