From owner-freebsd-toolchain@freebsd.org Mon Jul 24 00:27:39 2017 Return-Path: Delivered-To: freebsd-toolchain@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B5DDADB1C68 for ; Mon, 24 Jul 2017 00:27:39 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-38.reflexion.net [208.70.210.38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7556E746C3 for ; Mon, 24 Jul 2017 00:27:38 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 12118 invoked from network); 24 Jul 2017 00:27:37 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 24 Jul 2017 00:27:37 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.40.1) with SMTP; Sun, 23 Jul 2017 20:27:37 -0400 (EDT) Received: (qmail 21578 invoked from network); 24 Jul 2017 00:27:37 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 24 Jul 2017 00:27:37 -0000 Received: from [192.168.1.109] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id 78724EC805D; Sun, 23 Jul 2017 17:27:36 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: amd64 -r321109 -> -r321371 buildworld update failed (spans clang 5 update); error: too few arguments provided to function-like macro invocation; , METAMODE and -j8 was used From: Mark Millard In-Reply-To: <3EF869EB-ADB6-455B-8725-2E42C73B27EB@FreeBSD.org> Date: Sun, 23 Jul 2017 17:27:35 -0700 Cc: FreeBSD Toolchain , FreeBSD Current Content-Transfer-Encoding: quoted-printable Message-Id: <77819047-45D4-4CA4-BF17-2A00FE21E32B@dsl-only.net> References: <056C30CC-72B8-41A4-AEAA-64B6B96854DB@dsl-only.net> <3EF869EB-ADB6-455B-8725-2E42C73B27EB@FreeBSD.org> To: Dimitry Andric , Bryan Drewery X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-toolchain@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Maintenance of FreeBSD's integrated toolchain List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Jul 2017 00:27:39 -0000 On 2017-Jul-22, at 5:09 PM, Dimitry Andric wrote: > On 23 Jul 2017, at 02:02, Mark Millard wrote: >>=20 >> On 2017-Jul-22, at 4:50 PM, Dimitry Andric wrote: >>> On 23 Jul 2017, at 01:32, Mark Millard wrote: >>>>=20 >>>> My first attempt to update amd64 to a clang 5 based /usr/src >>>> failed ( -r321109 -> -r321371 ). Listing just the first >>>> error initially: >>>>=20 >>>> --- ToolDrivers/llvm-lib/LibDriver.o --- >>>> In file included from = /usr/src/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp:35: >>>> = /usr/obj/amd64_clang/amd64.amd64/usr/src/lib/clang/libllvm/Options.inc:27:= 92: error: too few arguments provided to function-like macro invocation >>>> OPTION(prefix_0, "", INPUT, Input, INVALID, INVALID, = nullptr, 0, 0, nullptr, nullptr) >>>> = ^ >>>> /usr/src/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp:34:9: = note: macro 'OPTION' defined here >>>> #define OPTION(_1, _2, ID, _4, _5, _6, _7, _8, _9, _10, _11, _12) = OPT_##ID, >>>> ^ >>>=20 >>> Yeah, I think this can happen with an incremental build, and if you >>> enable MK_CLANG_EXTRAS. There was only one Options.inc file first, = in >>> $WORLDTMP/usr/src/lib/clang/libllvm, but now there are two different >>> ones, under $WORLDTMP/usr/src/lib/clang/libllvm/llvm-lib and >>> $WORLDTMP/usr/src/lib/clang/libllvm/llvm-dlltool. This is a rather >>> unfortunate change from upstream. >>>=20 >>> I'm unsure what to do here, maybe it is a good idea to explicitly rm >>> the incorrect file before make starts to search the directory. = Bryan, >>> any clues? IIRC there were some other precedents where stale = objects >>> could get in the way, and would have to be force-deleted before even >>> the depend stage? >>=20 >> I've done: >>=20 >> # mv /usr/obj/amd64_clang /usr/obj/amd64_clang_r321109_r321371 >>=20 >> before starting a rebuild --in to preserve my >> failed-build context in case that record of >> the result of the attempt can help. >=20 > What you could try with the old objdir is: >=20 > rm = /usr/obj/amd64_clang/amd64.amd64/usr/src/lib/clang/libllvm/Options.inc >=20 > then doing another incremental build. I think that will work. Comparing the Options.inc list from a failed cross build update to -r321371 to one that has been rebuilt: Note rebuilt yet (I deliberately did not clean out any old Options.inc files first): # find /usr/obj/cortexA53_clang/ -name Options.inc -print | sort = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/lib/clang/libclang/clang/Dr= iver/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/lib/clang/libllvm/Options.i= nc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/tmp/usr/src/lib/clang/libcl= ang/clang/Driver/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/tmp/usr/src/lib/clang/libll= vm/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/tmp/usr/src/lib/clang/libll= vm/llvm-dlltool/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/tmp/usr/src/lib/clang/libll= vm/llvm-lib/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/tmp/usr/src/usr.bin/clang/l= ld/ELF/Options.inc = /usr/obj/cortexA53_clang/arm64.aarch64/usr/src/usr.bin/clang/lld/ELF/Optio= ns.inc vs. rebuilt (with first cleaning out sufficient Options.inc files): # find /usr/obj/powerpc64vtsc_clang_altbinutils/ -name Options.inc = -print | sort = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib/cla= ng/libclang/clang/Driver/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib/cla= ng/libllvm/llvm-dlltool/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/lib/cla= ng/libllvm/llvm-lib/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr= /src/lib/clang/libclang/clang/Driver/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr= /src/lib/clang/libllvm/llvm-dlltool/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/tmp/usr= /src/lib/clang/libllvm/llvm-lib/Options.inc = /usr/obj/powerpc64vtsc_clang_altbinutils/powerpc.powerpc64/usr/src/usr.bin= /clang/lld/ELF/Options.inc It looks like all the following are "old only": . . ./usr/src/lib/clang/libllvm/Options.inc . . ./usr/src/tmp/usr/src/lib/clang/libllvm/Options.inc . . ./usr/src/tmp/usr/src/usr.bin/clang/lld/ELF/Options.inc And comparing the rebuilt to something that has not had an attempted update to a clang 5 version at all: # find /usr/obj/armv7_clang/ -name Options.inc -print | sort = /usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libclang/clang/Driver/Opt= ions.inc /usr/obj/armv7_clang/arm.armv6/usr/src/lib/clang/libllvm/Options.inc = /usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/src/lib/clang/libclang/clan= g/Driver/Options.inc = /usr/obj/armv7_clang/arm.armv6/usr/src/tmp/usr/src/lib/clang/libllvm/Optio= ns.inc /usr/obj/armv7_clang/arm.armv6/usr/src/usr.bin/clang/lld/ELF/Options.inc It looks like all the following are "old only": . . ./usr/src/lib/clang/libllvm/Options.inc . . ./usr/src/tmp/usr/src/lib/clang/libllvm/Options.inc =3D=3D=3D Mark Millard markmi at dsl-only.net