Date: Tue, 19 Jul 2011 04:01:26 +0400 From: Pan Tsu <inyaoo@gmail.com> To: Roman Divacky <rdivacky@freebsd.org> Cc: freebsd-toolchain@freebsd.org Subject: Re: [clang] boot2 fails to build with DEBUG_FLAGS? Message-ID: <8639i3dtpl.fsf@gmail.com> References: <86zkm74srn.fsf@gmail.com> <20110530161905.GA91202@freebsd.org>
index | next in thread | previous in thread | raw e-mail
Roman Divacky <rdivacky@freebsd.org> writes:
> I dont have the same environment (I am using trunk llvm/clang) but I cant
> reproduce it here...
>
> fwiw, with trunk llvm DEBUG_FLAGS dies in assembly stage because our as
> does not know .cfi_section
Why sys/boot even allows user CFLAGS influence if it's that fragile?
$ __MAKE_CONF=/dev/null make all CC=clang DEBUG_FLAGS='-g -fno-omit-frame-pointer'
===> i386/boot2 (all)
objcopy -S -O binary boot1.out boot1
dd if=/dev/zero of=boot2.ldr bs=512 count=1
1+0 records in
1+0 records out
512 bytes transferred in 0.000016 secs (32051995 bytes/sec)
[...]
ld -static -N --gc-sections -nostdlib -m elf_i386_fbsd -Ttext 0x2000 -o boot2.out /usr/obj/usr/src/sys/boot/i386/boot2/../btx/lib/crt0.o boot2.o sio.o
objcopy -S -O binary boot2.out boot2.bin
btxld -v -E 0x2000 -f bin -b /usr/obj/usr/src/sys/boot/i386/boot2/../btx/btx/btx -l boot2.ldr -o boot2.ld -P 1 boot2.bin
kernel: ver=1.02 size=690 load=9000 entry=9010 map=16M pgctl=1:1
client: fmt=bin size=15bd text=0 data=0 bss=0 entry=0
output: fmt=bin size=1e4d text=200 data=1c4d org=0 entry=0
-77 bytes available
*** Error code 1
And those DEBUG_FLAGS are handy to globally make world and ports
trace-friendly (gdb/pmc/dtrace) without losing optimization. Luckily
.if ${.CURDIR:N*sys/boot*}
DEBUG_FLAGS ?= -g -fno-omit-frame-pointer
.endif
seems to work. OTOH, clang breaks gptzfsboot here, i.e.
ZFS: zfs_alloc()/zfs_free() mismatch
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8639i3dtpl.fsf>
