Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Jun 2017 04:33:11 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 220024] head -r319991 clang powerpc toolchain (cross build target): boot1.o: In function `fsread_size': undefined reference to `__udivdi3'
Message-ID:  <bug-220024-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D220024

            Bug ID: 220024
           Summary: head -r319991 clang powerpc toolchain (cross build
                    target): boot1.o: In function `fsread_size': undefined
                    reference to `__udivdi3'
           Product: Base System
           Version: CURRENT
          Hardware: powerpc
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: markmi@dsl-only.net

Context: amd64 -> powerpc cross build of -r319936
(one of my usual clang-based experiments):

--- all_subdir_sys ---
Building
/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/sys/boot/powerpc/boot1.c=
hrp/boot1.elf
--- boot1.elf ---
boot1.o: In function `fsread_size':
/usr/src/sys/boot/powerpc/boot1.chrp/boot1.c:(.text+0x14b8): undefined
reference to `__udivdi3'
/usr/src/sys/boot/powerpc/boot1.chrp/boot1.c:(.text+0x1508): undefined
reference to `__udivdi3'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
--- all_subdir_lib ---
Building
/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/lib/msun/s_remquo.po
--- all_subdir_sys ---
*** [boot1.elf] Error code 1

make[6]: stopped in /usr/src/sys/boot/powerpc/boot1.chrp
.ERROR_TARGET=3D'boot1.elf'
.ERROR_META_FILE=3D'/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/sys/=
boot/powerpc/boot1.chrp/boot1.elf.meta'


# Meta data file
/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/sys/boot/powerpc/boot1.c=
hrp/boot1.elf.meta
CMD cc -target powerpc-unknown-freebsd12.0
--sysroot=3D/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/tmp
-B/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/tmp/usr/bin -ffreestan=
ding
-msoft-float -I/usr/src/sys/boot/powerpc/boot1.chrp/../../common
-I/usr/src/sys/boot/powerpc/boot1.chrp/../../../ -D_STANDALONE -std=3Dgnu99
-Qunused-arguments -nostdlib -static -Wl,-N -o boot1.elf boot1.o ashldi3.o
syncicache.o=20=20
CWD
/usr/obj/powerpcvtsc_clang/powerpc.powerpc/usr/src/sys/boot/powerpc/boot1.c=
hrp
TARGET boot1.elf
-- command output --
boot1.o: In function `fsread_size':
/usr/src/sys/boot/powerpc/boot1.chrp/boot1.c:(.text+0x14b8): undefined
reference to `__udivdi3'
/usr/src/sys/boot/powerpc/boot1.chrp/boot1.c:(.text+0x1508): undefined
reference to `__udivdi3'
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Note: This was -j16 for the build.

I updated /usr/src and amd64 to -r319991 and then
retried cross building for powerpc: same result.


Note: I'd frozen at -r317820 until this update. Back then
I could buildworld and buildkernel via clang (although
I could not boot the clang-based kernel and so had to
build a gcc 4.2.1 based one and use it).

Note: A buildworld buildkernel via gcc 4.2.1 did not
have this problem. It is clang tool chain specific.

Clang based build-context details:

# more
~/sys_build_scripts.amd64-host/make_powerpcvtsc_nodebug_clang_bootstrap-amd=
64-host.sh=20
kldload -n filemon && \
script
~/sys_typescripts/typescript_make_powerpcvtsc_nodebug_clang_bootstrap-amd64=
-host-$(date
+%Y-%m-%d:%H:%M:%S) \
env __MAKE_CONF=3D"/root/src.configs/make.conf" SRCCONF=3D"/dev/null"
SRC_ENV_CONF=3D"/root/src.configs/src.conf.powerpc-clang-bootstrap.amd64-ho=
st" \
WITH_META_MODE=3Dyes \
MAKEOBJDIRPREFIX=3D"/usr/obj/powerpcvtsc_clang" \
make $*

# more /root/src.configs/src.conf.powerpc-clang-bootstrap.amd64-host
TO_TYPE=3Dpowerpc
#
KERNCONF=3DGENERICvtsc-NODBG
TARGET=3D${TO_TYPE}
.if ${.MAKE.LEVEL} =3D=3D 0
TARGET_ARCH=3D${TO_TYPE}
.export TARGET_ARCH
.endif
#
WITH_CROSS_COMPILER=3D
WITHOUT_SYSTEM_COMPILER=3D
#
WITH_LIBCPLUSPLUS=3D
WITH_BINUTILS_BOOTSTRAP=3D
WITH_ELFTOOLCHAIN_BOOTSTRAP=3D
WITH_CLANG_BOOTSTRAP=3D
WITH_CLANG=3D
WITH_CLANG_IS_CC=3D
WITH_CLANG_FULL=3D
WITH_CLANG_EXTRAS=3D
WITH_LLD=3D
# lldb requires missing atomic 8-byte operations for powerpc (non-64)
WITHOUT_LLDB=3D
#
WITH_BOOT=3D
WITHOUT_LIB32=3D
#
WITHOUT_GCC_BOOTSTRAP=3D
WITHOUT_GCC=3D
WITHOUT_GCC_IS_CC=3D
WITHOUT_GNUCXX=3D
#
NO_WERROR=3D
#
# Use WERROR to avoid stopping at the likes of:
# error: implicit conversion from 'int' to 'int8_t' (aka 'signed char') cha=
nges
value from 128 to -128 [-Werror,-Wconstant-conversion]
WERROR=3D
MALLOC_PRODUCTION=3D
#
WITH_REPRODUCIBLE_BUILD=3D
WITH_DEBUG_FILES=3D

So the system binutils tools are in used.

Even though I build lld, last I tried lld could not
be used so it is not the linker used by the above.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-220024-8>