From owner-freebsd-ports@freebsd.org Fri Nov 16 20:34:25 2018 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6B8151103E3F for ; Fri, 16 Nov 2018 20:34:25 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic317-20.consmr.mail.gq1.yahoo.com (sonic317-20.consmr.mail.gq1.yahoo.com [98.137.66.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 761328E211 for ; Fri, 16 Nov 2018 20:34:24 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: Q9e59YEVM1nuPrgWIQ_bSJCwLz0tNkwECM6jqyco0vx0_HvBuAcmHnQ0ZDrEALT hZf6uvBaxUCK0bmCT_.DzI3W65UZrIJ8.arODu2lz_oKgpNtdQu2lZWuQ_jwk2p0am_uvJpGFEll ka6kazTzdaD6g8aZk.UL8ytuEeKWOktjgz.G8izpP8Q4dOocE49N7mQm_45GHfLXlrkRvmCxQRay lOrspsiXwN_BLCpubOrPbCLToIw1nJTH9RQCAkFHrMgIl2AIU0ikm.2GxJSs3A01ONyeEPFbGmDj puVm85E55rWc5xhMOUvNFGha6x8hPOobJmV29WHjdexDBIx.aUuCteNBH8BFSSvH3K2TCW6C3XUw CmWmgwi3oXHJcZ_OK18raXVcx3IcnLeo2KLZPTWKnQJc5ifZycNGLCKfTwo2jBbhM2zzamK2oQDU 5eot2HqdjkYvtBwbvxKixPYFYoxX0KLYz.Aq_mxG7hXabtJwRcBn0yc_QmKyPQI6eShLOW_uYWSU DBHH3TA4MDmN99Xo3IiXmZl4nzWr.9dw_aGrXrA9kSFln21dB.CgtNQP_ADERe9Q5VJNmZ_LFvjC piIdMrPVCqHB8z.gqvcmhMzygmRtYVQ8ZoFzFtEdXpU86vPugeLB_dlRVG79H3e6K5QLRrJ6fpXz yFBDZFiup13ohasU3PbOf7TUEJRoB9pYEkTgukLTsazm3hTEetYAltpcxGzheT1s0fOe1xxJaoKK aX125Ck4R0KJHXb5tLE_IQq.fJvYFdsrxytditwbcCgE_omX2v0PuMd3ZH8yt7r6_.wzRugmv_aW gSIsZOCtRydsgmFs8FR0jH4VBzSJ5Pdb3YO4ufz6sOsUoGKpimUURlqYtC5Yor2ZZL3LIv4OWHkO pLvC4kA5zy5DjQec.jbtS29H4Ph07O7KKNWiIIr4_7MG4cdvBlv_MYBvDXyFzXNjAQ9wGxEiB66V kJmr4TTWPsR26TNjza980e1e6FP3FsbwEat5GYTqbEVbH3B_LoxmAt_7U11MhsZv0PBdhrdop20Q zJaK.IxCGDSHbfpsshC5Z3yih3CG6HFmXzFPGOgS4rh1aM4_JCX4mZQ-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic317.consmr.mail.gq1.yahoo.com with HTTP; Fri, 16 Nov 2018 20:34:17 +0000 Received: from c-76-115-7-162.hsd1.or.comcast.net (EHLO [192.168.1.25]) ([76.115.7.162]) by smtp402.mail.gq1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 6d28392bb77878108c962d42ce7cda75; Fri, 16 Nov 2018 20:34:16 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.1 \(3445.101.1\)) Subject: Re: ports head -r487783: on armv7 x11/pixman fails to build: /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local symbol in readonly segment; recompile object files with -fPIC Date: Fri, 16 Nov 2018 12:34:16 -0800 References: To: Jan Beich , ports-list freebsd In-Reply-To: Message-Id: <5D2BA74B-3714-47C8-A3F0-B4C89F3D88B1@yahoo.com> X-Mailer: Apple Mail (2.3445.101.1) X-Rspamd-Queue-Id: 761328E211 X-Spamd-Result: default: False [-2.43 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[yahoo.com]; NEURAL_HAM_MEDIUM(-0.72)[-0.716,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MV_CASE(0.50)[]; MIME_GOOD(-0.10)[text/plain]; FREEMAIL_FROM(0.00)[yahoo.com]; NEURAL_HAM_LONG(-1.00)[-0.997,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[yahoo.com:+]; MX_GOOD(-0.01)[cached: mta6.am0.yahoodns.net]; RCVD_IN_DNSWL_NONE(0.00)[146.66.137.98.list.dnswl.org : 127.0.5.0]; NEURAL_HAM_SHORT(-0.46)[-0.461,0]; RCPT_COUNT_TWO(0.00)[2]; IP_SCORE(0.25)[ipnet: 98.137.64.0/21(0.75), asn: 36647(0.60), country: US(-0.10)]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2018 20:34:25 -0000 [I add some objdump output from what was in the .tar archive for the failure in the poudriere build (the 3 specific .o's). Also I show tool version information.] On 2018-Nov-16, at 11:39, Mark Millard wrote: > Jan Beich jbeich at FreeBSD.org wrote on > Fri Nov 16 02:15:57 UTC 2018 : >=20 >> Mark Millard via freebsd-x11 writes: >>=20 >>> [Added: The original cross-build via poudriere-devel and = qemu-user-static >>> did not get this problem. I give details later. Sumamry: Looks like = -O2 >>> was used for the cross build and -O was used for armv7 native. The >>> difference is likely(?) from my materials but not supporting both = ways of >>> building is likely a problem with the port(?).] >>=20 >> x11/pixman builds fine on armv7 even with -O. Tested both Clang/LLD = 6.0 >> and 7.0 after forcing MACHINE_CPUARCH=3Darm on command line. >=20 > Interesting. My context was a poudriere build that was rebuilding all > my normal ports for the armv7 context (414 total). (poudriere is still > running, still having 12 to go, including llvm60, llvm70, and gcc8.) > This was/is under: >=20 > # uname -apKU > FreeBSD OPiP2E 13.0-CURRENT FreeBSD 13.0-CURRENT #5 r340287M: Sat Nov = 10 22:40:25 PST 2018 = markmi@FBSDFSSD:/usr/obj/armv7_clang/arm.armv7/usr/src/arm.armv7/sys/GENER= IC-NODBG arm armv7 1300003 1300003 >=20 > and is tied to my jump from before openssl was updated( -r339076 ) to > after. >=20 > It was using system clang and lld, not devel/llvm* . >=20 > The only other thing to have failed so far is multimedia/libpvx but it > failed built both ways ( native and cross-build with /nxb-bin/. . . ). >=20 > Do you have a log that would show the commands that were used to = produce > the things that were listed in my original report for the "R_ARM_V4BX > against local in readonly segment": >=20 > pixman-arm-simd-asm-scaled.o > pixman-arm-neon-asm.o > pixman-arm-neon-asm-bilinear.o >=20 > --- libpixman-1.la --- (for where the use of the .o's was attempted = via a library) >=20 > ? If yes we might be able to compare for differences to explain the > variation. I do have the logs from the poudriere build attempts > in both contexts ( native and cross-build with /nxb-bin/. . . ). >=20 > It might be possible that my -mcpu use mixed with -O is part of > what is required to have the problem. (Only difference?) >=20 > It looks to be a long time (days) before the armv7 poudriere run > will complete. So testing alternatives in that environment is > delayed. For now comparing commands in log files is all I've got > to work with initially (if we can). Next would be to look at the > .S files. >=20 >=20 > My failing-context's commands: > (The 3 sources are .S files. The -o .libs/*.o commands do list -fPIC = and -DPIC > but I'm not sure how those would apply to .S files.) >=20 > --- pixman-arm-simd-asm-scaled.lo --- > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-simd-asm-scaled.lo -MD -MP -MF = .deps/pixman-arm-simd-asm-scaled.Tpo -c pixman-arm-simd-asm-scaled.S = -fPIC -DPIC -o .libs/pixman-arm-simd-asm-scaled.o >=20 > --- pixman-arm-simd-asm-scaled.lo --- > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-simd-asm-scaled.lo -MD -MP -MF = .deps/pixman-arm-simd-asm-scaled.Tpo -c pixman-arm-simd-asm-scaled.S -o = pixman-arm-simd-asm-scaled.o >/dev/null 2>&1 >=20 > --- libpixman-arm-simd.la --- > libtool: link: ar cru .libs/libpixman-arm-simd.a = .libs/pixman-arm-simd.o .libs/pixman-arm-simd-asm.o = .libs/pixman-arm-simd-asm-scaled.o=20 > libtool: link: ranlib .libs/libpixman-arm-simd.a > libtool: link: ( cd ".libs" && rm -f "libpixman-arm-simd.la" && ln -s = "../libpixman-arm-simd.la" "libpixman-arm-simd.la" ) >=20 > --- pixman-arm-neon-asm.lo --- > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-neon-asm.lo -MD -MP -MF .deps/pixman-arm-neon-asm.Tpo -c = pixman-arm-neon-asm.S -fPIC -DPIC -o .libs/pixman-arm-neon-asm.o >=20 > --- pixman-arm-neon-asm.lo --- > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-neon-asm.lo -MD -MP -MF .deps/pixman-arm-neon-asm.Tpo -c = pixman-arm-neon-asm.S -o pixman-arm-neon-asm.o >/dev/null 2>&1 >=20 > --- libpixman-arm-neon.la --- > /bin/sh ../libtool --tag=3DCC --mode=3Dlink cc -O -pipe = -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -Wall = -Wdeclaration-after-statement -Wno-unused-local-typedefs = -fno-strict-aliasing -fvisibility=3Dhidden -o libpixman-arm-neon.la = pixman-arm-neon.lo pixman-arm-neon-asm.lo = pixman-arm-neon-asm-bilinear.lo -lm > libtool: link: ar cru .libs/libpixman-arm-neon.a = .libs/pixman-arm-neon.o .libs/pixman-arm-neon-asm.o = .libs/pixman-arm-neon-asm-bilinear.o=20 > libtool: link: ranlib .libs/libpixman-arm-neon.a > libtool: link: ( cd ".libs" && rm -f "libpixman-arm-neon.la" && ln -s = "../libpixman-arm-neon.la" "libpixman-arm-neon.la" ) >=20 >=20 > --- pixman-arm-neon-asm-bilinear.lo --- > . . . >=20 > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-neon-asm-bilinear.lo -MD -MP -MF = .deps/pixman-arm-neon-asm-bilinear.Tpo -c pixman-arm-neon-asm-bilinear.S = -fPIC -DPIC -o .libs/pixman-arm-neon-asm-bilinear.o >=20 > libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=3Dcortex-a7 -O = -pipe -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -no-integrated-as -MT = pixman-arm-neon-asm-bilinear.lo -MD -MP -MF = .deps/pixman-arm-neon-asm-bilinear.Tpo -c pixman-arm-neon-asm-bilinear.S = -o pixman-arm-neon-asm-bilinear.o >/dev/null 2>&1 >=20 > --- libpixman-arm-neon.la --- > /bin/sh ../libtool --tag=3DCC --mode=3Dlink cc -O -pipe = -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -Wall = -Wdeclaration-after-statement -Wno-unused-local-typedefs = -fno-strict-aliasing -fvisibility=3Dhidden -o libpixman-arm-neon.la = pixman-arm-neon.lo pixman-arm-neon-asm.lo = pixman-arm-neon-asm-bilinear.lo -lm > libtool: link: ar cru .libs/libpixman-arm-neon.a = .libs/pixman-arm-neon.o .libs/pixman-arm-neon-asm.o = .libs/pixman-arm-neon-asm-bilinear.o=20 > libtool: link: ranlib .libs/libpixman-arm-neon.a > libtool: link: ( cd ".libs" && rm -f "libpixman-arm-neon.la" && ln -s = "../libpixman-arm-neon.la" "libpixman-arm-neon.la" ) >=20 >=20 > --- libpixman-1.la --- > /bin/sh ../libtool --tag=3DCC --mode=3Dlink cc -O -pipe = -mcpu=3Dcortex-a7 -g -fno-strict-aliasing -Wall = -Wdeclaration-after-statement -Wno-unused-local-typedefs = -fno-strict-aliasing -fvisibility=3Dhid > den -version-info 34:0:34 -no-undefined -pthread -o = libpixman-1.la -rpath /usr/local/lib pixman.lo pixman-access.lo = pixman-access-accessors.lo pixman-bits-image.lo pixman-combine32.lo = pixm > an-combine-float.lo pixman-conical-gradient.lo pixman-filter.lo = pixman-x86.lo pixman-mips.lo pixman-arm.lo pixman-ppc.lo pixman-edge.lo = pixman-edge-accessors.lo pixman-fast-path.lo pixman-glyph.lo=20 > pixman-general.lo pixman-gradient-walker.lo pixman-image.lo = pixman-implementation.lo pixman-linear-gradient.lo pixman-matrix.lo = pixman-noop.lo pixman-radial-gradient.lo pixman-region16.lo pixman-r > egion32.lo pixman-solid-fill.lo pixman-timer.lo pixman-trap.lo = pixman-utils.lo -lm -lm libpixman-arm-simd.la = libpixman-arm-neon.la -lm > libtool: link: cc -shared -fPIC -DPIC .libs/pixman.o = .libs/pixman-access.o .libs/pixman-access-accessors.o = .libs/pixman-bits-image.o .libs/pixman-combine32.o = .libs/pixman-combine-float.o .libs/pixma > n-conical-gradient.o .libs/pixman-filter.o .libs/pixman-x86.o = .libs/pixman-mips.o .libs/pixman-arm.o .libs/pixman-ppc.o = .libs/pixman-edge.o .libs/pixman-edge-accessors.o = .libs/pixman-fast-path.o .libs > /pixman-glyph.o .libs/pixman-general.o .libs/pixman-gradient-walker.o = .libs/pixman-image.o .libs/pixman-implementation.o = .libs/pixman-linear-gradient.o .libs/pixman-matrix.o .libs/pixman-noop.o = .libs/ > pixman-radial-gradient.o .libs/pixman-region16.o = .libs/pixman-region32.o .libs/pixman-solid-fill.o .libs/pixman-timer.o = .libs/pixman-trap.o .libs/pixman-utils.o -Wl,--whole-archive = ./.libs/libpixman- > arm-simd.a ./.libs/libpixman-arm-neon.a -Wl,--no-whole-archive -lm = -O -mcpu=3Dcortex-a7 -g -pthread -pthread -Wl,-soname = -Wl,libpixman-1.so.0 -o .libs/libpixman-1.so.0.34.0 First some identification of tool versions . . . # cc -v FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on = LLVM 6.0.1) Target: armv7-unknown-freebsd13.0-gnueabihf Thread model: posix InstalledDir: /usr/bin # ld -v LLD 6.0.1 (FreeBSD 335540-1300000) (compatible with GNU linkers) A context difference could be armv6 vs. armv7? WITH_LLD_IS_LD Set to use LLVM's LLD as the system linker, instead of GNU binutils ld. This is a default setting on amd64/amd64, arm/armv7 and arm64/aarch64. My context is the arm/armv7 context, using system clang/llvm facilities. Then pixman specifics . . . The only *arm*.S files are (from failing context's tar archive): # ls -lTd = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/*arm*.S -rw-r--r-- 1 root wheel 45186 Sep 26 06:45:08 2015 = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/pixman-arm-neon-as= m-bilinear.S -rw-r--r-- 1 root wheel 128849 Sep 26 06:45:08 2015 = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/pixman-arm-neon-as= m.S -rw-r--r-- 1 root wheel 4653 Sep 26 06:45:08 2015 = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/pixman-arm-simd-as= m-scaled.S -rw-r--r-- 1 root wheel 43259 Dec 27 12:37:37 2015 = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/pixman-arm-simd-as= m.S Expanding the tar file that the failure produced and looking . . . (What, if anything, is different for your context?) # objdump -x = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-s= imd-asm-scaled.o | less = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-s= imd-asm-scaled.o: file format elf32-littlearm = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-s= imd-asm-scaled.o architecture: armv4, flags 0x00000011: HAS_RELOC, HAS_SYMS start address 0x00000000 private flags =3D 5000000: [Version5 EABI] Sections: Idx Name Size VMA LMA File off Algn 0 .text 00000378 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .data 00000000 00000000 00000000 000003ac 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00000000 00000000 000003ac 2**0 ALLOC 3 .ARM.attributes 0000001b 00000000 00000000 000003ac 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 00000000 .bss 00000000 l d .ARM.attributes 00000000 .ARM.attributes 00000000 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6 000001bc g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_8888_8888_SRC_asm_armv6 RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE=20 000001b8 R_ARM_V4BX *ABS* 00000374 R_ARM_V4BX *ABS* As an example of the assembler for around that 0x4f0 R_ARM_V4BX: 000001a8 = tst r0, #1, 0 000001ac = ldrhne r4, [r2, r4] 000001b0 = strhne r4, [r1] 000001b4 = pop {r4, r5, r6, r7, r8, sl} 000001b8 = bx lr 000001bc ldr = ip, [sp] The R_ARM_V4BX *ABS* seems to be for replacing the "bx lr" for arm vintages that did not have bx. Otherwise supposedly ignored. # objdump -x = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm-bilinear.o | less = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm-bilinear.o: file format elf32-littlearm = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm-bilinear.o architecture: armv4, flags 0x00000011: HAS_RELOC, HAS_SYMS start address 0x00000000 private flags =3D 5000000: [Version5 EABI] Sections: Idx Name Size VMA LMA File off Algn 0 .text 00002bfc 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .data 00000000 00000000 00000000 00002c30 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00000000 00000000 00002c30 2**0 ALLOC 3 .ARM.attributes 0000001a 00000000 00000000 00002c30 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 00000000 .bss 00000000 l *ABS* 00000000 FLAG_DST_WRITEONLY 00000001 l *ABS* 00000000 FLAG_DST_READWRITE 00000002 l *ABS* 00000000 FLAG_DEINTERLEAVE_32BPP 00000028 l *ABS* 00000000 ARGS_STACK_OFFSET 00000000 l *ABS* 00000000 PREFETCH_TYPE_NONE 00000001 l *ABS* 00000000 PREFETCH_TYPE_SIMPLE 00000002 l *ABS* 00000000 PREFETCH_TYPE_ADVANCED 00000001 l *ABS* 00000000 BILINEAR_FLAG_USE_MASK 00000002 l *ABS* 00000000 BILINEAR_FLAG_USE_ALL_NEON_REGS 0000001c l *ABS* 00000000 prefetch_offset 00000000 l d .ARM.attributes 00000000 .ARM.attributes 00000000 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon 000004f4 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8_0565_SRC_asm_neon 00000ac0 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_0565_8_x888_SRC_asm_neon 000010e4 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_0565_8_0565_SRC_asm_neon 000017e0 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8888_OVER_asm_neon 00001cfc g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8_8888_OVER_asm_neon 000022ec g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8888_ADD_asm_neon 000026c0 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8_8888_ADD_asm_neon RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE=20 000004f0 R_ARM_V4BX *ABS* 00000abc R_ARM_V4BX *ABS* 000010e0 R_ARM_V4BX *ABS* 000017dc R_ARM_V4BX *ABS* 00001cf8 R_ARM_V4BX *ABS* 000022e8 R_ARM_V4BX *ABS* 000026bc R_ARM_V4BX *ABS* 00002bf8 R_ARM_V4BX *ABS* As another example of the assembler for around that 0x4f0 R_ARM_V4BX: 000004e0 = vuzp.8 = d0, d1 000004e4 = vuzp.8 = d0, d1 000004e8 = vst1.32 = {d0[0]}, [r0 :32]! 000004ec = pop = {r4, r5, r6, r7, r8, r9, sl, ip} 000004f0 = bx = lr 000004f4 mov = ip, sp # objdump -x = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm.o | less = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm.o: file format elf32-littlearm = /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-n= eon-asm.o architecture: armv4, flags 0x00000011: HAS_RELOC, HAS_SYMS start address 0x00000000 private flags =3D 5000000: [Version5 EABI] Sections: Idx Name Size VMA LMA File off Algn 0 .text 0001180c 00000000 00000000 00000034 2**2 CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE 1 .data 00000000 00000000 00000000 00011840 2**0 CONTENTS, ALLOC, LOAD, DATA 2 .bss 00000000 00000000 00000000 00011840 2**0 ALLOC 3 .ARM.attributes 0000001a 00000000 00000000 00011840 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d .text 00000000 .text 00000000 l d .data 00000000 .data 00000000 l d .bss 00000000 .bss 00000000 l *ABS* 00000000 FLAG_DST_WRITEONLY 00000001 l *ABS* 00000000 FLAG_DST_READWRITE 00000002 l *ABS* 00000000 FLAG_DEINTERLEAVE_32BPP 00000028 l *ABS* 00000000 ARGS_STACK_OFFSET 00000000 l *ABS* 00000000 PREFETCH_TYPE_NONE 00000001 l *ABS* 00000000 PREFETCH_TYPE_SIMPLE 00000002 l *ABS* 00000000 PREFETCH_TYPE_ADVANCED 00000001 l *ABS* 00000000 RESPECT_STRICT_ALIGNMENT 00000002 l *ABS* 00000000 PREFETCH_TYPE_DEFAULT 00000040 l *ABS* 00000000 PREFETCH_DISTANCE_SIMPLE 00000000 l *ABS* 00000000 PREFETCH_TYPE_CURRENT 00000010 l *ABS* 00000000 src_bpp 00000008 l *ABS* 00000000 mask_bpp 00000010 l *ABS* 00000000 dst_w_bpp 00000008 l *ABS* 00000000 pixblock_size 0000001c l *ABS* 00000000 dst_w_basereg 0000000a l *ABS* 00000000 dst_r_basereg 00000008 l *ABS* 00000000 src_basereg 0000000f l *ABS* 00000000 mask_basereg 00000000 l *ABS* 00000000 regs_shortage ffffffff l *ABS* 00000000 mask_bpp_shift 00000000 l *ABS* 00000000 src_bpp_shift 00000002 l *ABS* 00000000 dst_bpp_shift 00000010 l *ABS* 00000000 dst_r_bpp 00000000 l *ABS* 00000000 DEINTERLEAVE_32BPP_ENABLED 00000000 l *ABS* 00000000 BILINEAR_FLAG_UNROLL_4 00000001 l *ABS* 00000000 BILINEAR_FLAG_UNROLL_8 00000002 l *ABS* 00000000 BILINEAR_FLAG_USE_ALL_NEON_REGS 00000001 l *ABS* 00000000 = have_bilinear_interpolate_four_pixels_8888_8888 00000001 l *ABS* 00000000 = have_bilinear_interpolate_eight_pixels_8888_0565 00000000 l d .ARM.attributes 00000000 .ARM.attributes 00000000 g F .text 00000000 .hidden = pixman_composite_over_8888_0565_asm_neon 00000510 g F .text 00000000 .hidden = pixman_composite_over_n_0565_asm_neon 0000098c g F .text 00000000 .hidden = pixman_composite_src_8888_0565_asm_neon 00000c9c g F .text 00000000 .hidden = pixman_composite_src_0565_8888_asm_neon 00000fcc g F .text 00000000 .hidden = pixman_composite_add_8_8_asm_neon 000013dc g F .text 00000000 .hidden = pixman_composite_add_8888_8888_asm_neon 0000169c g F .text 00000000 .hidden = pixman_composite_scanline_add_asm_neon 00001818 g F .text 00000000 .hidden = pixman_composite_scanline_out_reverse_asm_neon 00001b00 g F .text 00000000 .hidden = pixman_composite_over_8888_8888_asm_neon 00001f88 g F .text 00000000 .hidden = pixman_composite_scanline_over_asm_neon 00002298 g F .text 00000000 .hidden = pixman_composite_over_n_8888_asm_neon 000026a0 g F .text 00000000 .hidden = pixman_composite_over_reverse_n_8888_asm_neon 00002aa8 g F .text 00000000 .hidden = pixman_composite_over_8888_8_0565_asm_neon 000031a0 g F .text 00000000 .hidden = pixman_composite_over_n_8_0565_asm_neon 000037f4 g F .text 00000000 .hidden = pixman_composite_over_8888_n_0565_asm_neon 00003e3c g F .text 00000000 .hidden = pixman_composite_src_0565_0565_asm_neon 000040f8 g F .text 00000000 .hidden = pixman_composite_src_n_8_asm_neon 00004318 g F .text 00000000 .hidden = pixman_composite_src_n_0565_asm_neon 000044cc g F .text 00000000 .hidden = pixman_composite_src_n_8888_asm_neon 0000462c g F .text 00000000 .hidden = pixman_composite_src_8888_8888_asm_neon 00004878 g F .text 00000000 .hidden = pixman_composite_src_x888_8888_asm_neon 00004afc g F .text 00000000 .hidden = pixman_composite_src_n_8_8888_asm_neon 00004ee0 g F .text 00000000 .hidden = pixman_composite_src_n_8_8_asm_neon 00005368 g F .text 00000000 .hidden = pixman_composite_over_n_8_8888_asm_neon 00005934 g F .text 00000000 .hidden = pixman_composite_over_n_8_8_asm_neon 00005fcc g F .text 00000000 .hidden = pixman_composite_over_n_8888_8888_ca_asm_neon 000066a0 g F .text 00000000 .hidden = pixman_composite_over_n_8888_0565_ca_asm_neon 00006d9c g F .text 00000000 .hidden = pixman_composite_in_n_8_asm_neon 000071f8 g F .text 00000000 .hidden = pixman_composite_add_n_8_8_asm_neon 00007740 g F .text 00000000 .hidden = pixman_composite_add_8_8_8_asm_neon 00007d44 g F .text 00000000 .hidden = pixman_composite_add_8888_8888_8888_asm_neon 00008270 g F .text 00000000 .hidden = pixman_composite_scanline_add_mask_asm_neon 000085c8 g F .text 00000000 .hidden = pixman_composite_add_8888_8_8888_asm_neon 00008af4 g F .text 00000000 .hidden = pixman_composite_add_n_8_8888_asm_neon 00008f7c g F .text 00000000 .hidden = pixman_composite_add_8888_n_8888_asm_neon 000093f8 g F .text 00000000 .hidden = pixman_composite_scanline_out_reverse_mask_asm_neon 00009838 g F .text 00000000 .hidden = pixman_composite_over_8888_n_8888_asm_neon 00009df8 g F .text 00000000 .hidden = pixman_composite_over_8888_8888_8888_asm_neon 0000a468 g F .text 00000000 .hidden = pixman_composite_scanline_over_mask_asm_neon 0000a8d0 g F .text 00000000 .hidden = pixman_composite_over_8888_8_8888_asm_neon 0000af40 g F .text 00000000 .hidden = pixman_composite_src_0888_0888_asm_neon 0000b0c8 g F .text 00000000 .hidden = pixman_composite_src_0888_8888_rev_asm_neon 0000b2e8 g F .text 00000000 .hidden = pixman_composite_src_0888_0565_rev_asm_neon 0000b550 g F .text 00000000 .hidden = pixman_composite_src_pixbuf_8888_asm_neon 0000b8ec g F .text 00000000 .hidden = pixman_composite_src_rpixbuf_8888_asm_neon 0000bc88 g F .text 00000000 .hidden = pixman_composite_over_0565_8_0565_asm_neon 0000c3a4 g F .text 00000000 .hidden = pixman_composite_over_0565_n_0565_asm_neon 0000ca10 g F .text 00000000 .hidden = pixman_composite_add_0565_8_0565_asm_neon 0000d03c g F .text 00000000 .hidden = pixman_composite_out_reverse_8_0565_asm_neon 0000d528 g F .text 00000000 .hidden = pixman_composite_out_reverse_8_8888_asm_neon 0000d980 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_8888_8888_OVER_asm_neon 0000e008 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_8888_0565_OVER_asm_neon 0000e6f8 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_8888_0565_SRC_asm_neon 0000ec54 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_0565_8888_SRC_asm_neon 0000f19c g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_8888_8_0565_OVER_asm_neon 0000f9e8 g F .text 00000000 .hidden = pixman_scaled_nearest_scanline_0565_8_0565_OVER_asm_neon 00010220 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_8888_SRC_asm_neon 000105a4 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_8888_0565_SRC_asm_neon 00010dbc g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_0565_x888_SRC_asm_neon 00011278 g F .text 00000000 .hidden = pixman_scaled_bilinear_scanline_0565_0565_SRC_asm_neon RELOCATION RECORDS FOR [.text]: OFFSET TYPE VALUE=20 000017ac R_ARM_V4BX *ABS* 00001814 R_ARM_V4BX *ABS* 00001a38 R_ARM_V4BX *ABS* 00001afc R_ARM_V4BX *ABS* 000021c8 R_ARM_V4BX *ABS* 00002294 R_ARM_V4BX *ABS* 000084e0 R_ARM_V4BX *ABS* 000085c4 R_ARM_V4BX *ABS* 00009720 R_ARM_V4BX *ABS* 00009834 R_ARM_V4BX *ABS* 0000a7b0 R_ARM_V4BX *ABS* 0000a8cc R_ARM_V4BX *ABS* 000105a0 R_ARM_V4BX *ABS* 00010db8 R_ARM_V4BX *ABS* 00011274 R_ARM_V4BX *ABS* 00011808 R_ARM_V4BX *ABS* =46rom this one I show the end of a routine that does not get the R_ARM_V4BX *ABS* relocation record: 000004e8 vst1.16 = {d28[1]}, [r2]! 000004ec mov r0, r7 000004f0 add r2, r2, = r3, lsl #1 000004f4 add r4, r4, = r5, lsl #2 000004f8 sub r2, r2, = r0, lsl #1 000004fc sub r4, r4, = r0, lsl #2 00000500 subs r1, r1, = #1, 0 00000504 mov r6, r2 00000508 bge 000003ac = 0000050c pop {r4, r5, = r6, r7, r8, r9, sl, fp, ip, pc} 00000510 push {r4, r5, r6, r7, = r8, r9, sl, fp, ip, lr} No "bx lr" involved. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)