From owner-freebsd-arm@freebsd.org Fri May 12 21:36:57 2017 Return-Path: Delivered-To: freebsd-arm@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 BB56FD693EF for ; Fri, 12 May 2017 21:36:57 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-210-6.reflexion.net [208.70.210.6]) (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 6B7D4AF8 for ; Fri, 12 May 2017 21:36:57 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 25180 invoked from network); 12 May 2017 21:36:50 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 12 May 2017 21:36:50 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v8.40.0) with SMTP; Fri, 12 May 2017 17:36:50 -0400 (EDT) Received: (qmail 11179 invoked from network); 12 May 2017 21:36:50 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 12 May 2017 21:36:50 -0000 Received: from [192.168.1.106] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 5787BEC8697; Fri, 12 May 2017 14:36:49 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: www/firefox on RPI2: error: instruction requires: armv6t2 From: Mark Millard In-Reply-To: <20170512193131.GA79348@www.zefox.net> Date: Fri, 12 May 2017 14:36:48 -0700 Cc: ports@freebsd.org, freebsd-arm Content-Transfer-Encoding: quoted-printable Message-Id: References: <20170509230236.GA69546@www.zefox.net> <20170510151019.GA70628@www.zefox.net> <20170511033754.GA74153@www.zefox.net> <3C56C526-24E4-45D4-B202-562BD7CB22C2@dsl-only.net> <80B1CCCF-A151-40B8-87D5-CADD513CFAAD@dsl-only.net> <20170512014441.GA77264@www.zefox.net> <85B88765-A708-414B-A465-14A044196D3D@dsl-only.net> <20170512193131.GA79348@www.zefox.net> To: bob prohaska X-Mailer: Apple Mail (2.3273) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 May 2017 21:36:57 -0000 On 2017-May-12, at 12:31 PM, bob prohaska wrote: > On Thu, May 11, 2017 at 08:14:14PM -0700, Mark Millard wrote: >> Having -mcpu=3Dcortex-a7 in ASFLAGS would contribute to >> both of the examples. >>=20 >=20 > Restarting the make with > root@www:/usr/ports/www/firefox # make CFLAGS=3D-mcpu=3Dcortex-a7 = ASFLAGS=3D-mcpu=3Dcortex-a7 -DBATCH > & make.log & Again the commands might be handy, although in this case the source code being assembled looks more interesting. > made considerably more progress, but compilation still stopped with = errors > of the form > = /usr/ports/www/firefox/work/firefox-53.0.2/media/openmax_dl/dl/sp/src/armS= P_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S:129:9: error: unknown = directive Looking on the web the line 129 appears to be: .macro FFTSTAGE scaled, inverse, name It looks like /usr/bin/cc 's processing of .S assembler notation does not support .macro (or the later .endm I suppose). This may mean that AS needs to be replaced so that $(AS) picks a tool that has the support of the syntax. Or may be cc needs use of -B to pick up some specific toolchain's utilities that handle the .macro and its use. > = /usr/ports/www/firefox/work/firefox-53.0.2/media/openmax_dl/dl/sp/src/armS= P_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S:138:23: error: = unexpected token in operand This one looks to be for a line that looks like: VMOV half, 0.5 where the earlier line 121 had: #define half D13.F32 The normal form of this instruction might be something like: VMOV.F32 D13, #0.5 that encodes the element type/size in the instruction, instead of in the operand. I'm not sure. Also the immediate value might need a # prefix. But such claims may be tied to the parser in the specific assembler-processing that ends up involved. I do not know how standardized the assembler notation(s) are for the context. > = /usr/ports/www/firefox/work/firefox-53.0.2/media/openmax_dl/dl/sp/src/armS= P_FFTInv_CCSToR_F32_preTwiddleRadix2_unsafe_s.S:152:14: error: invalid = operand for instruction This one looks to be for a line looking like: VLD1 dX0,[pSrc],step where prior lines had: #define pSrc r0 . . . #define step r8 . . . #define dX0 D0.F32 The normal form of this instruction might be something like: VLD1.32 D0,[r0],r8 that encodes the element type/size in the instruction (with the interleave pattern: 1) instead of in the operand. I'm not sure. But such claims may be tied to the parser in the specific assembler-processing that ends up involved. I do not know how standardized the assembler notation(s) are for the context. > Make clean has been run and compilation started anew, using the same = make > command line, in the hope the mistake was one of consistency. My guess from the above is that the problem will repeat in this rebuild. =3D=3D=3D Mark Millard markmi at dsl-only.net