Trying to use clang/head and XCC
Brooks Davis
brooks at freebsd.org
Tue May 19 20:21:54 UTC 2015
On Tue, May 19, 2015 at 12:41:28PM -0700, Sean Bruno wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> 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
> >> _______________________________________________
> >> freebsd-hackers at freebsd.org mailing list
> >> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To
> >> unsubscribe, send any mail to
> >> "freebsd-hackers-unsubscribe at freebsd.org"
> >>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
>
> iQF8BAEBCgBmBQJVW5HhXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
> ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCQUFENDYzMkU3MTIxREU4RDIwOTk3REQx
> MjAxRUZDQTFFNzI3RTY0AAoJEBIB78oecn5keYAIAJ2QVVw6K6UDXnn7+MzI3U6s
> agPzhREr8HB0wZDapUjjtG+KVdy0P3bPKX+T5D4nDq8YbW7EgkYJcYL+A2xl0Ri9
> sXHldlTHdf43XRtFufbYpM6z6X4SZ8wHo67F+UuIPmPjnn8GSLd6b4bORrhvvmdN
> fy2X3eDSBs8ogssJSWLYHCPA3hGWeAlXUMy1abv5wuEc4cxQmYjW3dY4l019nC0r
> jSTPd1JDacW6rMUMXFx1aZDsk9nk2Xl1khUu2bR0ZiMkdVYD1s0JhNF4UQYMqPsN
> 3u8FK0RFnOTN8XgVNb4mjqgSMGMigrpvtoPdhrqcscOewgjPORoypL/f6xVmejc=
> =G80s
> -----END PGP SIGNATURE-----
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20150519/c0305cb1/attachment.sig>
More information about the freebsd-hackers
mailing list