Hi all. When CLANG_IS_CC build fails at sys/boot/i386/boot2: 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=1575 text=0 data=0 bss=0 entry=0 output: fmt=bin size=1e05 text=200 data=1c05 org=0 entry=0 -5 bytes available *** [boot2] Error code 1 The relevant output before r242562 looked like: 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=1569 text=0 data=0 bss=0 entry=0 output: fmt=bin size=1df9 text=200 data=1bf9 org=0 entry=0 7 bytes available dd if=boot2.ld of=boot2 obs=7680 conv=osync -- Sphinx of black quartz, judge my vow.
On Mon, Nov 5, 2012 at 12:41 PM, Volodymyr Kostyrko <c.kworr at gmail.com>wrote:> Hi all. > > When CLANG_IS_CC build fails at sys/boot/i386/boot2: > > 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=1575 text=0 data=0 bss=0 entry=0 > output: fmt=bin size=1e05 text=200 data=1c05 org=0 entry=0 > -5 bytes available > *** [boot2] Error code 1 > > The relevant output before r242562 looked like: > > 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=1569 text=0 data=0 bss=0 entry=0 > output: fmt=bin size=1df9 text=200 data=1bf9 org=0 entry=0 > 7 bytes available > dd if=boot2.ld of=boot2 obs=7680 conv=osync > > -- > Sphinx of black quartz, judge my vow. >I can confirm, for at least revisions 242602 and 242605. Regards Andreas
On 2012-11-05 12:41, Volodymyr Kostyrko wrote:> When CLANG_IS_CC build fails at sys/boot/i386/boot2: > > 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=1575 text=0 data=0 bss=0 entry=0 > output: fmt=bin size=1e05 text=200 data=1c05 org=0 entry=0 > -5 bytes availableThis seems to be caused by r242562, which is an MFC of r241301. The code changes are quite trivial though. Strangely enough, on head it does build successfully, but head is using a newer version of clang, so that may explain the difference. Investigating...
on 05/11/2012 16:51 Dimitry Andric said the following:> On 2012-11-05 12:41, Volodymyr Kostyrko wrote: >> When CLANG_IS_CC build fails at sys/boot/i386/boot2: >> >> 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=1575 text=0 data=0 bss=0 entry=0 >> output: fmt=bin size=1e05 text=200 data=1c05 org=0 entry=0 >> -5 bytes available > > This seems to be caused by r242562, which is an MFC of r241301. The > code changes are quite trivial though. Strangely enough, on head it > does build successfully, but head is using a newer version of clang, so > that may explain the difference. Investigating...I suspect that some earlier space-saving commit was not MFC-ed to stable/9. -- Andriy Gapon
05.11.2012 17:42, Andriy Gapon wrote:> on 05/11/2012 16:51 Dimitry Andric said the following: >> On 2012-11-05 12:41, Volodymyr Kostyrko wrote: >>> When CLANG_IS_CC build fails at sys/boot/i386/boot2: >>> >>> 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=1575 text=0 data=0 bss=0 entry=0 >>> output: fmt=bin size=1e05 text=200 data=1c05 org=0 entry=0 >>> -5 bytes available >> >> This seems to be caused by r242562, which is an MFC of r241301. The >> code changes are quite trivial though. Strangely enough, on head it >> does build successfully, but head is using a newer version of clang, so >> that may explain the difference. Investigating... > > I suspect that some earlier space-saving commit was not MFC-ed to stable/9. >This can be easily checked: # cd /usr/src/sys/boot/i386/boot2/ # make clean # svn up Updated to revision 242616. # setenv PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # unsetenv CCACHE_PATH # /usr/local/bin/clang -v clang version 3.2 (trunk) Target: amd64-portbld-freebsd9.1 Thread model: posix # echo CC=/usr/local/bin/clang >> /etc/src.conf # echo CXX=/usr/local/bin/clang++ >> /etc/src.conf # make .... 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=154d text=0 data=0 bss=0 entry=0 output: fmt=bin size=1ddd text=200 data=1bdd org=0 entry=0 35 bytes available dd if=boot2.ld of=boot2 obs=7680 conv=osync 14+1 records in 1+0 records out 7680 bytes transferred in 0.000099 secs (77433305 bytes/sec) I bet on clang 3.2. -- Sphinx of black quartz, judge my vow.
on 05/11/2012 17:52 Volodymyr Kostyrko said the following:> I bet on clang 3.2.Thank you for checking. So how do we proceed from here? I could just revert the MFC-es, but the functionality could be desirable to some users. Are there any alternatives? -- Andriy Gapon