Date: Tue, 19 May 2015 18:47:13 -0700 From: Sean Bruno <sbruno@ignoranthack.me> To: Brooks Davis <brooks@freebsd.org> Cc: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Re: Trying to use clang/head and XCC Message-ID: <555BE7A1.3040808@ignoranthack.me> In-Reply-To: <20150519202153.GB36377@spindle.one-eyed-alien.net> References: <555B638E.4020405@ignoranthack.me> <20150519165332.GA36377@spindle.one-eyed-alien.net> <555B91E8.9010309@ignoranthack.me> <20150519202153.GB36377@spindle.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 05/19/15 13:21, Brooks Davis wrote: > On Tue, May 19, 2015 at 12:41:28PM -0700, Sean Bruno wrote: On > 05/19/15 09:53, Brooks Davis wrote: >>>> On Tue, May 19, 2015 at 09:23:42AM -0700, Sean Bruno wrote: >>>> Following the External Tool Chain instructions on the wiki >>>> seem to not work: https://wiki.freebsd.org/ExternalToolchain >>>> >>>> I've gotten about this far: >>>> https://people.freebsd.org/~sbruno/clang_head_build_log.txt >>>> >>>>> You need to delete >>>>> /home/sbruno/bsd/clang/build/bin/../lib/clang/3.7.0/include/std* >>>>> and possibly also limits.h (it's broken for libstand on >>>>> mips). If you use the ports/pkgs they do this. > > This didn't seem to make any difference when xcompiling for AMD64, > but I did run into a buildfailure which might mean I don't know > what I'm doing: > >> rm >> /home/sbruno/bsd/clang/build/bin/../lib/clang/3.7.0/include/limits.h > >> should do get around this one. I hit this one on mips a few >> weeks ago. > >> It's a bug in upstream clang that the bundled limits.h doesn't >> #include_next <limits.h> with -ffreestanding. I've not had a >> chance to submit a review request to fix it. > >> -- Brooks > > > > ===> lib/libstand (all) /home/sbruno/bsd/clang/build/bin/clang > -target x86_64-unknown-freebsd11.0 > --sysroot=/var/tmp/home/sbruno/bsd/fbsd_head/tmp > -B/var/tmp/home/sbruno/bsd/fbsd_head/tmp/usr/ bin -O2 -pipe > -ffreestanding -Wformat -I/home/sbruno/bsd/fbsd_head/lib/libstand > -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float -fPIC > -mno-red-zone -DB Z_NO_STDIO -DBZ_NO_COMPRESS -DHAVE_MEMCPY > -I/home/sbruno/bsd/fbsd_head/lib/libstand/../libz -std=gnu99 > -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unuse > d-const-variable -Wno-tautological-compare -Wno-unused-value > -Wno-parentheses-equality -Wno-unused-function > -Wno-enum-conversion -Wno-unused-local-typedef -Wno-switch - > Wno-switch-enum -Wno-knr-promoted-parameter -Wno-parentheses > -Qunused-arguments -c > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c > -o strcspn.o > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:46:31 : > > error: > use of undeclared identifier 'LONG_BIT' u_long tbl[(UCHAR_MAX + 1) > / LONG_BIT]; ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:60:9: > > error: use of undeclared identifier 'LONG_BIT' > idx = IDX(*charset); ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:34:31 : > > note: > expanded from macro 'IDX' #define IDX(c) ((u_char)(c) / LONG_BIT) > ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:61:9: > > error: use of undeclared identifier 'LONG_BIT' > bit = BIT(*charset); ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:35:45 : > > note: > expanded from macro 'BIT' #define BIT(c) ((u_long)1 << > ((u_char)(c) % LONG_BIT)) ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:66:9: > > error: use of undeclared identifier 'LONG_BIT' > idx = IDX(*s1); ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:34:31 : > > note: > expanded from macro 'IDX' #define IDX(c) ((u_char)(c) / LONG_BIT) > ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:67:9: > > error: use of undeclared identifier 'LONG_BIT' > bit = BIT(*s1); ^ > /home/sbruno/bsd/fbsd_head/lib/libstand/../libc/string/strcspn.c:35:45 : > > note: > expanded from macro 'BIT' #define BIT(c) ((u_long)1 << > ((u_char)(c) % LONG_BIT)) ^ 5 errors generated. *** Error code 1 > > > >>>> >>>> Two items of note. -- The bootstrap bits *completely* ignore >>>> XCC and build with the host cc/c++ >>>> >>>>> That's expected. In principle clang could be used as the >>>>> cross compiler since it's multi-target, but gcc could never >>>>> work unless the host and target are the same. >>>> >>>> -- No documentation of what CFLAGS are required to build and >>>> ignore warnings. >>>> >>>>> It will change with every clang/gcc release. In practice >>>>> you will need to either fix the warnings wack-a-mole style >>>>> or set NO_WERROR in the environment. >>>> >>>>> -- Brooks >>>> >>>> >>>> Anyone out there have success doing this? >>>> >>>> sean Getting much closer, I think this is fixable, but maybe we need to pass this upstream? ===> sys/boot/i386/boot2 (depend) ln -sf /home/sbruno/bsd/fbsd_head/sys/boot/i386/boot2/../../../i386/include machine /home/sbruno/bsd/clang/build/bin/clang -target x86_64-unknown-freebsd11.0 - --sysroot=/var/tmp/home/sbruno/bsd/fbsd_head/tmp - -B/var/tmp/home/sbruno/bsd/fbsd_head/tmp/usr/bin -fomit-frame-pointer -mrtd -mregparm=3 -DUSE_XREAD -DUFS1_AND_UFS2 -DFLAGS=0x80 - -DSIOPRT=0x3f8 -DSIOFMT=0x3 -DSIOSPD=9600 - -I/home/sbruno/bsd/fbsd_head/sys/boot/i386/boot2/../../common - -I/home/sbruno/bsd/fbsd_head/sys/boot/i386/boot2/../btx/lib -I. -Wall - -Waggregate-return -Wbad-function-cast -Wcast-align - -Wmissing-declarations -Wmissing-prototypes -Wnested-externs - -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings -Winline - -march=i386 -ffreestanding -mno-mmx -mno-3dnow -mno-sse -mno-sse2 - -mno-sse3 -msoft-float -m32 -std=gnu99 -Oz -mstack-alignment=8 - -mllvm -inline-threshold=3 -mllvm -simplifycfg-dup-ret -mllvm - -enable-gvn=false -Qunused-arguments -no-integrated-as -m32 -c /home/sbruno/bsd/fbsd_head/sys/boot/i386/boot2/boot1.S -o boot1.o clang (LLVM option parsing): Unknown command line argument '-enable-gvn=false'. Try: 'clang (LLVM option parsing) -help' clang (LLVM option parsing): Did you mean '-enable-pre=false'? *** Error code 1 Stop. make[6]: stopped in /home/sbruno/bsd/fbsd_head/sys/boot/i386/boot2 *** Error code 1 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQF8BAEBCgBmBQJVW+eeXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCQUFENDYzMkU3MTIxREU4RDIwOTk3REQx MjAxRUZDQTFFNzI3RTY0AAoJEBIB78oecn5kYDAH/iWF3lKAdEfOK2VN5IWPhzm2 eIBs5OO8cAOhxp79oQP/668WxzjF2sGcgSLzURNvle25iYDwNbeBmGphxycs+5+A /Bidkq9qBDPo4kz8+2tb1cil+QMT3JnoiuVh66ICnCPCNJSkYibuyTlaaB/y0Gg+ OanQEtvsZ8ZQYfesE0SIhXn4w7EDoyh9FsBVerusKBIvyUze3W/c6tQblHY+qZvM 4HQuOZYZC8qPplG8cREFtIemkdp0M7e1atw8o3gss0JkIRCHzPsEh6ekbwuSxXT+ gUDE0H1odTSO0YsJRbLhi/LWvuyg5oDwiAkP+QmPgO44VeCGybIAhtRKjgzErFA= =XPVp -----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?555BE7A1.3040808>