Date: Sun, 2 Mar 2014 08:32:43 +0000 (GMT) From: Craig Butler <craig001@lerwick.hopto.org> To: John-Mark Gurney <jmg@funkthat.com> Cc: rdivacky@freebsd.org, freebsd-current@freebsd.org, Dimitry Andric <dim@freebsd.org>, freebsd-sparc64@freebsd.org Subject: Re: HEADS UP: sparc64 backend for llvm/clang imported Message-ID: <31991855.251.1393749169473.JavaMail.craig@w520> In-Reply-To: <20140301195158.GA47921@funkthat.com> References: <F7AC069B-32B9-4F4E-BF19-EA2E6714F9C3@FreeBSD.org> <20140301011643.GV47921@funkthat.com> <5311FCB9.60406@smeets.im> <20140301195158.GA47921@funkthat.com>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message ----- > From: "John-Mark Gurney" <jmg@funkthat.com> > To: "Florian Smeets" <flo@smeets.im> > Cc: "Dimitry Andric" <dim@freebsd.org>, "Craig Butler" <craig001@lerwick.hopto.org>, freebsd-current@freebsd.org, > freebsd-sparc64@freebsd.org, rdivacky@freebsd.org > Sent: Saturday, 1 March, 2014 7:51:58 PM > Subject: Re: HEADS UP: sparc64 backend for llvm/clang imported > > Florian Smeets wrote this message on Sat, Mar 01, 2014 at 16:28 > +0100: > > On 01/03/14 02:16, John-Mark Gurney wrote: > > > Dimitry Andric wrote this message on Fri, Feb 28, 2014 at 20:22 > > > +0100: > > >> > > >> For building the sparc64 kernel, there is one open issue left, > > >> which is > > >> that sys/sparc64/include/pcpu.h uses global register variables, > > >> and this > > >> is not supported by clang. A preliminary patch for this is > > >> attached, > > >> but it may or may not blow up your system, please beware! > > >> > > >> The patch changes the pcpu and curpcb global register variables > > >> into > > >> inline functions, similar to what is done on other > > >> architectures. > > >> However, the current approach is not optimal, and the emitted > > >> code is > > >> slightly different from what gcc outputs. Any improvements to > > >> this > > >> patch are greatly appreciated! > > >> > > >> Last but not least, thanks go out to Roman Divacky for his work > > >> with > > >> llvm/clang upstream in getting the sparc64 backend into shape. > > > > > > Ok, I have a new pcpu patch to try. I have only compile tested > > > it. > > > > > > It is available here: > > > https://www.funkthat.com/~jmg/sparc64.pcpu.patch > > > > > > I've also attached it. > > > > > > Craig, do you mind testing it? > > > > > > > My machine doesn't boot with this patch. > > > > OK boot -v > > Booting... > > jumping to kernel entry at 0xc0088000. > > OF_panic: sparc64_init: cannot find boot CPU node > > Program terminated > > {1} ok > > > > I'm now going to try the version that dim sent. > > Does it boot w/o the patch? Is this a clang built loader/kernel or > a gcc built loader/kernel that you tried the patch on? > > From a quick look at the code, it doesn't look like my patch would > have effected this part of the kernel... > > -- > John-Mark Gurney Voice: +1 415 225 5579 > > "All that I will do, has been done, All that I have, has not." > It's not working here either.. Native base gcc compiled 10-RELEASE + patch results in; FreeBSD/sparc64 bootstrap loader, Revision 1.0 (root@snap.freebsd.org, Fri Jan 17 11:27:27 UTC 2014) bootpath="/pci@1f,0/pci@1/scsi@8/disk@0,0:a" Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0xafe440 data=0xcbf60+0xd82b0 syms=[0x8+0xc53a0+0x8+0xb7c06] /boot/kernel/zfs.ko text=0x223328 data=0xa4c0+0x17f60 syms=[0x8+0x19788+0x8+0x143eb] loading required module 'opensolaris' /boot/kernel/opensolaris.ko text=0x30d0 data=0x2a8+0x2030 syms=[0x8+0xd68+0x8+0x91c] /boot/kernel/geom_mirror.ko text=0x383f0 data=0x590+0x20 syms=[0x8+0x1680+0x8+0x1191] Hit [Enter] to boot immediately, or any other key for command prompt. Booting [/boot/kernel/kernel]... jumping to kernel entry at 0xc00a0000. Copyright (c) 1992-2014 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 10.0-RELEASE #2: Sat Mar 1 21:40:27 GMT 2014 root@v120.lerwick.hopto.org:/usr/obj/usr/src/sys/GENERIC sparc64 gcc version 4.2.1 20070831 patched [FreeBSD] real memory = 1073741824 (1024 MB) avail memory = 1024622592 (977 MB) cpu0: Sun Microsystems UltraSparc-IIe Processor (648.00 MHz CPU) random device not loaded; using insecure entropy panic: trap: illegal instruction (kernel) cpuid = 0 KDB: stack backtrace: #0 0xc0884458 at trap+0x558 Uptime: 1s Automatic reboot in 15 seconds - press a key on the console to abort Rebooting... Resetti LOM event: +12h49m59s host reset Kind Regards Craig Butler
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31991855.251.1393749169473.JavaMail.craig>