This is the first of several commits to contribute Linux on z Systems
(s390/s390x) port of V8. We will be breaking up the changes into several
(hopefully) logical commits.
This commit contains the changes to V8 Makefile and build toolchains to
introduce S390 macros and compiler options. Just for awareness for reviewers
is that s390 is 31-bit (not 32!) big-endian platform on Linux on z. (MSB of address
is used to distinguish between 24-bit vs 31-bit addressing!) s390x is
64-bit Linux on z. Names follow the general linux convention on the platform.
A quick roadmap on upcoming commits:
- Add \#include of S390 header files in common files
- S390 related tests + tooling changes
- printf macro for printing size_t values.
- S390 platform-specific code generation code (bulk of changes!)
R=danno@chromium.org,svenpanne@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,mtbrandyberry@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/1585813002
Cr-Commit-Position: refs/heads/master@{#33304}
Updated toolchain.gypi to support v8 using CLANG on MIPS. These changes
include using integrated assembler with CLANG, and disabling options
used by GCC which are not supported by CLANG.
Reland https://codereview.chromium.org/1519493002 with fix to remove
duplicated 'conditions' sections.
TEST=
BUG=
Review URL: https://codereview.chromium.org/1530153003
Cr-Commit-Position: refs/heads/master@{#32963}
Reason for revert:
[Sheriff] This seems to break chromium runhooks for android:
https://build.chromium.org/p/client.v8.fyi/builders/Android%20Builder/builds/1794
Original issue's description:
> MIPS: Enable v8 compilation with CLANG.
>
> Updated toolchain.gypi to support v8 using CLANG on MIPS. These changes
> include using integrated assembler with CLANG, and disabling options
> used by GCC which are not supported by CLANG.
>
> TEST=
> BUG=
>
> Committed: https://crrev.com/0bae3c393575de4503cb179faa220e597e35dd8f
> Cr-Commit-Position: refs/heads/master@{#32780}
TBR=paul.lind@imgtec.com,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,ivica.bogosavljevic@imgtec.com,jkummerow@chromium.org,Ilija.Pavlovic@imgtec.com,Ilija.Pavlovic@imgtec.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1520823002
Cr-Commit-Position: refs/heads/master@{#32781}
Updated toolchain.gypi to support v8 using CLANG on MIPS. These changes
include using integrated assembler with CLANG, and disabling options
used by GCC which are not supported by CLANG.
TEST=
BUG=
Review URL: https://codereview.chromium.org/1519493002
Cr-Commit-Position: refs/heads/master@{#32780}
v8 is optimized for speed. Because GCC LTO merges flags at link time,
we disable LTO to prevent any -O2 flags from taking precedence over v8's
-Os flag. However, LLVM LTO does not work this way so we keep LTO enabled
under LLVM.
This fixes the ARM build in the cfi_vptr==1 configuration, which requires
LLVM LTO.
R=adamk@chromium.org
BUG=chromium:469376
LOG=N
Review URL: https://codereview.chromium.org/1295673002
Cr-Commit-Position: refs/heads/master@{#30455}
Remove references to android_webview_build now that we no longer support
that build configuration. This also removes use_system_stlport which was
only supported with android_webview_build.
BUG=chromium:440793
LOG=n
Review URL: https://codereview.chromium.org/1069663002
Cr-Commit-Position: refs/heads/master@{#27708}
We were able to remove most of our changes needed to compile
on AIX with an earlier compiler level. These changes are the
remaining ones.
The changes in heap/heap.cc are needed because otherwise the
compiler complains that result is potentially used before
it is initialized.
The changes in heap/mark-compact.cc are required because
AIX supports the full 64 bit address range so the check
being guarded is invalid.
The changes in build/toolchain.gypi and
test/cctest/cctest/gyp are aix only and are adjust the
compile/link options to allow the AIX build to succeed.
modified: build/toolchain.gypi
modified: src/heap/heap.cc
modified: src/heap/mark-compact.cc
modified: test/cctest/cctest.gyp
R=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1013833002
Cr-Commit-Position: refs/heads/master@{#27255}
The _GLIBCXX_DEBUG macro is now set by default for Linux Debug builds
and can be disabled using the disable_glibcxx_debug=1 setting
(compatible with Chrome). This will help us catch problems earlier.
BUG=v8:3638
LOG=n
Review URL: https://codereview.chromium.org/946283003
Cr-Commit-Position: refs/heads/master@{#26790}
Also enabled concurrent linking with gold on Linux.
Mostly copy and paste from Chromium with customization for
V8 where necessary.
BUG=v8:3880
LOG=n
Review URL: https://codereview.chromium.org/896703003
Cr-Commit-Position: refs/heads/master@{#26536}
Contribution of PowerPC port (continuation of 422063005 and 817143002). This patch covers
the key changes needed to the common files needed to support AIX. Subsequent
patches will cover:
- changes to update the ppc directories so they are current with the changes
in the rest of the project.
- remaining AIX changes not resolved by 4.8 compiler
- individual optimizations for PPC
This is based off of the GitHub repository
https://github.com/andrewlow/v8ppcR=danno@chromium.org, svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/866843003
Cr-Commit-Position: refs/heads/master@{#26343}
This way we stay in sync with what Chromium does and we reduce the
number of bugs caused by 80-to-{32,64}-bit rounding errors. It's also
a requirement for switching to signaling NaN for FixedDoubleArray holes.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/864483002
Cr-Commit-Position: refs/heads/master@{#26154}
All builders that used level 1 should meanwhile define
v8_enable_slow_dchecks, and so they can use level 2 without losing
coverage. Level 2, however, is considerably faster, so we want to use it
on those builders as well. The make optdebug setting is not affected by
this change.
BUG=none
R=machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/847753002
Cr-Commit-Position: refs/heads/master@{#26019}
When compiling with the macro DCHECK_ALWAYS_ON defined, DCHECKs and
supporting code gets compiled and enabled.
This increases test coverage for chromium release buildbots
BUG=v8:3731
R=jkummerow@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/760213005
Cr-Commit-Position: refs/heads/master@{#25701}
The current gyp config tries to test whether the compiler is an arm / mips
compiler and whether it supports -m32 / -m64 based on a test within gyp.
Unfortunately CXX / CXX_target / CXX_host are no no longer set early enough
in gyp for this to work, and so all of these tests were actually being done
using "$(which g++)" rather than the appropriate CXX_target / CXX_host compiler.
This change removes these dynamic tests and instead bases the decisions on
knowledge of the host / target / v8_target architecture combination. The
the -m32/-m64 flags are set based on host_cxx_is_biarch / target_cxx_is_biarch,
which are set to reasonable defaults of only ia32/x64 or clang compilers
being build for biarch support. The host_cxx_is_biarch / target_cxx_is_biarch
variables can be overriden if required.
Original Review URL: https://codereview.chromium.org/382343003TBR=jkummerow@chromium.org
BUG=384474
LOG=NO
Review URL: https://codereview.chromium.org/400573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
The current gyp config tries to test whether the compiler is an arm / mips
compiler and whether it supports -m32 / -m64 based on a test within gyp.
Unfortunately CXX / CXX_target / CXX_host are no no longer set early enough
in gyp for this to work, and so all of these tests were actually being done
using "$(which g++)" rather than the appropriate CXX_target / CXX_host compiler.
This change removes these dynamic tests and instead bases the decisions on
knowledge of the host / target / v8_target architecture combination. The
the -m32/-m64 flags are set based on host_cxx_is_biarch / target_cxx_is_biarch,
which are set to reasonable defaults of only ia32/x64 or clang compilers
being build for biarch support. The host_cxx_is_biarch / target_cxx_is_biarch
variables can be overriden if required.
BUG=384474
LOG=NO
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/382343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00