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
Mark Millard writes: > Jan Beich jbeich at FreeBSD.org wrote on > Fri Nov 16 02:15:57 UTC 2018 : > >> Mark Millard via freebsd-x11 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. [...] > 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": Build logs: - clang/lld 6.0: https://ptpb.pw/5dip (via devel/llvm60) - clang/lld 7.0: https://ptpb.pw/wwi9 (via native-xtools) - -mcpu=cortex-a7: https://ptpb.pw/_zAP ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
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
Mark Millard via freebsd-x11 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. ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
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
[My wording presumed some context not presented.] On 2018-Nov-14, at 18:21, Mark Millard wrote: > On 2018-Nov-14, at 17:45, Bryan Drewery wrote: > >> I think the real problem here is that Poudriere is setting MACHINE_ARCH >> in make.conf and sys.mk loads make.conf *after* checking MACHINE_CPUARCH >> (derived from MACHINE_ARCH) to determine CFLAGS; The .if is expanding >> MACHINE_CPUARCH before make.conf is included. >> >> We probably need a make-env.conf thing like src-env.conf to allow >> modifying sys.mk earlier. > > Cool. > > > We still get the result that arm[67], and possibly some mips, > have had a lot of -O2 use based on what has historically been > done by the qemu-user-static based official-build servers. The reference to qemu-user-static was meant to be for with /nxb-bin/. . . (or some form of native tools). It is the native tools that initially have MACHINE_ARCH being amd64 by default for the example contexts. Absent that, qemu-arm-static would likely report armv6 for all arm's until the explicit assignment. (The "armv6" is a single compile-time constant in the qemu-arm-static source at this time.) So this likely would behave as on a native build: -O . > And that leads to questioning the need for -O instead of -O2 > for armv[67] and possibly some mips contexts. > > Or, going the other way: Should -O be forced and have an > exp run for, say armv7 ? An example of what would be found is > what I ran into for x11/pixman when its build used -O (native) > instead of -O2 (cross-build via qemu-user-static) and a link > command failed for -O use. (It was the failure that started my > looking for what was different from my prior cross-build that > had worked.) === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
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
On 2018-Nov-14, at 17:45, Bryan Drewery wrote: > I think the real problem here is that Poudriere is setting MACHINE_ARCH > in make.conf and sys.mk loads make.conf *after* checking MACHINE_CPUARCH > (derived from MACHINE_ARCH) to determine CFLAGS; The .if is expanding > MACHINE_CPUARCH before make.conf is included. > > We probably need a make-env.conf thing like src-env.conf to allow > modifying sys.mk earlier. Cool. We still get the result that arm[67], and possibly some mips, have had a lot of -O2 use based on what has historically been done by the qemu-user-static based official-build servers. And that leads to questioning the need for -O instead of -O2 for armv[67] and possibly some mips contexts. Or, going the other way: Should -O be forced and have an exp run for, say armv7 ? An example of what would be found is what I ran into for x11/pixman when its build used -O (native) instead of -O2 (cross-build via qemu-user-static) and a link command failed for -O use. (It was the failure that started my looking for what was different from my prior cross-build that had worked.) === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
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
[Looks like there are 2 stages involved in that 2mmjnk.txt file that I generated. Before MACHINE_ARCH is explicitly assigned and after.] On 2018-Nov-14, at 15:40, Mark Millard wrote: > [Evidence from inside poudriere bulk -j... -i ports-mgmt/pkg . > Use of native /nxb-bin/. . . leads to MACHINE_ARCH being amd64 > instead of armv7 or the like. See later supporting material.] > > On 2018-Nov-14, at 14:38, Bryan Drewery wrote: > >> On 11/14/18 2:35 PM, Mark Millard wrote: >>> [Looking at package fallout logs: the official armv6 and armv7 >>> builds are using -O2 because of MACHINE_ARCH being defined >>> because of qemu-user-static use. (mips too?) The logic in >>> share/mk/sys.mk is not causing -O . An implication >>> is that -O2 for armv6 and armv7 is probably far more tested >>> than people generally expect. The share/mk/sys.mk change >>> goes back to -r319861 2017-Jun-12 . Previously the logic >>> would have caused -O use for armv6 or armv7 in MACHINE_ARCH .] >> >> r319861 doesn't look related here. > > # more /etc/make.conf > .sinclude "/etc/make.nxb.conf" > USE_PACKAGE_DEPENDS=yes > BATCH=yes > WRKDIRPREFIX=/wrkdirs > PORTSDIR=/usr/ports > PACKAGES=/packages > DISTDIR=/distfiles > FORCE_PACKAGE=yes > PACKAGE_BUILDING=yes > PACKAGE_BUILDING_FLAVORS=yes > MACHINE=arm > MACHINE_ARCH=armv7 > ARCH=${MACHINE_ARCH} > /usr/local/etc/poudriere.d/make.conf > /usr/ports/Mk/Scripts/ports_env.sh > _CCVERSION_9d218390=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: /nxb-bin/usr/bin > _ALTCCVERSION_9d218390=none > _CXXINTERNAL_9c45a5b1=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: /nxb-bin/usr/bin "/nxb-bin/usr/bin/ld" > "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--hash-style=both" > "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" > "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm" "-lgcc" > "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" > "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o" > CC_OUTPUT_9d218390_58173849=yes > CC_OUTPUT_9d218390_9bdba57c=yes > CC_OUTPUT_9d218390_6a4fe7f5=yes > CC_OUTPUT_9d218390_6bcac02b=yes > CC_OUTPUT_9d218390_67d20829=yes > CC_OUTPUT_9d218390_bfa62e83=yes > CC_OUTPUT_9d218390_f0b4d593=yes > CC_OUTPUT_9d218390_308abb44=yes > CC_OUTPUT_9d218390_f00456e5=yes > CC_OUTPUT_9d218390_65ad290d=yes > CC_OUTPUT_9d218390_f2776b26=yes > CC_OUTPUT_9d218390_b2657cc3=yes > CC_OUTPUT_9d218390_380987f7=yes > CC_OUTPUT_9d218390_160933ec=yes > CC_OUTPUT_9d218390_fb62803b=yes > _OBJC_CCVERSION_9d218390=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: /nxb-bin/usr/bin > _OBJC_ALTCCVERSION_9d218390=none > ARCH=armv7 > OPSYS=FreeBSD > _OSRELEASE=13.0-CURRENT > OSREL=13.0 > OSVERSION=133 > PYTHONBASE=/usr/local > _SMP_CPUS=32 > CONFIGURE_MAX_CMD_LEN=262144 > HAVE_PORTS_ENV=1 > Misc Poudriere > GID=0 > UID=0 > PACKAGES=/packages > > # more /etc/src.conf > /etc/src.conf: No such file or directory > > # more Makefile > all: >echo ${MACHINE_ARCH} >echo ${MACHINE_CPUARCH} >echo ${CFLAGS} > > # make > echo armv7 > armv7 > echo arm > arm > echo -O2 -pipe > -O2 -pipe > > # grep -r "\-O2" /usr/src/share/mk/ > /usr/src/share/mk/sys.mk:CFLAGS ?= -O2 -pipe > > # grep -r "\-pipe" /usr/src/share/mk/ > /usr/src/share/mk/sys.mk:CFLAGS ?= -O -pipe > /usr/src/share/mk/sys.mk:CFLAGS ?= -O2 -pipe > > Those lines come from: > > .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips" > CFLAGS ?= -O -pipe > .else > CFLAGS ?= -O2 -pipe > .endif > > So I used: > > # make -dA 2>2mmjnk.txt 1>1mmjnk.txt > > and looked for the first -pipe in 2mmjnk.txt. (It is also > the first -O , in this case -O2 .) > > . . . > Got > 'C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v[67])?(eb)?/arm/:C/powerpc(64|spe)/powerpc/:C/riscv64(sf)?/riscv/' > from '${__TO_CPUARCH}'} > Applying[MACHINE_ARCH] :C to "amd64" > Modifier pattern: "mips(n32|64)?(el)?(hf)?" > Modifier pattern: "mips" > Result[MACHINE_ARCH] of :C is "amd64" > Applying[MACHINE_ARCH] :C to "amd64" > Modifier pattern: "arm(v[67])?(eb)?" > Modifier pattern: "arm" > Result[MACHINE_ARCH] of :C is "amd64" > Applying[MACHINE_ARCH] :C to "amd64" > Modifier pattern: "powerpc(64|spe)" > Modifier pattern: "powerpc" > Result[MACHINE_ARCH] of :C is "amd64" > Applying[MACHINE_ARCH] :C to "amd64" > Modifier pattern: "riscv64(sf)?" > Modifier pattern: "riscv" > Result[MACHINE_ARCH] of :C is "amd64" > lhs = "amd64", rhs = "arm", op = == > Got > 'C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v[67])?(eb)?/arm/:C/powe
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
[Evidence from inside poudriere bulk -j... -i ports-mgmt/pkg . Use of native /nxb-bin/. . . leads to MACHINE_ARCH being amd64 instead of armv7 or the like. See later supporting material.] On 2018-Nov-14, at 14:38, Bryan Drewery wrote: > On 11/14/18 2:35 PM, Mark Millard wrote: >> [Looking at package fallout logs: the official armv6 and armv7 >> builds are using -O2 because of MACHINE_ARCH being defined >> because of qemu-user-static use. (mips too?) The logic in >> share/mk/sys.mk is not causing -O . An implication >> is that -O2 for armv6 and armv7 is probably far more tested >> than people generally expect. The share/mk/sys.mk change >> goes back to -r319861 2017-Jun-12 . Previously the logic >> would have caused -O use for armv6 or armv7 in MACHINE_ARCH .] > > r319861 doesn't look related here. # more /etc/make.conf .sinclude "/etc/make.nxb.conf" USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles FORCE_PACKAGE=yes PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes MACHINE=arm MACHINE_ARCH=armv7 ARCH=${MACHINE_ARCH} /usr/local/etc/poudriere.d/make.conf /usr/ports/Mk/Scripts/ports_env.sh _CCVERSION_9d218390=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: /nxb-bin/usr/bin _ALTCCVERSION_9d218390=none _CXXINTERNAL_9c45a5b1=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: /nxb-bin/usr/bin "/nxb-bin/usr/bin/ld" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--hash-style=both" "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o" CC_OUTPUT_9d218390_58173849=yes CC_OUTPUT_9d218390_9bdba57c=yes CC_OUTPUT_9d218390_6a4fe7f5=yes CC_OUTPUT_9d218390_6bcac02b=yes CC_OUTPUT_9d218390_67d20829=yes CC_OUTPUT_9d218390_bfa62e83=yes CC_OUTPUT_9d218390_f0b4d593=yes CC_OUTPUT_9d218390_308abb44=yes CC_OUTPUT_9d218390_f00456e5=yes CC_OUTPUT_9d218390_65ad290d=yes CC_OUTPUT_9d218390_f2776b26=yes CC_OUTPUT_9d218390_b2657cc3=yes CC_OUTPUT_9d218390_380987f7=yes CC_OUTPUT_9d218390_160933ec=yes CC_OUTPUT_9d218390_fb62803b=yes _OBJC_CCVERSION_9d218390=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: /nxb-bin/usr/bin _OBJC_ALTCCVERSION_9d218390=none ARCH=armv7 OPSYS=FreeBSD _OSRELEASE=13.0-CURRENT OSREL=13.0 OSVERSION=133 PYTHONBASE=/usr/local _SMP_CPUS=32 CONFIGURE_MAX_CMD_LEN=262144 HAVE_PORTS_ENV=1 Misc Poudriere GID=0 UID=0 PACKAGES=/packages # more /etc/src.conf /etc/src.conf: No such file or directory # more Makefile all: echo ${MACHINE_ARCH} echo ${MACHINE_CPUARCH} echo ${CFLAGS} # make echo armv7 armv7 echo arm arm echo -O2 -pipe -O2 -pipe # grep -r "\-O2" /usr/src/share/mk/ /usr/src/share/mk/sys.mk:CFLAGS ?= -O2 -pipe # grep -r "\-pipe" /usr/src/share/mk/ /usr/src/share/mk/sys.mk:CFLAGS ?= -O -pipe /usr/src/share/mk/sys.mk:CFLAGS ?= -O2 -pipe Those lines come from: .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips" CFLAGS ?= -O -pipe .else CFLAGS ?= -O2 -pipe .endif So I used: # make -dA 2>2mmjnk.txt 1>1mmjnk.txt and looked for the first -pipe in 2mmjnk.txt. (It is also the first -O , in this case -O2 .) . . . Got 'C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v[67])?(eb)?/arm/:C/powerpc(64|spe)/powerpc/:C/riscv64(sf)?/riscv/' from '${__TO_CPUARCH}'} Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "mips(n32|64)?(el)?(hf)?" Modifier pattern: "mips" Result[MACHINE_ARCH] of :C is "amd64" Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "arm(v[67])?(eb)?" Modifier pattern: "arm" Result[MACHINE_ARCH] of :C is "amd64" Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "powerpc(64|spe)" Modifier pattern: "powerpc" Result[MACHINE_ARCH] of :C is "amd64" Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "riscv64(sf)?" Modifier pattern: "riscv" Result[MACHINE_ARCH] of :C is "amd64" lhs = "amd64", rhs = "arm", op = == Got 'C/mips(n32|64)?(el)?(hf)?/mips/:C/arm(v[67])?(eb)?/arm/:C/powerpc(64|spe)/powerpc/:C/riscv64(sf)?/riscv/' from '${__TO_CPUARCH}'} Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "mips(n32|64)?(el)?(hf)?" Modifier pattern: "mips" Result[MACHINE_ARCH] of :C is "amd64" Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "arm(v[67])?(eb)?" Modifier pattern: "arm" Result[MACHINE_ARCH] of :C is "amd64" Applying[MACHINE_ARCH] :C to "amd64" Modifier pattern: "powerpc(64|spe)" Modifier pattern: "powerpc" Result[MACHINE_ARCH] o
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
On 2018-Nov-14, at 14:38, Bryan Drewery wrote: > On 11/14/18 2:35 PM, Mark Millard wrote: >> [Looking at package fallout logs: the official armv6 and armv7 >> builds are using -O2 because of MACHINE_ARCH being defined >> because of qemu-user-static use. (mips too?) The logic in >> share/mk/sys.mk is not causing -O . An implication >> is that -O2 for armv6 and armv7 is probably far more tested >> than people generally expect. The share/mk/sys.mk change >> goes back to -r319861 2017-Jun-12 . Previously the logic >> would have caused -O use for armv6 or armv7 in MACHINE_ARCH .] > > r319861 doesn't look related here. I think that you are right. The fallout logs do show the -O2 for armv6 and armv7 use though, not the -O use. === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) ___ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
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
[Looking at package fallout logs: the official armv6 and armv7 builds are using -O2 because of MACHINE_ARCH being defined because of qemu-user-static use. (mips too?) The logic in share/mk/sys.mk is not causing -O . An implication is that -O2 for armv6 and armv7 is probably far more tested than people generally expect. The share/mk/sys.mk change goes back to -r319861 2017-Jun-12 . Previously the logic would have caused -O use for armv6 or armv7 in MACHINE_ARCH .] On 2018-Nov-14, at 13:51, Mark Millard wrote: > [Tracking down -O2 vs. -O lead to share/mk/sys.mk instead of > to my materials. It in turn leads back to poudriere-devel with > qemu-user-static in use defining MACHINE_ARCH but without it > instead not doing so. share/mk/sys.mk behaves differently > for with vs. without the definition, leading to -O2 vs -O > differences in the two build contexts. Details later below.] > > On 2018-Nov-14, at 13:05, Mark Millard wrote: > >> [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(?).] >> >> On 2018-Nov-14, at 10:10, Mark Millard wrote: >> >>> I'll first note: >>> >>> # /usr/bin/ld -v >>> LLD 6.0.1 (FreeBSD 335540-130) (compatible with GNU linkers) >>> >>> and that I use: >>> >>> CFLAGS.clang+= -mcpu=cortex-a7 >>> CXXFLAGS.clang+= -mcpu=cortex-a7 >>> CPPFLAGS.clang+= -mcpu=cortex-a7 >>> >>> in the src.conf like ~/src.configs/src.conf.armv7-clang-bootstrap.armv7-host >>> file that I used. >>> >>> The error reports were: >>> >>> --- 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 >>> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against >>> local symbol in readonly segment; recompile object files with -fPIC >> defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) >> referenced by pixman-arm-simd-asm-scaled.o:(.text+0x1B8) in archive >> ./.libs/libpixman-arm-simd.a >>> >>> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against >>> local symbol in readonly segment; recompile object files with -fPIC >> defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) >> referenced by pixman-arm-simd-asm-scaled.o:(.text+0x374) in archive >> ./.libs/libpixman-arm-simd.a >>> >>> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against >>> local symbol in readonly segment; recompile object files with -fPIC >> defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) >> referenced by pixman-arm-neon-asm.o:(.text+0x17AC) in archive >> ./.libs/libpixman-arm-neon.a >>> >>> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against >>> local symbol in readonly segment; rec
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
[Tracking down -O2 vs. -O lead to share/mk/sys.mk instead of to my materials. It in turn leads back to poudriere-devel with qemu-user-static in use defining MACHINE_ARCH but without it instead not doing so. share/mk/sys.mk behaves differently for with vs. without the definition, leading to -O2 vs -O differences in the two build contexts. Details later below.] On 2018-Nov-14, at 13:05, Mark Millard wrote: > [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(?).] > > On 2018-Nov-14, at 10:10, Mark Millard wrote: > >> I'll first note: >> >> # /usr/bin/ld -v >> LLD 6.0.1 (FreeBSD 335540-130) (compatible with GNU linkers) >> >> and that I use: >> >> CFLAGS.clang+= -mcpu=cortex-a7 >> CXXFLAGS.clang+= -mcpu=cortex-a7 >> CPPFLAGS.clang+= -mcpu=cortex-a7 >> >> in the src.conf like ~/src.configs/src.conf.armv7-clang-bootstrap.armv7-host >> file that I used. >> >> The error reports were: >> >> --- 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 >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> symbol in readonly segment; recompile object files with -fPIC > defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) > referenced by pixman-arm-simd-asm-scaled.o:(.text+0x1B8) in archive > ./.libs/libpixman-arm-simd.a >> >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> symbol in readonly segment; recompile object files with -fPIC > defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) > referenced by pixman-arm-simd-asm-scaled.o:(.text+0x374) in archive > ./.libs/libpixman-arm-simd.a >> >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> symbol in readonly segment; recompile object files with -fPIC > defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) > referenced by pixman-arm-neon-asm.o:(.text+0x17AC) in archive > ./.libs/libpixman-arm-neon.a >> >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> symbol in readonly segment; recompile object files with -fPIC > defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) > referenced by pixman-arm-neon-asm.o:(.text+0x1814) in archive > ./.libs/libpixman-arm-neon.a >> >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> symbol in readonly segment; recompile object files with -fPIC > defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) > referenced by pixman-arm-neon-asm.o:(.text+0x1A38) in archive > ./.libs/libpixman-arm-neon.a >> >> /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local >> sy
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
[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(?).] On 2018-Nov-14, at 10:10, Mark Millard wrote: > I'll first note: > > # /usr/bin/ld -v > LLD 6.0.1 (FreeBSD 335540-130) (compatible with GNU linkers) > > and that I use: > > CFLAGS.clang+= -mcpu=cortex-a7 > CXXFLAGS.clang+= -mcpu=cortex-a7 > CPPFLAGS.clang+= -mcpu=cortex-a7 > > in the src.conf like ~/src.configs/src.conf.armv7-clang-bootstrap.armv7-host > file that I used. > > The error reports were: > > --- 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 > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) referenced by pixman-arm-simd-asm-scaled.o:(.text+0x1B8) in archive ./.libs/libpixman-arm-simd.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-simd.a(pixman-arm-simd-asm-scaled.o) referenced by pixman-arm-simd-asm-scaled.o:(.text+0x374) in archive ./.libs/libpixman-arm-simd.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) referenced by pixman-arm-neon-asm.o:(.text+0x17AC) in archive ./.libs/libpixman-arm-neon.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) referenced by pixman-arm-neon-asm.o:(.text+0x1814) in archive ./.libs/libpixman-arm-neon.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) referenced by pixman-arm-neon-asm.o:(.text+0x1A38) in archive ./.libs/libpixman-arm-neon.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) referenced by pixman-arm-neon-asm.o:(.text+0x1AFC) in archive ./.libs/libpixman-arm-neon.a > > /usr/bin/ld: error: can't create dynamic relocation R_ARM_V4BX against local > symbol in readonly segment; recompile object files with -fPIC defined in ./.libs/libpixman-arm-neon.a(pixman-arm-neon-asm.o) referenced by pixman-arm-neon-asm.o:(.text+0x21C8) in archive