Re: compiling error
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 15 Jun 2021 20:52:03 UTC
On 15/06/21 16:33, Justin Hibbits wrote: > On Tue, 15 Jun 2021 14:18:16 -0400 > al@familysafeinternet.com wrote: > >> On 14/06/21 19:26, Mark Millard wrote: >>> On 2021-Jun-14, at 15:05, al at familysafeinternet.com wrote: >>> >>>> I hope that someone can help me. I broke my install of FreeBSD and >>>> I went back to my G3 and tried to compile a new kernel so that I >>>> would not need the serial console anymore, but even if I try to >>>> compile the old kernel it still stops with: >>>> >>>> -------------------------------------------------------------- >>>>>>> stage 3.1: building everything >>>> -------------------------------------------------------------- >>>> cd /usr/obj/usr/src/powerpc.powerpc64/sys/AMIGAX5000; >>>> MACHINE_ARCH=powerpc64 MACHINE=powerpc CPUTYPE= CC="cc >>>> --sysroot=/usr/obj/usr/src/powerpc.powerpc64/tmp >>>> -B/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/bin" CXX="c++ >>>> --sysroot=/usr/obj/usr/src/powerpc.powerpc64/tmp >>>> -B/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/bin" CPP="cpp >>>> --sysroot=/usr/obj/usr/src/powerpc.powerpc64/tmp >>>> -B/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/bin" AS="as" AR="ar" >>>> LD="ld" LLVM_LINK="" NM=nm OBJCOPY="objcopy" RANLIB=ranlib >>>> STRINGS= SIZE="size" INSTALL="sh /usr/src/tools/install.sh" >>>> PATH=/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/sbin:/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/bin:/usr/obj/usr/src/powerpc.powerpc64/tmp/legacy/usr/sbin:/usr/obj/usr/src/powerpc.powerpc64/tmp/legacy/usr/bin:/usr/obj/usr/src/powerpc.powerpc64/tmp/legacy/bin::/sbin:/bin:/usr/sbin:/usr/bin >>>> make -m /usr/src/share/mk KERNEL=kernel all -DNO_MODULES_OBJ >>>> machine -> /usr/src/sys/powerpc/include cc >>>> --sysroot=/usr/obj/usr/src/powerpc.powerpc64/tmp >>>> -B/usr/obj/usr/src/powerpc.powerpc64/tmp/usr/bin -c -O -pipe -g >>>> -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include >>>> -I/usr/src/sys/contrib/libfdt -D_KERNEL >>>> -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -msoft-float >>>> -fPIC -fno-omit-frame-pointer -MD -MF.depend.genoffset.o >>>> -MTgenoffset.o -mno-altivec -msoft-float -ffreestanding -fwrapv >>>> -fstack-protector -gdwarf-2 -Wall -Wredundant-decls >>>> -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes >>>> -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign >>>> -fformat-extensions -Wmissing-include-dirs >>>> -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-uninitialized >>>> -Wno-format-zero-length -fms-extensions -finline-limit=15000 >>>> --param inline-unit-growth=100 --param large-function-growth=1000 >>>> -fms-extensions -Wa,-many -mcall-aixdesc -std=iso9899:1999 >>>> /usr/src/sys/kern/genoffset.c /usr/src/sys/kern/genoffset.c:1: >>>> error: -fPIC and -mcall-aixdesc are incompatible *** Error code 1 >>>> >>>> Stop. >>>> make[2]: stopped in >>>> /usr/obj/usr/src/powerpc.powerpc64/sys/AMIGAX5000 *** Error code 1 >>>> >>>> Stop. >>>> make[1]: stopped in /usr/src >>>> *** Error code 1 >>>> >>>> Stop. >>>> make: stopped in /usr/src >>>> >>>> I am using source from before we switched to clang. >>>> >>>> The issue is with the offset, but I don't know why it is suddenly >>>> a problem, because it compiled before. Any thoughts? >> Hi, I am sorry about the lack of information in this email, I was in >> a hurry and wasn't thinking. >> >>> You make no mention of what svn or git branch and version of the >>> FreeBSD source is being compiled, no output from svnlite or git >>> indicating such. >> root@host:/usr/src # svnlite info --show-item revision >> 351650 >> >> >>> You do not show anything like the "uname -apKU" output for the >>> context doing the build. >> FreeBSD host.datazap.net 13.0-CURRENT FreeBSD 13.0-CURRENT r351067 >> GENERIC powerpc powerpc 1300039 1300039 >> >>> Looks to me like ${MACHINE_CPUARCH} == "powerpc" got -fPIC >>> in sys/conf/kmod.mk in svn path=/head/; revision=356114 >>> at 2019-12-27 04:07:51 +0000. >>> >>> -mcall-aixdesc is older then that if I understand right. >>> >>> But a G3 means 32-bit powerpc is doing the build while you >>> are targeting something under: >>> >>> /usr/obj/usr/src/powerpc.powerpc64/ >> I want to compile a kernel a new kernel with a frame buffer for a >> X5000, because I was going to reinstall it anyway. Less that I have >> to do on the X5000 with a serial console. >> >> # >> # Custom kernel for Freescale MPC85XX development boards like the CDS >> etc. # >> # $FreeBSD: head/sys/powerpc/conf/MPC85XX 277254 2015-01-16 17:41:21Z >> nwhitehorn $ >> # >> >> ident AMIGAX5000 >> >> include QORIQ64 >> >> #options BUS_DEBUG >> #options DEBUG >> #options EARLY_PRINTF >> #options MPC85XX_UART_PA=0xffe11c000ull >> #options KTR >> #options KTR_COMPILE=(KTR_PMAP) >> #options KTR_MASK=(KTR_PMAP) >> #options KTR_ENTRIES=8192 >> #options KTR_VERBOSE >> >> options PREEMPTION # Enable kernel thread >> preemption options GEOM_PART_EBR # Extended Boot >> Records options GEOM_PART_EBR_COMPAT # Backward compatible >> partition names >> options GEOM_PART_APM # Apple Partition Maps. >> options ZFS >> >> device ukbd >> device ums >> >> # For SAS RAID >> #device pci >> #device aacraid >> >> # For Video >> device vt >> device fbd >> device kbdmux >> options KBD_INSTALL_CDEV >> >> # No Netboot >> nooptions BOOTP >> nooptions BOOTP_NFSROOT >> >> # For Alex >> #device nvme >> nooptions INVARIANTS >> nooptions INVARIANT_SUPPORT >> nooptions WITNESS >> nooptions WITNESS_SKIPSPIN >> >>> So it is a form of cross-build (not even a self-hosted limiting >>> condition one: one that produces incompatible code). You give >>> no details of how you set up the cross-build. >> To cross compile I used: >> make buildkernel TARGET_ARCH=powerpc64 KERNCONF=AMIGAX5000 >> >> Is there something else that is needed to make this compile? > Try first 'make kernel-toolchain TARGET_ARCH=powerpc64' beforehand. > > - Justin Justin, will give it a try. Thank you! -Al >>> My guess is the cross-build attempt is using compiler option >>> combinations that would work in a native powerpc64 environment >>> but not with the 32-bit powerpc toolchain that is in use. Or: >>> the build might have mixed the 32-bit context options and the >>> powerpc64 context options by having some tests that incorrectly >>> tests host context vs. target context for choosing options. >>> >> I was able to build a working kernel and userland before on the G3 >> and then recompile everything on the X5000. It maybe that my hard >> drive has failed. >> >> Please let me know if you need other information. >> >> Thanks, >> Al >> >> >> >>