Scot Hetzel schrieb am 2010-03-23: > On Tue, Mar 23, 2010 at 4:34 AM, Alexander Best <alexbestms_at_wwu.de> > wrote: > > i don't think conf/112997 and the issue where gcc segfaults are > > directly > > related to each other: > > 1. if CPUTYPE is set to 'native' your patch uses `gcc -v -x c -E > > -mtune=native > > /dev/null -o /dev/null 2>&1 | grep mtune | sed -e 's/.*mtune=//'` > > to determine > > gcc's idea of the appropriate -mtune value. that command however > > segfaults. so > > this doesn't really help. > The command runs correctly with a properly built gcc: > # gcc -v -x c -E -mtune=native /dev/null -o /dev/null 2>&1 | grep > mtune | sed -e 's/.*mtune=//' > generic i was finally able to solve this issue. it turns out the issue was caused by an option in my CLFAGS called "-fno-builtin". sys/conf/NOTES recommends using this switch for kernel builds, but it seems in a world environment the flag is harmful to gcc. a gcc built with "-fno-builtin" trips over strlen() for some reason. you should be able to reproduce this problem simply by adding "-O2 -fno-strict-aliasing -pipe -fno-builtin" to your CFLAGS. maybe "-O2 -fno-builtin" triggers it too, but "-fno-builtin" (without -O2) doesn't. thanks to everyone for all the help. :) cheers. alex > > 2. i wasn't able to reproduce your `make -V MACHINE_CPU > > -DCPUTYPE=native` > > examples. for me `make` prints the same no matter what CPUTYPE is > > set to: > > otaku% make -V MACHINE_CPU -DCPUTYPE=native > > amd64 sse2 sse > > otaku% make -V MACHINE_CPU -DCPUTYPE=nocona > > amd64 sse2 sse > > otaku% make -V MACHINE_CPU -DCPUTYPE=i386 > > amd64 sse2 sse > > otaku% make -V MACHINE_CPU -DCPUTYPE=lalalala > > amd64 sse2 sse > > ..oh and of course i ran these commands with no CPUTYPE set in > > make.conf. ;) > If I run the same commands as above, I get similar results: > # make -V MACHINE_CPU -DCPUTYPE=native > amd64 sse2 sse > # make -V MACHINE_CPU -DCPUTYPE=k8 > amd64 sse2 sse > # make -V MACHINE_CPU -DCPUTYPE=nocona > amd64 sse2 sse > # make -V MACHINE_CPU -DCPUTYPE=i386 > amd64 sse2 sse > # make -V MACHINE_CPU -DCPUTYPE=lala > amd64 sse2 sse > But if I run the commands without the "-D", it shows the problem > correctly: > # make -V MACHINE_CPU CPUTYPE=native > unknown amd64 sse2 sse mmx > # make -V MACHINE_CPU CPUTYPE=k8 > k8 3dnow amd64 sse2 sse mmx > # make -V MACHINE_CPU CPUTYPE=nocona > sse3 amd64 sse2 sse mmx > # make -V MACHINE_CPU CPUTYPE=i386 > unknown amd64 sse2 sse mmx > # make -V MACHINE_CPU CPUTYPE=lalala > unknown amd64 sse2 sse mmx > # grep CPUTYPE /etc/make.conf /etc/src.conf > grep: /etc/src.conf: No such file or directory > This was run under a Feb 28th -CURRENT. > Now here is something strange. Defining CPUTYPE in /etc/src.conf has > no effect on the output of MACHING_CPU. > /etc/src.conf: 1 lines, 11 characters. > # make -V MACHINE_CPU ; grep CPUTYPE /etc/make.conf /etc/src.conf > amd64 sse2 sse > /etc/src.conf:CPUTYPE=k8 > # make -V MACHINE_CPU ; grep CPUTYPE /etc/make.conf /etc/src.conf > k8 3dnow amd64 sse2 sse mmx > /etc/make.conf:CPUTYPE=k8 > Scot -- Alexander BestReceived on Tue Mar 23 2010 - 21:36:26 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:02 UTC