Re: compiling error

[email protected]
Newsgroups gmane.os.freebsd.devel.ppc
Message-ID <[email protected]>

On 15/06/21 16:33, Justin Hibbits wrote:
> On Tue, 15 Jun 2021 14:18:16 -0400
> [email protected] 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
>>
>>
>>
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.