V8 is Google's open source high-performance JavaScript and WebAssembly engine,
written in C++. It is used in Chrome and in Node.js, among others.
V8 implements ECMAScript and WebAssembly. V8 can run standalone, or can be
embedded into any C++ application.
V8 compiles and executes JavaScript source code, handles memory allocation for
objects, and garbage collects objects it no longer needs. V8's stop-the-world,
generational, accurate garbage collector is one of the keys to V8's performance.
V8's Git repository is located at https://chromium.googlesource.com/v8/v8.git,
with an official mirror on GitHub: https://github.com/v8/v8.
lang/v8: update to 15.5.35.25
- Initialize the attribute object before passing it to
pthread_attr_get_np() in PartitionAlloc's GetStackTop(), which
FreeBSD requires.
lang/v8: Misc build fixes
- aarch64: do not enable PartitionAlloc's ARM memory tagging support,
which needs Linux's <asm/hwcap.h>. It was enabled because the port
makes FreeBSD pass for Linux in GN.
- i386: V8 only uses PartitionAlloc together with pointer compression,
so its libraries are not built there. Do not try to install them.
- d8 refuses to start when the first 4 GB of the address space can not
be reserved. Only have it do so when ASLR is active, as
position-independent executables are loaded below 4 GB otherwise.
- Drop patches for files the build does not use, the EXAMPLES
leftovers and a substitution that no longer matches anything.
lang/v8: update to 15.5.35.20 (Chrome 155 stable)
- Enable Temporal. GN can only build the temporal_capi Rust crate with
the Chromium Rust toolchain, so build it with cargo as a static
library through a small wrapper crate (temporal_capi is no_std) and
have GN link that. Crate versions follow Chromium's Cargo.lock.
Time zone data is read from devel/icu; use the accessors libicuuc
exports instead of ICU's internal udatamem.h, which is not installed.
- Use libclang and its Python bindings from the llvm port for the new
metagen instance-types generator, and work around Cursor being
unhashable in the bindings before LLVM 21.
- Ignore check_includes_strict, which devel/gn does not know yet.
- Add the licenses of the statically linked crates.
- Depend on libicuuc.so, which is what gets linked, instead of
libicudata.so, and stop depending on glib, which was never linked.
- Drop DIST_SUBDIR; distfile names have been unique since the switch
to the GitHub mirror.
lang/v8: Fix fetch by fetching sub-dependencies from GitHub mirror
The +archive tarballs on chromium.googlesource.com are generated on
the fly with the time of the request as the mtime of every entry,
and the generated tarballs are not reproducible, so their size and
checksum change with each download and fetch fails with a size
or checksum mismatch.
To address this, fetch all sub-dependencies with GH_TUPLE from the
unofficial chromium-full-mirror organization on GitHub, which carries
the same commits and produces stable tarballs.
Because the chromium-full-mirror is an unofficial mirror, a new
verify-mirror target is added, which downloads every sub-dependency
from chromium.googlesource.com and compares the extracted tree with
(Only the first 15 lines of the commit message are shown above )
lang/v8: update to 15.4.80.20 (Chrome 154 stable)
- Update to 15.4.80.20 (Chrome 154.0.8037.97 stable pin)
- Update sub-dependency revisions from DEPS
- Add patch-.gn: use python3 from PATH instead of the hermetic
CPython CIPD package, which is not fetched; this also avoids a
host_cpu reference unsupported by devel/gn in the dotfile
- Add USES=llvm:min=20,build for proper LLVM toolchain selection
- Add 3 new sub-dependencies: cpu_features (chromium wrapper),
disarm, fadec
- Add ObtainCurrentThreadStackReservedLimit() for FreeBSD
- Remove upstreamed wasm-shuffle-reducer.cc patch
- Remove libcppgc.so and libthird_party_protobuf_protobuf_lite.so
(merged/removed upstream)
- Remove stale v8_use_libm_trig_functions GN arg (removed upstream)
(Only the first 15 lines of the commit message are shown above )
lang/v8: fix build with libc++ 19
As noted in the libc++ 19 release notes [1], std::char_traits<> is now
only provided for char, char8_t, char16_t, char32_t and wchar_t, and any
instantiation for other types will fail.
This causes lang/v8 to fail to compile with clang 19 and libc++ 19,
resulting in errors similar to:
/usr/include/c++/v1/string:820:42: error: implicit instantiation of undefined
template 'std::char_traits<unsigned short>'
820 | static_assert(is_same<_CharT, typename
traits_type::char_type>::value,
| ^
../../src/inspector/v8-string-conversions.cc:387:26: note: in instantiation of
template class 'std::basic_string<unsigned short>' requested here
387 | std::basic_string<UChar> UTF8ToUTF16(const char* stringStart, size_t
length) {
| ^
(Only the first 15 lines of the commit message are shown above )
all: remove explicit versions in USES=python for "3.x+"
The logic in USES=python will automatically convert this to 3.8+ by
itself.
Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.
finance/quickfix: mark BROKEN with PYTHON
libtool: compile: c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
^~~~~~~~~~
1 warning and 1 error generated.
Reviewed by: portmgr, vishwin, yuri
Differential Revision: <https://reviews.freebsd.org/D40568>
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
Remove support for FreeBSD 12.1 from various ports.
FreeBSD 12.1 reached end-of-life today. Adjust the message
for the wine ports while here, since stable/13 has branched.
Submitted by: rene
Reviewed by: jbeich, mandree, mat, osa
Approved by: portmgr (mat)
Differential Revision: https://reviews.freebsd.org/D28406
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.
This includes ports
- featuring USE_GCC=yes or USE_GCC=any,
- featuring USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and those
- with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.
PR: 222542
Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
Bump PORTREVISIONs for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
Bump PORTREVISIONS for ports depending on the canonical version of GCC and
lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
In particular that is ports with USE_GCC=yes, USE_GCC=any, or one of
gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
c++11-lang, c++0x, c11 requested via USES=compiler.
Improve shebangfix framework
- Support multiple values in *_OLD_CMD, i.e. we can now fix both
"/usr/bin/python" and "/usr/bin/env python" at the same time
- Default *_OLD_CMD values are now always appended, so you don't need to specify
them in individual ports
- Add lua support (depends on USES=lua)
- Add more default values, such as "/usr/bin/env foo" for python, perl, bash,
ruby and lua
- Shebangfix now matches whole words, e.g. we will no longer (erroneously)
replace "/usr/bin/perl5.005" with "${perl_CMD}5.005" (but "/usr/bin/perl -tt" is
still (correctly) replaced with "${perl_CMD} -tt")
Note that *_OLD_CMD items containing spaces must now be quoted (e.g.
perl_OLD_CMD=/bin/perl /usr/bin/perl "/usr/bin/env perl")
Update shebangfix usage according to new rules in many ports:
- Remove *_OLD_CMD for patterns now replaced by default
- Quote custom *_OLD_CMD which contain spaces
Fix shebangfix usage in many ports (irrelevant to infrastructure change):
- Remove redundant SHEBANG_LANG (no need to duplicate default langs)
- Remove redundant *_CMD (such as
python_CMD=${LOCALBASE}/bin/python${PYTHON_VER} when USES=python is present)
- Never use *_OLD_CMD in REINPLACE_CMD matchers, these should always look for
exact string
Approved by: portmgr (bapt)
Differential Revision: D3756
Switch default python_CMD used by shebangfix to ${PYTHON_CMD} for ports
using python
PR: 201077
Reviewed by: mat
With hat: portmgr
Differential Revision: https://reviews.freebsd.org/D2955
lang/v8, lang/v8-devel: Backport CVE fix
This fix has been backported instead of upgrading to a newer release as
the upstream release process is a complicated fast-moving target and the
current ports are using custom snapshots created by the port maintainer.
This will also limit the amount of potential fallout as we know the
existing v8 port works well enough to keep mongodb up to date.
PR: 201450
MFH: 2015Q3
Security: CVE-2015-5380
Security: 864e6f75-2372-11e5-86ff-14dae9d210b8
Add USES=alias to several ports
Alias is a new USES tool that allows DragonFly to masquerade as FreeBSD
by setting CFLAGS+= -D__FreeBSD__. For some ports, this fixes the build
without the need for additional patches.
Approved by: portmgr (bapt, blanket)
The MAP_NORESERVE flag to mmap() has never been implemented in FreeBSD and
is being removed. No portrev bump needed since the kernel will continue to
accept this flag for old binaries even after support for it in new binaries
is removed.
PR: 193961
Approved by: portmgr (antoine)
Remove backslashes from single- and double-quotes in COMMENT and _DESC
strings, that were passed through rather than escaping anything.
Approved by: portmgr (not really, but it touches unstaged ports)
Force numerous ports that fail to build with clang over to instead always
rely on gcc. The patch uses the new USE_GCC=any code in Mk/bsd.gcc.mk to
accomplish this.
The ports chosen were ports that blocked 2 or more ports from building with
clang. (There are several hundred other ports that still fail to build with
clang, even with this patch. This is merely one step along the way.)
Those interested in fixing these ports with clang, and have clang as their
default compiler, can simply set FORCE_BASE_CC_FOR_TESTING=yes.
For those who have gcc as their default compiler, this change is believed
to cause no change.
Hat: portmgr
Tested with: multiple runs on amd64-8-exp-bcm and 9-exp-clang, with various
combinations of patch/no-patch and flag settings.