[Bug 207599] kernel built with clang fails to boot on ppc64 qemu

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Mon Feb 29 19:59:13 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207599

            Bug ID: 207599
           Summary: kernel built with clang fails to boot on ppc64 qemu
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: ppc
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: kennethsalerno at yahoo.com

Created attachment 167575
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=167575&action=edit
Patches to build for ppc64 with clang

Used the attached modifications to build ppc64 kernel with clang (building
world only required a small kludge with bfd ld but otherwise works fine). 

Same kernel was tested building with CC:= gcc and COMPILER_TYPE:= gcc in
sys/conf/Makefile.powerpc64 and that kernel boot just fine. I would like to get
the kernel built by clang work though...

make.conf used:
   NO_WERROR =
   WERROR =
   WITH_CLANG = yes
   WITH_CLANG_BOOTSTRAP = yes
   WITH_CLANG_FULL = yes
   WITH_CLANG_IS_CC = yes
   WITH_GCC = yes
   WITH_GCC_BOOTSTRAP = yes
   WITHOUT_GNUCXX = yes

When booting, hangs here:
   Kernel entry at 0x100160 ...

objdump says that 0x100160 is a good address in /boot/kernel/kernel pointing to
__start like it should:
0000000000100160 <.__start>:
  100160:       48 00 00 08     b       100168 <.__start+0x8>
  100164:       60 00 00 00     nop
  100168:       60 00 00 00     nop
  10016c:       48 00 00 0d     bl      100178 <.__start+0x18>
  100170:       00 00 00 00     .long 0x0
  100174:       00 4b be 90     .long 0x4bbe90
  100178:       7c 48 02 a6     mflr    r2
  10017c:       e8 22 00 00     ld      r1,0(r2)
  100180:       7c 41 12 14     add     r2,r1,r2
  100184:       eb e2 80 00     ld      r31,-32768(r2)
  100188:       7f ff 10 50     subf    r31,r31,r2
  10018c:       e8 22 00 00     ld      r1,0(r2)
  100190:       38 21 3f a0     addi    r1,r1,16288
  100194:       7c 21 fa 14     add     r1,r1,r31
  100198:       f8 61 00 30     std     r3,48(r1)
  10019c:       f8 81 00 38     std     r4,56(r1)
  1001a0:       f8 a1 00 40     std     r5,64(r1)

Contents of CPU registers:
(qemu) info registers                                                           
NIP 000000007dbe0780   LR 000000007dbe0308 CTR 000000007dbe0210 XER
000000000000
MSR 0000000000000010 HID0 0000000000000000  HF 0000000000000000 idx 1           
TB 00000003 16089762103 DECR 1090107081                                         
GPR00 000000007dbe0780 000000007e45e0f0 000000007dbff728 0000000000000003
GPR04 0000000000000380 0000000000003950 000000007dc3f728 0000000000000fe0
GPR08 0000000000000080 000000000073ed10 0000000000000000 0000000000000000
GPR12 0000000000743900 0000000000708f50 0000000000000000 0000000000000000
GPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
GPR20 0000000000000000 0000000001801bc0 00000000005bc000 0000000000009001
GPR24 00000000005bc000 0000000000743900 0000000000708f50 000000000073ee20
GPR28 0000000000002000 ffffffffffffffff 0000000000003d98 0000000000003a20
CR 84400028  [ L  G  G  -  -  -  E  L  ]             RES ffffffffffffffff
FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPSCR 0000000000000000
 SRR0 000000007dbe0780  SRR1 0000000000000010    PVR 00000000004d0100 VRSAVE
000
SPRG0 000000007dbe0308 SPRG1 000000007e45e0f0  SPRG2 000000007dbe0210  SPRG3
008
SPRG4 0000000000000000 SPRG5 0000000000000000  SPRG6 0000000000000000  SPRG7
000
 CFAR 000000007dbe033c
 SDR1 0000000043230007   DAR 000000007dc41000  DSISR 0000000000000000

Any help on where to begin troubleshooting where the execution is stopping
would be appreciated. Which source file for the kernel contains the first set
of instructions when control is handed over from the boot loader?

Thanks.

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


More information about the freebsd-bugs mailing list