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
Mark Millard
marklmi at yahoo.com
Fri Nov 16 20:34:25 UTC 2018
[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 <marklmi at yahoo.com> wrote:
> Jan Beich jbeich at FreeBSD.org wrote on
> Fri Nov 16 02:15:57 UTC 2018 :
>
>> Mark Millard via freebsd-x11 <freebsd-x11 at freebsd.org> writes:
>>
>>> [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(?).]
>>
>> x11/pixman builds fine on armv7 even with -O. Tested both Clang/LLD 6.0
>> and 7.0 after forcing MACHINE_CPUARCH=arm on command line.
>
> 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:
>
> # uname -apKU
> FreeBSD OPiP2E 13.0-CURRENT FreeBSD 13.0-CURRENT #5 r340287M: Sat Nov 10 22:40:25 PST 2018 markmi at FBSDFSSD:/usr/obj/armv7_clang/arm.armv7/usr/src/arm.armv7/sys/GENERIC-NODBG arm armv7 1300003 1300003
>
> and is tied to my jump from before openssl was updated( -r339076 ) to
> after.
>
> It was using system clang and lld, not devel/llvm* .
>
> 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/. . . ).
>
> 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":
>
> pixman-arm-simd-asm-scaled.o
> pixman-arm-neon-asm.o
> pixman-arm-neon-asm-bilinear.o
>
> --- libpixman-1.la --- (for where the use of the .o's was attempted via a library)
>
> ? 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/. . . ).
>
> It might be possible that my -mcpu use mixed with -O is part of
> what is required to have the problem. (Only difference?)
>
> 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.
>
>
> 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.)
>
> --- pixman-arm-simd-asm-scaled.lo ---
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> --- pixman-arm-simd-asm-scaled.lo ---
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> --- 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
> 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" )
>
> --- pixman-arm-neon-asm.lo ---
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> --- pixman-arm-neon-asm.lo ---
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> --- libpixman-arm-neon.la ---
> /bin/sh ../libtool --tag=CC --mode=link cc -O -pipe -mcpu=cortex-a7 -g -fno-strict-aliasing -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -fvisibility=hidden -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
> 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" )
>
>
> --- pixman-arm-neon-asm-bilinear.lo ---
> . . .
>
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> libtool: compile: cc -DHAVE_CONFIG_H -I. -I.. -mcpu=cortex-a7 -O -pipe -mcpu=cortex-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
>
> --- libpixman-arm-neon.la ---
> /bin/sh ../libtool --tag=CC --mode=link cc -O -pipe -mcpu=cortex-a7 -g -fno-strict-aliasing -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -fvisibility=hidden -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
> 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" )
>
>
> --- libpixman-1.la ---
> /bin/sh ../libtool --tag=CC --mode=link cc -O -pipe -mcpu=cortex-a7 -g -fno-strict-aliasing -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -fvisibility=hid
> 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
> 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=cortex-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-asm-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-asm.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-asm-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-asm.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-simd-asm-scaled.o | less
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-simd-asm-scaled.o: file format elf32-littlearm
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-simd-asm-scaled.o
architecture: armv4, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000
private flags = 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
000001b8 R_ARM_V4BX *ABS*
00000374 R_ARM_V4BX *ABS*
As an example of the assembler for around that 0x4f0 R_ARM_V4BX:
000001a8 <pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6+0x1a8> tst r0, #1, 0
000001ac <pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6+0x1ac> ldrhne r4, [r2, r4]
000001b0 <pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6+0x1b0> strhne r4, [r1]
000001b4 <pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6+0x1b4> pop {r4, r5, r6, r7, r8, sl}
000001b8 <pixman_scaled_nearest_scanline_0565_0565_SRC_asm_armv6+0x1b8> bx lr
000001bc <pixman_scaled_nearest_scanline_8888_8888_SRC_asm_armv6> 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-neon-asm-bilinear.o | less
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-neon-asm-bilinear.o: file format elf32-littlearm
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-neon-asm-bilinear.o
architecture: armv4, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000
private flags = 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
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 <pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon+0x4e0> vuzp.8 d0, d1
000004e4 <pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon+0x4e4> vuzp.8 d0, d1
000004e8 <pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon+0x4e8> vst1.32 {d0[0]}, [r0 :32]!
000004ec <pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon+0x4ec> pop {r4, r5, r6, r7, r8, r9, sl, ip}
000004f0 <pixman_scaled_bilinear_scanline_8888_8_8888_SRC_asm_neon+0x4f0> bx lr
000004f4 <pixman_scaled_bilinear_scanline_8888_8_0565_SRC_asm_neon> mov ip, sp
# objdump -x /wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-neon-asm.o | less
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-neon-asm.o: file format elf32-littlearm
/wrkdirs/usr/ports/x11/pixman/work/pixman-0.34.0/pixman/.libs/pixman-arm-neon-asm.o
architecture: armv4, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x00000000
private flags = 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
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*
From this one I show the end of a routine that does not get the
R_ARM_V4BX *ABS* relocation record:
000004e8 <pixman_composite_over_8888_0565_asm_neon+0x4e8> vst1.16 {d28[1]}, [r2]!
000004ec <pixman_composite_over_8888_0565_asm_neon+0x4ec> mov r0, r7
000004f0 <pixman_composite_over_8888_0565_asm_neon+0x4f0> add r2, r2, r3, lsl #1
000004f4 <pixman_composite_over_8888_0565_asm_neon+0x4f4> add r4, r4, r5, lsl #2
000004f8 <pixman_composite_over_8888_0565_asm_neon+0x4f8> sub r2, r2, r0, lsl #1
000004fc <pixman_composite_over_8888_0565_asm_neon+0x4fc> sub r4, r4, r0, lsl #2
00000500 <pixman_composite_over_8888_0565_asm_neon+0x500> subs r1, r1, #1, 0
00000504 <pixman_composite_over_8888_0565_asm_neon+0x504> mov r6, r2
00000508 <pixman_composite_over_8888_0565_asm_neon+0x508> bge 000003ac <pixman_composite_over_8888_0565_asm_neon+0x3ac>
0000050c <pixman_composite_over_8888_0565_asm_neon+0x50c> pop {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
00000510 <pixman_composite_over_n_0565_asm_neon> push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
No "bx lr" involved.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-ports
mailing list