| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
import, it works without issue.
|
|
|
|
|
|
|
|
|
|
|
| |
allow the built-in operations to be redefined, at least not without
excessive force).
Instead, just disable LLVM's support for atomic operations for now.
Nothing in either clang or the tablegen tools currently depends on it.
This still allows users of head built before r198344 to upgrade to
top-of-head seamlessly.
|
|
|
|
|
|
|
|
|
|
|
| |
to be gcc's default before r198344, calls to atomic builtins will not be
expanded inline. Instead, they will be generated as calls to external
functions (e.g. __sync_fetch_and_add_N), leading to linking errors later
on.
Put in a seatbelt that disables use of atomic builtins in libstdc++ and
llvm, when tuning specifically for the real i386 CPU. This does not
protect against all possible issues, but it is better than nothing.
|
|
|
|
|
|
|
| |
branch. This brings us very close to the 3.0 release, which is expected
in a week or two.
MFC after: 1 week
|
|
|
|
| |
$arch-unknown-freebsd10.0.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
similar to what we do for binutils. When clang's default triple starts
with 'amd64-', it does not pass a proper -target-cpu option to its
first stage.
This can lead to problems, for example when structs are memcpy'd, and
clang erroneously assumes they are 16-byte aligned. It will then use
the 'movaps' SSE instruction to implement the copy, which results in a
bus error if the struct is really 8-byte aligned.
I encountered this issue when gcc's /usr/libexec/cc1 started crashing
with SIGBUS, after rebuilding world with clang ToT, but it also affects
the version of clang that we have in the tree. We were just lucky until
now, apparently. :)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are several bugfixes in this update, but the most important one is
to ensure __start_ and __stop_ symbols for linker sets and kernel module
metadata are always emitted in object files:
http://llvm.org/bugs/show_bug.cgi?id=9292
Before this fix, if you compiled kernel modules with clang, they would
not be properly processed by kldxref, and if they had any dependencies,
the kernel would fail to load those. Another problem occurred when
attempting to mount a tmpfs filesystem, which would result in 'operation
not supported by device'.
|
|
|
|
|
| |
and test appropriately. Otherwise it might erroneously pick up some
pthread primitives, and fail to link.
|
|
|
|
| |
a regular autoconf-based build. More cosmetic than functional changes.
|
|
|
|
|
| |
This contains many improvements, primarily better C++ support, an
integrated assembler for x86 and support for -pg.
|
|
|
|
| |
llvm/clang.
|
|
|
|
|
| |
libraries subdirectories since there's nothing to do there. This saves
us quite a few seconds off installworld, esp. if the disk I/O is slow.
|
|
|
|
|
|
| |
http://llvm.org/releases/2.8/docs/ReleaseNotes.html
Approved by: rpaulo (mentor)
|
|
|
|
| |
Approved-by: rpaulo (mentor)
|
|
|
|
|
|
| |
spaces after the '=' sign in macro assignments.
Approved-by: rpaulo (mentor)
|
|
|
|
|
|
|
|
| |
CLANG_PREFIX macro. This changes the default header search path when we
are building clang as part of cross-tools.
Submitted by: Dimitry Andric <dimitry at andric.com>
Reviewed by: freebsd-current
|
|
|
|
|
|
|
|
|
| |
-fno-rtti. The clang libaries that really use exceptions and virtual
functions can enable LLVM_REQUIRES_EH and LLVM_REQUIRES_RTTI
respectively. This saves space on the resulting binaries and follows
what's being done upstream.
Submitted by: Dimitry Andric <dimitry at andric.com>
|
|
|
|
|
|
|
|
|
| |
This commit merges the latest LLVM sources from the vendor space. It
also updates the build glue to match the new sources. Clang's version
number is changed to match LLVM's, which means /usr/include/clang/2.0
has been renamed to /usr/include/clang/2.8.
Obtained from: projects/clangbsd
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I used the following command to determine which source files were
unneeded:
| for i in `find lib/clang -name '*.o'`
| do
| MATCHES="`(nm -g --defined-only $i; nm -g --defined-only \
| usr.bin/clang/clang/clang) | sed -e 's/.* //' | \
| sort | uniq -d | wc -l`"
| [ $MATCHES -eq 0 ] && echo "$i: unneeded"
| done
This should slightly improve the build times.
|
|
|
|
|
|
|
|
| |
It seems GCC 4.2.1 on PowerPC miscompiles Clang, causing it to crash
when building even simple Hello World applications. Switch back to -O1
for this architecture.
Submitted by: nwhitehorn
|
|
|
|
|
|
|
|
|
| |
Even though it's nice to use posix_spawn() instead of manually using
fork()/exec(), it's better to disable this. FreeBSD 7 doesn't support
this interface. When enabled, we can't build tblgen, which prevents us
from building FreeBSD 9 on 7.
Tested by: raj
|
|
|
|
|
|
|
|
|
| |
I've looked at other places in the source tree where CLANG_VENDOR is
used and I suspect it might not be safe to use newlines here.
CLANG_VENDOR should just be defined to "FreeBSD ", just like the latest
Clang preview in OS X uses "Apple ". Properly use SVN_REVISION to define
it to the imported revision of Clang. I do want to have a date in there,
so slightly modify the code to support CLANG_VENDOR_SUFFIX.
|
|
|
|
|
| |
This ensures that the Clang binary doesn't change checksums every time
it's built.
|
|
|
|
|
| |
That way it's easier for the Clang folks to keep track of what we're
doing.
|
|
Approved by: ed (mentor)
|