2011-11-25 15:59:04 -05:00
|
|
|
# $FreeBSD$
|
|
|
|
|
|
2014-10-21 16:04:05 -04:00
|
|
|
.include <src.opts.mk>
|
|
|
|
|
|
2016-02-05 16:01:08 -05:00
|
|
|
PACKAGE= clibs
|
2017-01-09 17:46:47 -05:00
|
|
|
_LIBCXXRTDIR= ${SRCTOP}/contrib/libcxxrt
|
2019-12-20 14:53:05 -05:00
|
|
|
HDRDIR= ${SRCTOP}/contrib/llvm-project/libcxx/include
|
|
|
|
|
SRCDIR= ${SRCTOP}/contrib/llvm-project/libcxx/src
|
2012-06-02 07:00:48 -04:00
|
|
|
CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR}
|
2011-11-25 15:59:04 -05:00
|
|
|
|
|
|
|
|
.PATH: ${SRCDIR}
|
|
|
|
|
|
2012-06-02 07:00:48 -04:00
|
|
|
LIB= c++
|
|
|
|
|
SHLIB_MAJOR= 1
|
2013-08-03 12:23:43 -04:00
|
|
|
SHLIB_LDSCRIPT= libc++.ldscript
|
2011-11-25 15:59:04 -05:00
|
|
|
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= algorithm.cpp
|
|
|
|
|
SRCS+= any.cpp
|
2020-08-22 08:05:11 -04:00
|
|
|
SRCS+= atomic.cpp
|
|
|
|
|
SRCS+= barrier.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= bind.cpp
|
2018-08-02 14:24:03 -04:00
|
|
|
SRCS+= charconv.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= chrono.cpp
|
|
|
|
|
SRCS+= condition_variable.cpp
|
2019-08-28 16:05:55 -04:00
|
|
|
SRCS+= condition_variable_destructor.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= debug.cpp
|
|
|
|
|
SRCS+= exception.cpp
|
2019-08-28 16:05:55 -04:00
|
|
|
SRCS+= filesystem/directory_iterator.cpp
|
|
|
|
|
SRCS+= filesystem/int128_builtins.cpp
|
|
|
|
|
SRCS+= filesystem/operations.cpp
|
2017-04-22 14:59:50 -04:00
|
|
|
SRCS+= functional.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= future.cpp
|
|
|
|
|
SRCS+= hash.cpp
|
|
|
|
|
SRCS+= ios.cpp
|
Merge llvm-project 12.0.1 release and follow-up fixes
Merge llvm-project main llvmorg-12-init-17869-g8e464dd76bef
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before the
upstream release/12.x branch was created.
PR: 255570
(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
Merge llvm-project 12.0.0 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.
PR: 255570
(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)
Disable strict-fp for powerpcspe, as it does not work properly yet
Merge commit 5c18d1136665 from llvm git (by Qiu Chaofan)
[SPE] Disable strict-fp for SPE by default
As discussed in PR50385, strict-fp on PowerPC SPE has not been
handled well. This patch disables it by default for SPE.
Reviewed By: nemanjai, vit9696, jhibbits
Differential Revision: https://reviews.llvm.org/D103235
PR: 255570
(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)
Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gcc
Merge commit 52e9d80d5db2 from llvm git (by Jason Liu):
[libc++] add `inline` for __open's definition in ifstream and ofstream
Summary:
When building with gcc on AIX, it seems that gcc does not like the
`always_inline` without the `inline` keyword.
So adding the inline keywords in for __open in ifstream and ofstream.
That will also make it consistent with __open in basic_filebuf
(it seems we added `inline` there before for gcc build as well).
Differential Revision: https://reviews.llvm.org/D99422
PR: 255570
(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)
Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on arm
Otherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,
stating that __register_frame is undefined. This function is normally
provided by libunwind, but explicitly not for the ARM Exception ABI.
Reported by: oh
PR: 255570
(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)
Merge llvm-project 12.0.1 rc2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.
PR: 255570
(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)
Revert libunwind change to fix backtrace segfault on aarch64
Revert commit 22b615a96593 from llvm git (by Daniel Kiss):
[libunwind] Support for leaf function unwinding.
Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.
Ryan Prichard provided code for the tests.
Reviewed By: #libunwind, mstorsjo
Differential Revision: https://reviews.llvm.org/D83573
Reland with limit the test to the x86_64-linux target.
Bisection has shown that this particular upstream commit causes programs
using backtrace(3) on aarch64 to segfault. This affects the lang/rust
port, for instance. Until we can upstream to fix this problem, revert
the commit for now.
Reported by: mikael
PR: 256864
(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)
Merge llvm-project 12.0.1 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.
PR: 255570
(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)
compilert-rt: build out-of-line LSE atomics helpers for aarch64
Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics for
aarch64. This requires a bunch of helper functions in libcompiler_rt.a,
to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".
(Note: of course you can use -mno-outline-atomics as a workaround too,
but this would negate the potential performance benefit of the faster
LSE instructions.)
Bump __FreeBSD_version so ports maintainers can easily detect this.
PR: 257392
(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
2021-06-13 15:31:46 -04:00
|
|
|
SRCS+= ios.instantiations.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= iostream.cpp
|
|
|
|
|
SRCS+= locale.cpp
|
|
|
|
|
SRCS+= memory.cpp
|
|
|
|
|
SRCS+= mutex.cpp
|
2019-08-28 16:05:55 -04:00
|
|
|
SRCS+= mutex_destructor.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= new.cpp
|
|
|
|
|
SRCS+= optional.cpp
|
|
|
|
|
SRCS+= random.cpp
|
2020-08-22 08:05:11 -04:00
|
|
|
SRCS+= random_shuffle.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
SRCS+= regex.cpp
|
|
|
|
|
SRCS+= shared_mutex.cpp
|
|
|
|
|
SRCS+= stdexcept.cpp
|
|
|
|
|
SRCS+= string.cpp
|
|
|
|
|
SRCS+= strstream.cpp
|
|
|
|
|
SRCS+= system_error.cpp
|
|
|
|
|
SRCS+= thread.cpp
|
|
|
|
|
SRCS+= typeinfo.cpp
|
|
|
|
|
SRCS+= utility.cpp
|
|
|
|
|
SRCS+= valarray.cpp
|
2017-02-19 09:53:59 -05:00
|
|
|
SRCS+= variant.cpp
|
2017-06-16 20:09:34 -04:00
|
|
|
SRCS+= vector.cpp
|
2017-01-09 17:46:47 -05:00
|
|
|
|
|
|
|
|
CXXRT_SRCS+= auxhelper.cc
|
|
|
|
|
CXXRT_SRCS+= dynamic_cast.cc
|
|
|
|
|
CXXRT_SRCS+= exception.cc
|
|
|
|
|
CXXRT_SRCS+= guard.cc
|
|
|
|
|
CXXRT_SRCS+= libelftc_dem_gnu3.c
|
|
|
|
|
CXXRT_SRCS+= memory.cc
|
|
|
|
|
CXXRT_SRCS+= stdexcept.cc
|
|
|
|
|
CXXRT_SRCS+= terminate.cc
|
|
|
|
|
CXXRT_SRCS+= typeinfo.cc
|
2012-08-25 09:15:44 -04:00
|
|
|
|
|
|
|
|
.for _S in ${CXXRT_SRCS}
|
2016-03-11 18:45:56 -05:00
|
|
|
CLEANFILES+= cxxrt_${_S}
|
2012-08-25 09:15:44 -04:00
|
|
|
STATICOBJS+= cxxrt_${_S:R}.o
|
2015-12-01 17:20:04 -05:00
|
|
|
cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOMETA
|
2015-11-25 14:44:43 -05:00
|
|
|
ln -sf ${.ALLSRC} ${.TARGET}
|
2012-08-25 09:15:44 -04:00
|
|
|
.endfor
|
|
|
|
|
|
2020-09-11 09:28:37 -04:00
|
|
|
WARNS?= 0
|
2017-05-29 18:09:23 -04:00
|
|
|
CFLAGS+= -isystem ${HDRDIR}
|
|
|
|
|
CFLAGS+= -isystem ${_LIBCXXRTDIR}
|
|
|
|
|
CFLAGS+= -nostdinc++
|
|
|
|
|
CFLAGS+= -nostdlib
|
|
|
|
|
CFLAGS+= -D_LIBCPP_BUILDING_LIBRARY
|
|
|
|
|
CFLAGS+= -DLIBCXXRT
|
2020-01-27 14:18:36 -05:00
|
|
|
CFLAGS+= -ffunction-sections
|
|
|
|
|
CFLAGS+= -fdata-sections
|
|
|
|
|
CXXSTD?= c++14
|
2011-11-25 15:59:04 -05:00
|
|
|
|
2014-11-25 06:07:26 -05:00
|
|
|
LIBADD+= cxxrt
|
Merge llvm-project 12.0.1 release and follow-up fixes
Merge llvm-project main llvmorg-12-init-17869-g8e464dd76bef
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before the
upstream release/12.x branch was created.
PR: 255570
(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
Merge llvm-project 12.0.0 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.
PR: 255570
(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)
Disable strict-fp for powerpcspe, as it does not work properly yet
Merge commit 5c18d1136665 from llvm git (by Qiu Chaofan)
[SPE] Disable strict-fp for SPE by default
As discussed in PR50385, strict-fp on PowerPC SPE has not been
handled well. This patch disables it by default for SPE.
Reviewed By: nemanjai, vit9696, jhibbits
Differential Revision: https://reviews.llvm.org/D103235
PR: 255570
(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)
Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gcc
Merge commit 52e9d80d5db2 from llvm git (by Jason Liu):
[libc++] add `inline` for __open's definition in ifstream and ofstream
Summary:
When building with gcc on AIX, it seems that gcc does not like the
`always_inline` without the `inline` keyword.
So adding the inline keywords in for __open in ifstream and ofstream.
That will also make it consistent with __open in basic_filebuf
(it seems we added `inline` there before for gcc build as well).
Differential Revision: https://reviews.llvm.org/D99422
PR: 255570
(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)
Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on arm
Otherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,
stating that __register_frame is undefined. This function is normally
provided by libunwind, but explicitly not for the ARM Exception ABI.
Reported by: oh
PR: 255570
(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)
Merge llvm-project 12.0.1 rc2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.
PR: 255570
(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)
Revert libunwind change to fix backtrace segfault on aarch64
Revert commit 22b615a96593 from llvm git (by Daniel Kiss):
[libunwind] Support for leaf function unwinding.
Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.
Ryan Prichard provided code for the tests.
Reviewed By: #libunwind, mstorsjo
Differential Revision: https://reviews.llvm.org/D83573
Reland with limit the test to the x86_64-linux target.
Bisection has shown that this particular upstream commit causes programs
using backtrace(3) on aarch64 to segfault. This affects the lang/rust
port, for instance. Until we can upstream to fix this problem, revert
the commit for now.
Reported by: mikael
PR: 256864
(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)
Merge llvm-project 12.0.1 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.
PR: 255570
(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)
compilert-rt: build out-of-line LSE atomics helpers for aarch64
Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics for
aarch64. This requires a bunch of helper functions in libcompiler_rt.a,
to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".
(Note: of course you can use -mno-outline-atomics as a workaround too,
but this would negate the potential performance benefit of the faster
LSE instructions.)
Bump __FreeBSD_version so ports maintainers can easily detect this.
PR: 257392
(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
2021-06-13 15:31:46 -04:00
|
|
|
INCSGROUPS= STD MEM EXP EXT
|
2011-11-25 15:59:04 -05:00
|
|
|
|
Merge llvm-project 12.0.1 release and follow-up fixes
Merge llvm-project main llvmorg-12-init-17869-g8e464dd76bef
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before the
upstream release/12.x branch was created.
PR: 255570
(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
Merge llvm-project 12.0.0 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.
PR: 255570
(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)
Disable strict-fp for powerpcspe, as it does not work properly yet
Merge commit 5c18d1136665 from llvm git (by Qiu Chaofan)
[SPE] Disable strict-fp for SPE by default
As discussed in PR50385, strict-fp on PowerPC SPE has not been
handled well. This patch disables it by default for SPE.
Reviewed By: nemanjai, vit9696, jhibbits
Differential Revision: https://reviews.llvm.org/D103235
PR: 255570
(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)
Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gcc
Merge commit 52e9d80d5db2 from llvm git (by Jason Liu):
[libc++] add `inline` for __open's definition in ifstream and ofstream
Summary:
When building with gcc on AIX, it seems that gcc does not like the
`always_inline` without the `inline` keyword.
So adding the inline keywords in for __open in ifstream and ofstream.
That will also make it consistent with __open in basic_filebuf
(it seems we added `inline` there before for gcc build as well).
Differential Revision: https://reviews.llvm.org/D99422
PR: 255570
(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)
Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on arm
Otherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,
stating that __register_frame is undefined. This function is normally
provided by libunwind, but explicitly not for the ARM Exception ABI.
Reported by: oh
PR: 255570
(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)
Merge llvm-project 12.0.1 rc2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.
PR: 255570
(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)
Revert libunwind change to fix backtrace segfault on aarch64
Revert commit 22b615a96593 from llvm git (by Daniel Kiss):
[libunwind] Support for leaf function unwinding.
Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.
Ryan Prichard provided code for the tests.
Reviewed By: #libunwind, mstorsjo
Differential Revision: https://reviews.llvm.org/D83573
Reland with limit the test to the x86_64-linux target.
Bisection has shown that this particular upstream commit causes programs
using backtrace(3) on aarch64 to segfault. This affects the lang/rust
port, for instance. Until we can upstream to fix this problem, revert
the commit for now.
Reported by: mikael
PR: 256864
(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)
Merge llvm-project 12.0.1 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.
PR: 255570
(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)
compilert-rt: build out-of-line LSE atomics helpers for aarch64
Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics for
aarch64. This requires a bunch of helper functions in libcompiler_rt.a,
to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".
(Note: of course you can use -mno-outline-atomics as a workaround too,
but this would negate the potential performance benefit of the faster
LSE instructions.)
Bump __FreeBSD_version so ports maintainers can easily detect this.
PR: 257392
(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
2021-06-13 15:31:46 -04:00
|
|
|
STD_HEADERS+= __availability
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= __bit_reference
|
Merge llvm-project 12.0.1 release and follow-up fixes
Merge llvm-project main llvmorg-12-init-17869-g8e464dd76bef
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before the
upstream release/12.x branch was created.
PR: 255570
(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
Merge llvm-project 12.0.0 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.
PR: 255570
(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)
Disable strict-fp for powerpcspe, as it does not work properly yet
Merge commit 5c18d1136665 from llvm git (by Qiu Chaofan)
[SPE] Disable strict-fp for SPE by default
As discussed in PR50385, strict-fp on PowerPC SPE has not been
handled well. This patch disables it by default for SPE.
Reviewed By: nemanjai, vit9696, jhibbits
Differential Revision: https://reviews.llvm.org/D103235
PR: 255570
(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)
Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gcc
Merge commit 52e9d80d5db2 from llvm git (by Jason Liu):
[libc++] add `inline` for __open's definition in ifstream and ofstream
Summary:
When building with gcc on AIX, it seems that gcc does not like the
`always_inline` without the `inline` keyword.
So adding the inline keywords in for __open in ifstream and ofstream.
That will also make it consistent with __open in basic_filebuf
(it seems we added `inline` there before for gcc build as well).
Differential Revision: https://reviews.llvm.org/D99422
PR: 255570
(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)
Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on arm
Otherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,
stating that __register_frame is undefined. This function is normally
provided by libunwind, but explicitly not for the ARM Exception ABI.
Reported by: oh
PR: 255570
(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)
Merge llvm-project 12.0.1 rc2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.
PR: 255570
(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)
Revert libunwind change to fix backtrace segfault on aarch64
Revert commit 22b615a96593 from llvm git (by Daniel Kiss):
[libunwind] Support for leaf function unwinding.
Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.
Ryan Prichard provided code for the tests.
Reviewed By: #libunwind, mstorsjo
Differential Revision: https://reviews.llvm.org/D83573
Reland with limit the test to the x86_64-linux target.
Bisection has shown that this particular upstream commit causes programs
using backtrace(3) on aarch64 to segfault. This affects the lang/rust
port, for instance. Until we can upstream to fix this problem, revert
the commit for now.
Reported by: mikael
PR: 256864
(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)
Merge llvm-project 12.0.1 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.
PR: 255570
(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)
compilert-rt: build out-of-line LSE atomics helpers for aarch64
Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics for
aarch64. This requires a bunch of helper functions in libcompiler_rt.a,
to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".
(Note: of course you can use -mno-outline-atomics as a workaround too,
but this would negate the potential performance benefit of the faster
LSE instructions.)
Bump __FreeBSD_version so ports maintainers can easily detect this.
PR: 257392
(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
2021-06-13 15:31:46 -04:00
|
|
|
STD_HEADERS+= __bits
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= __bsd_locale_defaults.h
|
|
|
|
|
STD_HEADERS+= __bsd_locale_fallbacks.h
|
|
|
|
|
STD_HEADERS+= __debug
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= __errc
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= __functional_03
|
|
|
|
|
STD_HEADERS+= __functional_base
|
|
|
|
|
STD_HEADERS+= __functional_base_03
|
|
|
|
|
STD_HEADERS+= __hash_table
|
|
|
|
|
STD_HEADERS+= __libcpp_version
|
|
|
|
|
STD_HEADERS+= __locale
|
|
|
|
|
STD_HEADERS+= __mutex_base
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= __node_handle
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= __nullptr
|
|
|
|
|
STD_HEADERS+= __split_buffer
|
|
|
|
|
STD_HEADERS+= __sso_allocator
|
|
|
|
|
STD_HEADERS+= __std_stream
|
|
|
|
|
STD_HEADERS+= __string
|
|
|
|
|
STD_HEADERS+= __threading_support
|
|
|
|
|
STD_HEADERS+= __tree
|
|
|
|
|
STD_HEADERS+= __tuple
|
2017-06-01 18:47:02 -04:00
|
|
|
STD_HEADERS+= __undef_macros
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= algorithm
|
|
|
|
|
STD_HEADERS+= any
|
|
|
|
|
STD_HEADERS+= array
|
|
|
|
|
STD_HEADERS+= atomic
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= barrier
|
2019-01-22 14:03:51 -05:00
|
|
|
STD_HEADERS+= bit
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= bitset
|
|
|
|
|
STD_HEADERS+= cassert
|
|
|
|
|
STD_HEADERS+= ccomplex
|
|
|
|
|
STD_HEADERS+= cctype
|
|
|
|
|
STD_HEADERS+= cerrno
|
|
|
|
|
STD_HEADERS+= cfenv
|
|
|
|
|
STD_HEADERS+= cfloat
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= charconv
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= chrono
|
|
|
|
|
STD_HEADERS+= cinttypes
|
|
|
|
|
STD_HEADERS+= ciso646
|
|
|
|
|
STD_HEADERS+= climits
|
|
|
|
|
STD_HEADERS+= clocale
|
|
|
|
|
STD_HEADERS+= cmath
|
|
|
|
|
STD_HEADERS+= codecvt
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= compare
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= complex
|
|
|
|
|
STD_HEADERS+= complex.h
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= concepts
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= condition_variable
|
|
|
|
|
STD_HEADERS+= csetjmp
|
|
|
|
|
STD_HEADERS+= csignal
|
|
|
|
|
STD_HEADERS+= cstdarg
|
|
|
|
|
STD_HEADERS+= cstdbool
|
|
|
|
|
STD_HEADERS+= cstddef
|
|
|
|
|
STD_HEADERS+= cstdint
|
|
|
|
|
STD_HEADERS+= cstdio
|
|
|
|
|
STD_HEADERS+= cstdlib
|
|
|
|
|
STD_HEADERS+= cstring
|
|
|
|
|
STD_HEADERS+= ctgmath
|
|
|
|
|
STD_HEADERS+= ctime
|
|
|
|
|
STD_HEADERS+= ctype.h
|
|
|
|
|
STD_HEADERS+= cwchar
|
|
|
|
|
STD_HEADERS+= cwctype
|
|
|
|
|
STD_HEADERS+= deque
|
|
|
|
|
STD_HEADERS+= errno.h
|
|
|
|
|
STD_HEADERS+= exception
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= execution
|
2019-08-28 16:05:55 -04:00
|
|
|
STD_HEADERS+= fenv.h
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= filesystem
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= float.h
|
|
|
|
|
STD_HEADERS+= forward_list
|
|
|
|
|
STD_HEADERS+= fstream
|
|
|
|
|
STD_HEADERS+= functional
|
|
|
|
|
STD_HEADERS+= future
|
|
|
|
|
STD_HEADERS+= initializer_list
|
|
|
|
|
STD_HEADERS+= inttypes.h
|
|
|
|
|
STD_HEADERS+= iomanip
|
|
|
|
|
STD_HEADERS+= ios
|
|
|
|
|
STD_HEADERS+= iosfwd
|
|
|
|
|
STD_HEADERS+= iostream
|
|
|
|
|
STD_HEADERS+= istream
|
|
|
|
|
STD_HEADERS+= iterator
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= latch
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= limits
|
|
|
|
|
STD_HEADERS+= limits.h
|
|
|
|
|
STD_HEADERS+= list
|
|
|
|
|
STD_HEADERS+= locale
|
|
|
|
|
STD_HEADERS+= locale.h
|
|
|
|
|
STD_HEADERS+= map
|
|
|
|
|
STD_HEADERS+= math.h
|
|
|
|
|
STD_HEADERS+= memory
|
|
|
|
|
STD_HEADERS+= mutex
|
|
|
|
|
STD_HEADERS+= new
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= numbers
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= numeric
|
|
|
|
|
STD_HEADERS+= optional
|
|
|
|
|
STD_HEADERS+= ostream
|
|
|
|
|
STD_HEADERS+= queue
|
|
|
|
|
STD_HEADERS+= random
|
|
|
|
|
STD_HEADERS+= ratio
|
|
|
|
|
STD_HEADERS+= regex
|
|
|
|
|
STD_HEADERS+= scoped_allocator
|
2021-06-03 14:53:18 -04:00
|
|
|
STD_HEADERS+= semaphore
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= set
|
|
|
|
|
STD_HEADERS+= setjmp.h
|
|
|
|
|
STD_HEADERS+= shared_mutex
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= span
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= sstream
|
|
|
|
|
STD_HEADERS+= stack
|
|
|
|
|
STD_HEADERS+= stdbool.h
|
|
|
|
|
STD_HEADERS+= stddef.h
|
|
|
|
|
STD_HEADERS+= stdexcept
|
|
|
|
|
STD_HEADERS+= stdint.h
|
|
|
|
|
STD_HEADERS+= stdio.h
|
|
|
|
|
STD_HEADERS+= stdlib.h
|
|
|
|
|
STD_HEADERS+= streambuf
|
|
|
|
|
STD_HEADERS+= string
|
|
|
|
|
STD_HEADERS+= string.h
|
|
|
|
|
STD_HEADERS+= string_view
|
|
|
|
|
STD_HEADERS+= strstream
|
|
|
|
|
STD_HEADERS+= system_error
|
|
|
|
|
STD_HEADERS+= tgmath.h
|
|
|
|
|
STD_HEADERS+= thread
|
|
|
|
|
STD_HEADERS+= tuple
|
|
|
|
|
STD_HEADERS+= type_traits
|
|
|
|
|
STD_HEADERS+= typeindex
|
|
|
|
|
STD_HEADERS+= typeinfo
|
|
|
|
|
STD_HEADERS+= unordered_map
|
|
|
|
|
STD_HEADERS+= unordered_set
|
|
|
|
|
STD_HEADERS+= utility
|
|
|
|
|
STD_HEADERS+= valarray
|
|
|
|
|
STD_HEADERS+= variant
|
|
|
|
|
STD_HEADERS+= vector
|
2018-08-02 14:24:03 -04:00
|
|
|
STD_HEADERS+= version
|
2017-01-09 17:46:47 -05:00
|
|
|
STD_HEADERS+= wchar.h
|
|
|
|
|
STD_HEADERS+= wctype.h
|
|
|
|
|
|
|
|
|
|
RT_HEADERS+= cxxabi.h
|
|
|
|
|
RT_HEADERS+= unwind-arm.h
|
|
|
|
|
RT_HEADERS+= unwind-itanium.h
|
|
|
|
|
RT_HEADERS+= unwind.h
|
2011-11-25 15:59:04 -05:00
|
|
|
|
|
|
|
|
.for hdr in ${STD_HEADERS}
|
2012-06-02 07:00:48 -04:00
|
|
|
STD+= ${HDRDIR}/${hdr}
|
2016-05-28 12:38:09 -04:00
|
|
|
INCSLINKS+= ../${hdr} ${CXXINCLUDEDIR}/tr1/${hdr}
|
2011-11-25 15:59:04 -05:00
|
|
|
.endfor
|
2012-06-02 07:07:19 -04:00
|
|
|
.for hdr in ${RT_HEADERS}
|
2015-12-01 17:20:04 -05:00
|
|
|
STD+= ${_LIBCXXRTDIR}/${hdr}
|
2012-06-02 07:07:19 -04:00
|
|
|
.endfor
|
2012-06-02 07:00:48 -04:00
|
|
|
STDDIR= ${CXXINCLUDEDIR}
|
2011-11-25 15:59:04 -05:00
|
|
|
|
Merge llvm-project 12.0.1 release and follow-up fixes
Merge llvm-project main llvmorg-12-init-17869-g8e464dd76bef
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12-init-17869-g8e464dd76bef, the last commit before the
upstream release/12.x branch was created.
PR: 255570
(cherry picked from commit e8d8bef961a50d4dc22501cde4fb9fb0be1b2532)
Merge llvm-project 12.0.0 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.0-0-gd28af7c654d8, a.k.a. 12.0.0 release.
PR: 255570
(cherry picked from commit d409305fa3838fb39b38c26fc085fb729b8766d5)
Disable strict-fp for powerpcspe, as it does not work properly yet
Merge commit 5c18d1136665 from llvm git (by Qiu Chaofan)
[SPE] Disable strict-fp for SPE by default
As discussed in PR50385, strict-fp on PowerPC SPE has not been
handled well. This patch disables it by default for SPE.
Reviewed By: nemanjai, vit9696, jhibbits
Differential Revision: https://reviews.llvm.org/D103235
PR: 255570
(cherry picked from commit 715df83abc049b23d9acddc81f2480bd4c056d64)
Apply upstream libc++ fix to allow building with devel/xxx-xtoolchain-gcc
Merge commit 52e9d80d5db2 from llvm git (by Jason Liu):
[libc++] add `inline` for __open's definition in ifstream and ofstream
Summary:
When building with gcc on AIX, it seems that gcc does not like the
`always_inline` without the `inline` keyword.
So adding the inline keywords in for __open in ifstream and ofstream.
That will also make it consistent with __open in basic_filebuf
(it seems we added `inline` there before for gcc build as well).
Differential Revision: https://reviews.llvm.org/D99422
PR: 255570
(cherry picked from commit d099db25464b826c5724cf2fb5b22292bbe15f6e)
Undefine HAVE_(DE)REGISTER_FRAME in llvm's config.h on arm
Otherwise, the lli tool (enable by WITH_CLANG_EXTRAS) won't link on arm,
stating that __register_frame is undefined. This function is normally
provided by libunwind, but explicitly not for the ARM Exception ABI.
Reported by: oh
PR: 255570
(cherry picked from commit f336b45e943c7f9a90ffcea1a6c4c7039e54c73c)
Merge llvm-project 12.0.1 rc2
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-rc2-0-ge7dac564cd0e, a.k.a. 12.0.1 rc2.
PR: 255570
(cherry picked from commit 23408297fbf3089f0388a8873b02fa75ab3f5bb9)
Revert libunwind change to fix backtrace segfault on aarch64
Revert commit 22b615a96593 from llvm git (by Daniel Kiss):
[libunwind] Support for leaf function unwinding.
Unwinding leaf function is useful in cases when the backtrace finds a
leaf function for example when it caused a signal.
This patch also add the support for the DW_CFA_undefined because it marks
the end of the frames.
Ryan Prichard provided code for the tests.
Reviewed By: #libunwind, mstorsjo
Differential Revision: https://reviews.llvm.org/D83573
Reland with limit the test to the x86_64-linux target.
Bisection has shown that this particular upstream commit causes programs
using backtrace(3) on aarch64 to segfault. This affects the lang/rust
port, for instance. Until we can upstream to fix this problem, revert
the commit for now.
Reported by: mikael
PR: 256864
(cherry picked from commit 5866c369e4fd917c0d456f0f10b92ee354b82279)
Merge llvm-project 12.0.1 release
This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
openmp to llvmorg-12.0.1-0-gfed41342a82f, a.k.a. 12.0.1 release.
PR: 255570
(cherry picked from commit 4652422eb477731f284b1345afeefef7f269da50)
compilert-rt: build out-of-line LSE atomics helpers for aarch64
Both clang >= 12 and gcc >= 10.1 now default to -moutline-atomics for
aarch64. This requires a bunch of helper functions in libcompiler_rt.a,
to avoid link errors like "undefined symbol: __aarch64_ldadd8_acq_rel".
(Note: of course you can use -mno-outline-atomics as a workaround too,
but this would negate the potential performance benefit of the faster
LSE instructions.)
Bump __FreeBSD_version so ports maintainers can easily detect this.
PR: 257392
(cherry picked from commit cc55ee8009a550810d38777fd6ace9abf3a2f6b4)
2021-06-13 15:31:46 -04:00
|
|
|
# Special case for __config, which as of libc++ 12.0.0 is produced by
|
|
|
|
|
# concatenating the locally generated __config_site and the upstream __config
|
|
|
|
|
# files.
|
|
|
|
|
CONFIG_HEADER= __config
|
|
|
|
|
|
|
|
|
|
${CONFIG_HEADER}: ${.CURDIR}/__config_site ${HDRDIR}/__config
|
|
|
|
|
cat ${.ALLSRC} > ${.TARGET}
|
|
|
|
|
STD+= ${CONFIG_HEADER}
|
|
|
|
|
CLEANFILES+= ${CONFIG_HEADER}
|
|
|
|
|
|
|
|
|
|
MEM_HEADERS+= allocator_traits.h
|
|
|
|
|
MEM_HEADERS+= base.h
|
|
|
|
|
MEM_HEADERS+= pointer_traits.h
|
|
|
|
|
MEM_HEADERS+= utilities.h
|
|
|
|
|
|
|
|
|
|
.for hdr in ${MEM_HEADERS}
|
|
|
|
|
MEM+= ${HDRDIR}/__memory/${hdr}
|
|
|
|
|
.endfor
|
|
|
|
|
MEMDIR= ${CXXINCLUDEDIR}/__memory
|
|
|
|
|
|
2017-01-09 17:46:47 -05:00
|
|
|
EXP_HEADERS+= __config
|
|
|
|
|
EXP_HEADERS+= __memory
|
|
|
|
|
EXP_HEADERS+= algorithm
|
2017-05-29 18:09:23 -04:00
|
|
|
EXP_HEADERS+= coroutine
|
2017-01-09 17:46:47 -05:00
|
|
|
EXP_HEADERS+= deque
|
|
|
|
|
EXP_HEADERS+= filesystem
|
|
|
|
|
EXP_HEADERS+= forward_list
|
|
|
|
|
EXP_HEADERS+= functional
|
|
|
|
|
EXP_HEADERS+= iterator
|
|
|
|
|
EXP_HEADERS+= list
|
|
|
|
|
EXP_HEADERS+= map
|
|
|
|
|
EXP_HEADERS+= memory_resource
|
|
|
|
|
EXP_HEADERS+= propagate_const
|
|
|
|
|
EXP_HEADERS+= regex
|
|
|
|
|
EXP_HEADERS+= set
|
2018-08-02 14:24:03 -04:00
|
|
|
EXP_HEADERS+= simd
|
2017-01-09 17:46:47 -05:00
|
|
|
EXP_HEADERS+= string
|
|
|
|
|
EXP_HEADERS+= type_traits
|
|
|
|
|
EXP_HEADERS+= unordered_map
|
|
|
|
|
EXP_HEADERS+= unordered_set
|
|
|
|
|
EXP_HEADERS+= utility
|
|
|
|
|
EXP_HEADERS+= vector
|
2014-01-30 02:44:22 -05:00
|
|
|
|
|
|
|
|
.for hdr in ${EXP_HEADERS}
|
|
|
|
|
EXP+= ${HDRDIR}/experimental/${hdr}
|
|
|
|
|
.endfor
|
|
|
|
|
EXPDIR= ${CXXINCLUDEDIR}/experimental
|
|
|
|
|
|
2017-01-09 17:46:47 -05:00
|
|
|
EXT_HEADERS+= __hash
|
|
|
|
|
EXT_HEADERS+= hash_map
|
|
|
|
|
EXT_HEADERS+= hash_set
|
2011-11-25 15:59:04 -05:00
|
|
|
|
|
|
|
|
.for hdr in ${EXT_HEADERS}
|
2012-06-02 07:00:48 -04:00
|
|
|
EXT+= ${HDRDIR}/ext/${hdr}
|
2011-11-25 15:59:04 -05:00
|
|
|
.endfor
|
2012-06-02 07:00:48 -04:00
|
|
|
EXTDIR= ${CXXINCLUDEDIR}/ext
|
2011-11-25 15:59:04 -05:00
|
|
|
|
|
|
|
|
.include <bsd.lib.mk>
|