|
|
Created:
4 years, 8 months ago by khasim.mohammed Modified:
4 years, 7 months ago Reviewers:
Primiano Tucci (use gerrit), jochen (gone - plz use gerrit), urvang, rmcilroy, Raymond Toy, Nico, Rodolph Perfetta (ARM) CC:
blink-reviews, chromium-reviews, hongchan, jzern, kinuko+watch, skal, urvang Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionBuild 64bit browser for Android with clang for ARMv8
This series is to
a) Add my name to AUTHORS
I have few patches to submit to fix the chromium 64bit browser
build for ARMv8 with clang.
b) Fix FPCR access for 64bit clang compilation
Compilation fails as the MSR and MRS instructions access
the FPCR register in 32bit mode.
c) Fix Build.gn and config files
To build 64bit browser for Android with clang for ARMv8
BUG : http://crbug.com/539781
Signed-off-by: Bernhard Rosenkränzer <bero@linaro.org>
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@linaro.org>
BUG=539781
R=thakis@chromium.org
TEST=download apk to ARMv8 board and launch
Committed: https://crrev.com/2c5ec51ea564705b02dcb6aeff6a56722cc3890f
Cr-Commit-Position: refs/heads/master@{#393517}
Patch Set 1 #
Total comments: 16
Patch Set 2 : Patch Set 2 - Build 64bit browser for Android with clang for ARMv8 #
Total comments: 2
Patch Set 3 : Patch 3 : Build 64bit browser for Android with clang for ARMv8 #
Total comments: 1
Patch Set 4 : Patch Set 4 : Removed Wno-asm-operand-widths #
Total comments: 1
Patch Set 5 : Patch Set 5: Keep -fno-integrated-as as ARMv7 needs it #
Total comments: 3
Messages
Total messages: 93 (13 generated)
urvang@chromium.org changed reviewers: + urvang@chromium.org
LGTM for libwebp
Looks pretty good, thanks! https://codereview.chromium.org/1888763002/diff/1/build/config/android/config... File build/config/android/config.gni (right): https://codereview.chromium.org/1888763002/diff/1/build/config/android/config... build/config/android/config.gni:249: import("//build/config/arm.gni") why is this needed? https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD.gn File build/config/compiler/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... build/config/compiler/BUILD.gn:637: cflags = [ "-mcpu=$arm_fpu" ] the 32-bit arm branch sets -mfpu, this sets -mcpu. is that intentional? https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... build/config/compiler/BUILD.gn:890: "-Wno-error=unused-command-line-argument", why is this needed? we want a warning-free build, we don't accept -Wno-error flags. what complains without this? can we not pass these flags instead? https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... File build/secondary/third_party/libjpeg_turbo/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... build/secondary/third_party/libjpeg_turbo/BUILD.gn:10: import("//build/config/arm.gni") why is this needed? what reads this? https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:136: asm volatile("vmrs %[result], FPSCR" : [result] "=r" (result)); should this grow an x too? https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:146: asm volatile("vmsr FPSCR, %[src]" : : [src] "r" (a)); same question https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD.gn File third_party/boringssl/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD... third_party/boringssl/BUILD.gn:107: asmflags += [ "-march=armv8-a+crypto+simd+fp+crc" ] can we fix https://llvm.org/bugs/show_bug.cgi?id=26016 instead?
rtoy@chromium.org changed reviewers: + rtoy@chromium.org
https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm volatile("mrs %x[result], FPCR" : [result] "=r" (result)); So "result" is basically an integer so %x[result] is a 64-bit register? Would it be better to declare result to be int64_t instead of just plain int (line 132)? Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if it's stored in a 32-bit or 64-bit register?
https://codereview.chromium.org/1888763002/diff/1/build/config/android/config... File build/config/android/config.gni (right): https://codereview.chromium.org/1888763002/diff/1/build/config/android/config... build/config/android/config.gni:249: import("//build/config/arm.gni") On 2016/04/14 15:43:55, Nico wrote: > why is this needed? Because arm.gni has arm64 options for fpu : else if (current_cpu == "arm64") { # arm64 supports only "hard". arm_float_abi = "hard" arm_use_neon = true arm_fpu = "cortex-a57+simd+crypto+fp+crc" }
https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD.gn File build/config/compiler/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... build/config/compiler/BUILD.gn:637: cflags = [ "-mcpu=$arm_fpu" ] On 2016/04/14 15:43:55, Nico wrote: > the 32-bit arm branch sets -mfpu, this sets -mcpu. is that intentional? -mpu is a 32bit only option, for 64bit mpu is not the correct option, we should use -mcpu. https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... build/config/compiler/BUILD.gn:890: "-Wno-error=unused-command-line-argument", On 2016/04/14 15:43:55, Nico wrote: > why is this needed? > > we want a warning-free build, we don't accept -Wno-error flags. what complains > without this? can we not pass these flags instead? I will remove this. It is not needed. https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... File build/secondary/third_party/libjpeg_turbo/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... build/secondary/third_party/libjpeg_turbo/BUILD.gn:10: import("//build/config/arm.gni") On 2016/04/14 15:43:55, Nico wrote: > why is this needed? what reads this? arm_fpu is set in arm.gni. This is needed to build simd instructions that are used in libjpeg_turbo. arm_fpu = "cortex-a57+simd+crypto+fp+crc" https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm volatile("mrs %x[result], FPCR" : [result] "=r" (result)); On 2016/04/14 15:49:38, Raymond Toy wrote: > So "result" is basically an integer so %x[result] is a 64-bit register? Would > it be better to declare result to be int64_t instead of just plain int (line > 132)? > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if it's > stored in a 32-bit or 64-bit register? If I set this flag, -Wno-asm-operand-widths then this might not be needed. Let me check again on this. https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:136: asm volatile("vmrs %[result], FPSCR" : [result] "=r" (result)); On 2016/04/14 15:43:55, Nico wrote: > should this grow an x too? Not required to 32bit. https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... third_party/WebKit/Source/platform/audio/DenormalDisabler.h:146: asm volatile("vmsr FPSCR, %[src]" : : [src] "r" (a)); On 2016/04/14 15:43:55, Nico wrote: > same question No not required for 32bit https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD.gn File third_party/boringssl/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD... third_party/boringssl/BUILD.gn:107: asmflags += [ "-march=armv8-a+crypto+simd+fp+crc" ] On 2016/04/14 15:43:55, Nico wrote: > can we fix https://llvm.org/bugs/show_bug.cgi?id=26016 instead? Not sure if I can get that fixed quickly. Will try to remove fno-integrated-as and check removing simd+fp+crc.
On 2016/04/14 16:38:46, khasim.mohammed wrote: > https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD.gn > File build/config/compiler/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... > build/config/compiler/BUILD.gn:637: cflags = [ "-mcpu=$arm_fpu" ] > On 2016/04/14 15:43:55, Nico wrote: > > the 32-bit arm branch sets -mfpu, this sets -mcpu. is that intentional? > > -mpu is a 32bit only option, for 64bit mpu is not the correct option, we should > use -mcpu. > > https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... > build/config/compiler/BUILD.gn:890: "-Wno-error=unused-command-line-argument", > On 2016/04/14 15:43:55, Nico wrote: > > why is this needed? > > > > we want a warning-free build, we don't accept -Wno-error flags. what complains > > without this? can we not pass these flags instead? > > I will remove this. It is not needed. > > https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... > File build/secondary/third_party/libjpeg_turbo/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/1/build/secondary/third_party... > build/secondary/third_party/libjpeg_turbo/BUILD.gn:10: > import("//build/config/arm.gni") > On 2016/04/14 15:43:55, Nico wrote: > > why is this needed? what reads this? > > arm_fpu is set in arm.gni. This is needed to build simd instructions that are > used in libjpeg_turbo. > > arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > On 2016/04/14 15:49:38, Raymond Toy wrote: > > So "result" is basically an integer so %x[result] is a 64-bit register? Would > > it be better to declare result to be int64_t instead of just plain int (line > > 132)? > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if > it's > > stored in a 32-bit or 64-bit register? > > If I set this flag, -Wno-asm-operand-widths then this might not be needed. Let > me check again on this. > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:136: asm > volatile("vmrs %[result], FPSCR" : [result] "=r" (result)); > On 2016/04/14 15:43:55, Nico wrote: > > should this grow an x too? > > Not required to 32bit. > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:146: asm > volatile("vmsr FPSCR, %[src]" : : [src] "r" (a)); > On 2016/04/14 15:43:55, Nico wrote: > > same question > > No not required for 32bit > > https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD.gn > File third_party/boringssl/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/1/third_party/boringssl/BUILD... > third_party/boringssl/BUILD.gn:107: asmflags += [ > "-march=armv8-a+crypto+simd+fp+crc" ] > On 2016/04/14 15:43:55, Nico wrote: > > can we fix https://llvm.org/bugs/show_bug.cgi?id=26016 instead? > > Not sure if I can get that fixed quickly. Will try to remove fno-integrated-as > and check removing simd+fp+crc. I have incorporated the review comments suggested and these patches should be good tobe merged, any thing I am missing ?
On 2016/04/14 15:49:38, Raymond Toy wrote: > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > So "result" is basically an integer so %x[result] is a 64-bit register? Would > it be better to declare result to be int64_t instead of just plain int (line > 132)? > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if it's > stored in a 32-bit or 64-bit register? AFAICT, you haven't actually answered these questions. There's also a disconnect if result is declared to be an int, but you use a 64-bit register (even if they are the same physical register.
On 2016/05/06 16:35:36, Raymond Toy wrote: > On 2016/04/14 15:49:38, Raymond Toy wrote: > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > > So "result" is basically an integer so %x[result] is a 64-bit register? Would > > it be better to declare result to be int64_t instead of just plain int (line > > 132)? > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if > it's > > stored in a 32-bit or 64-bit register? > > AFAICT, you haven't actually answered these questions. There's also a disconnect > if result is declared to be an int, but you use a 64-bit register (even if they > are the same physical register. Ah, sorry - I missed replying to this one. Actually this is not related to the variable declaration, it is the syntax of ARMv8 MSR and MRS registers. The Syntax is mrs Xt, systemreg Xt : Is the 64-bit name of the general-purpose destination register, in the range 0 to 31. More details here : http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0502d/Chdfifdc... So what we are doing with "X" is correct for MRS and MSR instructions. Let me know if you need more details.
On 2016/05/07 03:00:31, khasim.mohammed wrote: > On 2016/05/06 16:35:36, Raymond Toy wrote: > > On 2016/04/14 15:49:38, Raymond Toy wrote: > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > > > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > > > So "result" is basically an integer so %x[result] is a 64-bit register? > Would > > > it be better to declare result to be int64_t instead of just plain int (line > > > 132)? > > > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if > > it's > > > stored in a 32-bit or 64-bit register? > > > > AFAICT, you haven't actually answered these questions. There's also a > disconnect > > if result is declared to be an int, but you use a 64-bit register (even if > they > > are the same physical register. > > Ah, sorry - I missed replying to this one. Actually this is not related to the > variable declaration, it is the syntax of ARMv8 MSR and MRS registers. > > The Syntax is > mrs Xt, systemreg > > Xt : Is the 64-bit name of the general-purpose destination register, in the > range 0 to 31. > > More details here : > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0502d/Chdfifdc... > > So what we are doing with "X" is correct for MRS and MSR instructions. > > Let me know if you need more details. Correct link : http://infocenter.arm.com/help/topic/com.arm.doc.dui0802b/MSR_reg.html
On 2016/05/07 03:00:31, khasim.mohammed wrote: > On 2016/05/06 16:35:36, Raymond Toy wrote: > > On 2016/04/14 15:49:38, Raymond Toy wrote: > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > > > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > > > So "result" is basically an integer so %x[result] is a 64-bit register? > Would > > > it be better to declare result to be int64_t instead of just plain int (line > > > 132)? > > > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter if > > it's > > > stored in a 32-bit or 64-bit register? > > > > AFAICT, you haven't actually answered these questions. There's also a > disconnect > > if result is declared to be an int, but you use a 64-bit register (even if > they > > are the same physical register. > > Ah, sorry - I missed replying to this one. Actually this is not related to the > variable declaration, it is the syntax of ARMv8 MSR and MRS registers. > > The Syntax is > mrs Xt, systemreg > > Xt : Is the 64-bit name of the general-purpose destination register, in the > range 0 to 31. Perhaps not relevent, but if Xt is required, why doesn't the compiler complain if Xt isn't given? And if Xt is really required, perhaps it makes more sense to also declare result to be int64_t instead of int. (And updating the callers/users appropriately.) Of course we do know that FPCR is always in the low 32-bits so it doesn't matter now. > > More details here : > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0502d/Chdfifdc... > > So what we are doing with "X" is correct for MRS and MSR instructions. > > Let me know if you need more details.
On 2016/05/09 20:47:06, Raymond Toy wrote: > On 2016/05/07 03:00:31, khasim.mohammed wrote: > > On 2016/05/06 16:35:36, Raymond Toy wrote: > > > On 2016/04/14 15:49:38, Raymond Toy wrote: > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > > > > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > > > > So "result" is basically an integer so %x[result] is a 64-bit register? > > Would > > > > it be better to declare result to be int64_t instead of just plain int > (line > > > > 132)? > > > > > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter > if > > > it's > > > > stored in a 32-bit or 64-bit register? > > > > > > AFAICT, you haven't actually answered these questions. There's also a > > disconnect > > > if result is declared to be an int, but you use a 64-bit register (even if > > they > > > are the same physical register. > > > > Ah, sorry - I missed replying to this one. Actually this is not related to > the > > variable declaration, it is the syntax of ARMv8 MSR and MRS registers. > > > > The Syntax is > > mrs Xt, systemreg > > > > Xt : Is the 64-bit name of the general-purpose destination register, in the > > range 0 to 31. > > Perhaps not relevent, but if Xt is required, why doesn't the compiler complain > if Xt isn't given? Compiler does complain, ../../third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134:61: error: value size does not match register size specified by the constraint and modifier [-Werror,-Wasm-operand-widths] asm volatile("mrs %[result], FPCR" : [result] "=r" (result)); ^ ../../third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134:27: note: use constraint modifier "w" asm volatile("mrs %[result], FPCR" : [result] "=r" (result)); ^~~~~~~~~ %w[result] I don't know why it shows w when there is no operand w for mrs or msr. But we do get error on this from compiler. > > And if Xt is really required, perhaps it makes more sense to also declare result > to be int64_t instead of int. (And updating the callers/users appropriately.) > Of course we do know that FPCR is always in the low 32-bits so it doesn't matter > now. Yes, it doesn't matter as FPCR is always in lower 32 bits. > > > > More details here : > > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0502d/Chdfifdc... > > > > So what we are doing with "X" is correct for MRS and MSR instructions. > > > > Let me know if you need more details. Thanks, can you please +2 this patch ?
On 2016/05/10 at 02:43:35, khasim.mohammed wrote: > On 2016/05/09 20:47:06, Raymond Toy wrote: > > On 2016/05/07 03:00:31, khasim.mohammed wrote: > > > On 2016/05/06 16:35:36, Raymond Toy wrote: > > > > On 2016/04/14 15:49:38, Raymond Toy wrote: > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > > > File third_party/WebKit/Source/platform/audio/DenormalDisabler.h (right): > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/1/third_party/WebKit/Source/p... > > > > > third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134: asm > > > > > volatile("mrs %x[result], FPCR" : [result] "=r" (result)); > > > > > So "result" is basically an integer so %x[result] is a 64-bit register? > > > Would > > > > > it be better to declare result to be int64_t instead of just plain int > > (line > > > > > 132)? > > > > > > > > > > Also, isn't the FPCR register just 32 bits long? Then it doesn't matter > > if > > > > it's > > > > > stored in a 32-bit or 64-bit register? > > > > > > > > AFAICT, you haven't actually answered these questions. There's also a > > > disconnect > > > > if result is declared to be an int, but you use a 64-bit register (even if > > > they > > > > are the same physical register. > > > > > > Ah, sorry - I missed replying to this one. Actually this is not related to > > the > > > variable declaration, it is the syntax of ARMv8 MSR and MRS registers. > > > > > > The Syntax is > > > mrs Xt, systemreg > > > > > > Xt : Is the 64-bit name of the general-purpose destination register, in the > > > range 0 to 31. > > > > Perhaps not relevent, but if Xt is required, why doesn't the compiler complain > > if Xt isn't given? > > Compiler does complain, > ../../third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134:61: error: value size does not match register size specified by the constraint and modifier [-Werror,-Wasm-operand-widths] > asm volatile("mrs %[result], FPCR" : [result] "=r" (result)); > ^ > ../../third_party/WebKit/Source/platform/audio/DenormalDisabler.h:134:27: note: use constraint modifier "w" > asm volatile("mrs %[result], FPCR" : [result] "=r" (result)); > ^~~~~~~~~ > %w[result] > > I don't know why it shows w when there is no operand w for mrs or msr. But we do get error on this from compiler. Thanks for the snippet. I guess the compiler has changed (or you're using a different version) than when I created these. And thanks for the explanations! > > > > > And if Xt is really required, perhaps it makes more sense to also declare result > > to be int64_t instead of int. (And updating the callers/users appropriately.) > > Of course we do know that FPCR is always in the low 32-bits so it doesn't matter > > now. > > Yes, it doesn't matter as FPCR is always in lower 32 bits. > > > > > > > More details here : > > > > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0502d/Chdfifdc... > > > > > > So what we are doing with "X" is correct for MRS and MSR instructions. > > > > > > Let me know if you need more details. > > Thanks, can you please +2 this patch ?
lgtm
jochen@chromium.org changed reviewers: + jochen@chromium.org
https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni File build/config/arm.gni (right): https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" Can you check that this results in the same flags for v8 as the gyp build would?
On 10 May 2016 at 10:48, <jochen@chromium.org> wrote: > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > File build/config/arm.gni (right): > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > Can you check that this results in the same flags for v8 as the gyp > build would? > > I used gn for building these, do you want me to try gyp ? I thought it was outdated so was avoiding gyp. Regards, Khasim > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
On 10 May 2016 at 10:48, <jochen@chromium.org> wrote: > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > File build/config/arm.gni (right): > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > Can you check that this results in the same flags for v8 as the gyp > build would? > > I used gn for building these, do you want me to try gyp ? I thought it was outdated so was avoiding gyp. Regards, Khasim > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > On 10 May 2016 at 10:48, <jochen@chromium.org> wrote: > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > File build/config/arm.gni (right): > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > Can you check that this results in the same flags for v8 as the gyp > > build would? > > > > I used gn for building these, do you want me to try gyp ? I thought it was > outdated so was avoiding gyp. V8 still uses gyp for the standalone build and has full arm64 support, and it's key that the gn configuration results in the exact same set of CPU specific flags and defines Building is not enough. You have to manually compare the flags. If you check out a version of chromium that still has gyp support, you can use the script in tools/gn/bin to compare the flags Otherwise, I'd recommend looking at the ninja files and compare the flags manually > > Regards, > Khasim > > > https://codereview.chromium.org/1888763002/ > > > > -- > You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. > To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org. >
On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > File build/config/arm.gni (right): > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > Can you check that this results in the same flags for v8 as the gyp > > > build would? > > > > > > I used gn for building these, do you want me to try gyp ? I thought it was > > outdated so was avoiding gyp. > > V8 still uses gyp for the standalone build and has full arm64 support, and it's > key that the gn configuration results in the exact same set of CPU specific > flags and defines > > Building is not enough. You have to manually compare the flags. > > If you check out a version of chromium that still has gyp support, you can use > the script in tools/gn/bin to compare the flags > > Otherwise, I'd recommend looking at the ninja files and compare the flags > manually > Didn't I reply to this ? Not sure why I don't see my message : My observations are captured below : with gn ======= cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os -fdata-sections -ffunction-sections -g1 --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fno-exceptions -Wno-deprecated with gyp ======== cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread -pedantic -Wmissing-field-initializers -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 -fvisibility=hidden -fcolor-diagnostics -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin -Wno-undefined-var-template -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 -fdata-sections -ffunction-sections -O2 cflags_c = cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 But I see the code uses the definitions from this file, so I am not sure if these flags would affect directly in the case of v8 builds : File : src/arm/assembler-arm.cc #ifdef CAN_USE_ARMV8_INSTRUCTIONS if (FLAG_enable_armv8) { answer |= 1u << ARMv8; // ARMv8 always features VFP and NEON. answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; answer |= 1u << SUDIV | 1u << MLS; } #endif // CAN_USE_ARMV8_INSTRUCTIONS Regards, Khasim > > > > Regards, > > Khasim > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > "Chromium-reviews" group. > > To unsubscribe from this group and stop receiving emails from it, send an > email to mailto:chromium-reviews+unsubscribe@chromium.org. > >
On 2016/05/12 at 07:08:51, khasim.mohammed wrote: > On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > > File build/config/arm.gni (right): > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > > Can you check that this results in the same flags for v8 as the gyp > > > > build would? > > > > > > > > I used gn for building these, do you want me to try gyp ? I thought it was > > > outdated so was avoiding gyp. > > > > V8 still uses gyp for the standalone build and has full arm64 support, and it's > > key that the gn configuration results in the exact same set of CPU specific > > flags and defines > > > > Building is not enough. You have to manually compare the flags. > > > > If you check out a version of chromium that still has gyp support, you can use > > the script in tools/gn/bin to compare the flags > > > > Otherwise, I'd recommend looking at the ninja files and compare the flags > > manually > > > > Didn't I reply to this ? Not sure why I don't see my message : > > My observations are captured below : > > with gn > ======= > > cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os -fdata-sections -ffunction-sections -g1 --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value > cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fno-exceptions -Wno-deprecated > > with gyp > ======== > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread -pedantic -Wmissing-field-initializers > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 -fvisibility=hidden -fcolor-diagnostics > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin -Wno-undefined-var-template > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 > -fdata-sections -ffunction-sections -O2 > cflags_c = > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 it looks like you're comparing x64 with arm64 flags? > > But I see the code uses the definitions from this file, so I am not sure if these flags would affect directly in the case of v8 builds : > > File : src/arm/assembler-arm.cc > > #ifdef CAN_USE_ARMV8_INSTRUCTIONS for those, it's also important to compare the defines (-D...) flags > if (FLAG_enable_armv8) { > answer |= 1u << ARMv8; > // ARMv8 always features VFP and NEON. > answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; > answer |= 1u << SUDIV | 1u << MLS; > } > #endif // CAN_USE_ARMV8_INSTRUCTIONS > > Regards, > Khasim > > > > > > > Regards, > > > Khasim > > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > > > > -- > > > You received this message because you are subscribed to the Google Groups > > "Chromium-reviews" group. > > > To unsubscribe from this group and stop receiving emails from it, send an > > email to mailto:chromium-reviews+unsubscribe@chromium.org. > > >
On 2016/05/12 07:29:47, jochen (soon OOO) wrote: > On 2016/05/12 at 07:08:51, khasim.mohammed wrote: > > On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > > > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > > > File build/config/arm.gni (right): > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > > > Can you check that this results in the same flags for v8 as the gyp > > > > > build would? > > > > > > > > > > I used gn for building these, do you want me to try gyp ? I thought it > was > > > > outdated so was avoiding gyp. > > > > > > V8 still uses gyp for the standalone build and has full arm64 support, and > it's > > > key that the gn configuration results in the exact same set of CPU specific > > > flags and defines > > > > > > Building is not enough. You have to manually compare the flags. > > > > > > If you check out a version of chromium that still has gyp support, you can > use > > > the script in tools/gn/bin to compare the flags > > > > > > Otherwise, I'd recommend looking at the ninja files and compare the flags > > > manually > > > > > > > Didn't I reply to this ? Not sure why I don't see my message : > > > > My observations are captured below : > > > > with gn > > ======= > > > > cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector > -funwind-tables -fPIC -pipe -fcolor-diagnostics > -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums > -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os > -fdata-sections -ffunction-sections -g1 > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > -fvisibility=hidden -Xclang -load -Xclang > ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang > -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs > -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang > follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall > -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers > -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default > -Wno-deprecated-register -Wno-unneeded-internal-declaration > -Wno-inconsistent-missing-override -Wno-shift-negative-value > > cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden > -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 > -fno-rtti > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include > -isystem../../third_party/android_tools/ndk/sources/android/support/include > -fno-exceptions -Wno-deprecated > > > > with gyp > > ======== > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread > -pedantic -Wmissing-field-initializers > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 > -fvisibility=hidden -fcolor-diagnostics > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > -Wno-undefined-var-template > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 > > -fdata-sections -ffunction-sections -O2 > > cflags_c = > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > it looks like you're comparing x64 with arm64 flags? > No, it is for ARM 64, see the complete log from file Release/obj/src/v8_base.ninja defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ -DENABLE_HANDLE_ZAPPING includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ -I../../third_party/icu/source/common cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread $ -pedantic -Wmissing-field-initializers $ -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 $ -fvisibility=hidden -fcolor-diagnostics $ -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ -Wno-undefined-var-template $ -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 $ -fdata-sections -ffunction-sections -O2 cflags_c = cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 arflags = > > > > But I see the code uses the definitions from this file, so I am not sure if > these flags would affect directly in the case of v8 builds : > > > > File : src/arm/assembler-arm.cc > > > > #ifdef CAN_USE_ARMV8_INSTRUCTIONS > > for those, it's also important to compare the defines (-D...) flags defines (-D) for gn ================== defines = -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DV8_SHARED -DBUILDING_V8_SHARED -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_ARM64 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DOPTIMIZED_DEBUG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 include_dirs = -I../.. -Igen -I../../v8 -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n Defines -D for gyp ================== defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ -DENABLE_HANDLE_ZAPPING includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ -I../../third_party/icu/source/common > > > if (FLAG_enable_armv8) { > > answer |= 1u << ARMv8; > > // ARMv8 always features VFP and NEON. > > answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; > > answer |= 1u << SUDIV | 1u << MLS; > > } > > #endif // CAN_USE_ARMV8_INSTRUCTIONS > > > > Regards, > > Khasim > > > > > > > > > > Regards, > > > > Khasim > > > > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > > > > > > > -- > > > > You received this message because you are subscribed to the Google Groups > > > "Chromium-reviews" group. > > > > To unsubscribe from this group and stop receiving emails from it, send an > > > email to mailto:chromium-reviews+unsubscribe@chromium.org. > > > >
On 2016/05/12 at 07:41:41, khasim.mohammed wrote: > On 2016/05/12 07:29:47, jochen (soon OOO) wrote: > > On 2016/05/12 at 07:08:51, khasim.mohammed wrote: > > > On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > > > > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > > > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > > > > File build/config/arm.gni (right): > > > > > > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > > > > Can you check that this results in the same flags for v8 as the gyp > > > > > > build would? > > > > > > > > > > > > I used gn for building these, do you want me to try gyp ? I thought it > > was > > > > > outdated so was avoiding gyp. > > > > > > > > V8 still uses gyp for the standalone build and has full arm64 support, and > > it's > > > > key that the gn configuration results in the exact same set of CPU specific > > > > flags and defines > > > > > > > > Building is not enough. You have to manually compare the flags. > > > > > > > > If you check out a version of chromium that still has gyp support, you can > > use > > > > the script in tools/gn/bin to compare the flags > > > > > > > > Otherwise, I'd recommend looking at the ninja files and compare the flags > > > > manually > > > > > > > > > > Didn't I reply to this ? Not sure why I don't see my message : > > > > > > My observations are captured below : > > > > > > with gn > > > ======= > > > > > > cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector > > -funwind-tables -fPIC -pipe -fcolor-diagnostics > > -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums > > -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > -fdata-sections -ffunction-sections -g1 > > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > > -fvisibility=hidden -Xclang -load -Xclang > > ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang > > -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs > > -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang > > follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall > > -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers > > -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default > > -Wno-deprecated-register -Wno-unneeded-internal-declaration > > -Wno-inconsistent-missing-override -Wno-shift-negative-value > > > cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden > > -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 > > -fno-rtti > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include > > -isystem../../third_party/android_tools/ndk/sources/android/support/include > > -fno-exceptions -Wno-deprecated > > > > > > with gyp > > > ======== > > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread > > -pedantic -Wmissing-field-initializers > > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 > > -fvisibility=hidden -fcolor-diagnostics > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > -Wno-undefined-var-template > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 > > > -fdata-sections -ffunction-sections -O2 > > > cflags_c = > > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > > > it looks like you're comparing x64 with arm64 flags? > > > > No, it is for ARM 64, see the complete log from file Release/obj/src/v8_base.ninja > > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > -DENABLE_HANDLE_ZAPPING > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > -I../../third_party/icu/source/common > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread $ > -pedantic -Wmissing-field-initializers $ > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 $ > -fvisibility=hidden -fcolor-diagnostics $ > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > -Wno-undefined-var-template $ > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 $ > -fdata-sections -ffunction-sections -O2 > cflags_c = > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > arflags = > The gyp flags don't look anything like the gn flags... e.g. -m64 is the only cpu flag in gyp, while in gn, you now have -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc also the missing -sysroot makes me suspect that you're not looking at the right flags > > > > > > > But I see the code uses the definitions from this file, so I am not sure if > > these flags would affect directly in the case of v8 builds : > > > > > > File : src/arm/assembler-arm.cc > > > > > > #ifdef CAN_USE_ARMV8_INSTRUCTIONS > > > > for those, it's also important to compare the defines (-D...) flags > > defines (-D) for gn > ================== > > defines = -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DV8_SHARED -DBUILDING_V8_SHARED -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_ARM64 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DOPTIMIZED_DEBUG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 > include_dirs = -I../.. -Igen -I../../v8 -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n VERIFY_HEAP, DEBUG, OBJECT_PRINT etc.. are all debug flags, but gyp appears to be a release build? > > Defines -D for gyp > ================== > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > -DENABLE_HANDLE_ZAPPING > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > -I../../third_party/icu/source/common > > > > > > > if (FLAG_enable_armv8) { > > > answer |= 1u << ARMv8; > > > // ARMv8 always features VFP and NEON. > > > answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; > > > answer |= 1u << SUDIV | 1u << MLS; > > > } > > > #endif // CAN_USE_ARMV8_INSTRUCTIONS > > > > > > Regards, > > > Khasim > > > > > > > > > > > > > Regards, > > > > > Khasim > > > > > > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > > > > > > > > > > -- > > > > > You received this message because you are subscribed to the Google Groups > > > > "Chromium-reviews" group. > > > > > To unsubscribe from this group and stop receiving emails from it, send an > > > > email to mailto:chromium-reviews+unsubscribe@chromium.org. > > > > >
On 2016/05/12 07:46:07, jochen (soon OOO) wrote: > On 2016/05/12 at 07:41:41, khasim.mohammed wrote: > > On 2016/05/12 07:29:47, jochen (soon OOO) wrote: > > > On 2016/05/12 at 07:08:51, khasim.mohammed wrote: > > > > On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > > > > > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > > > > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > > > > > File build/config/arm.gni (right): > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > > > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > > > > > Can you check that this results in the same flags for v8 as the gyp > > > > > > > build would? > > > > > > > > > > > > > > I used gn for building these, do you want me to try gyp ? I thought > it > > > was > > > > > > outdated so was avoiding gyp. > > > > > > > > > > V8 still uses gyp for the standalone build and has full arm64 support, > and > > > it's > > > > > key that the gn configuration results in the exact same set of CPU > specific > > > > > flags and defines > > > > > > > > > > Building is not enough. You have to manually compare the flags. > > > > > > > > > > If you check out a version of chromium that still has gyp support, you > can > > > use > > > > > the script in tools/gn/bin to compare the flags > > > > > > > > > > Otherwise, I'd recommend looking at the ninja files and compare the > flags > > > > > manually > > > > > > > > > > > > > Didn't I reply to this ? Not sure why I don't see my message : > > > > > > > > My observations are captured below : > > > > > > > > with gn > > > > ======= > > > > > > > > cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector > > > -funwind-tables -fPIC -pipe -fcolor-diagnostics > > > -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums > > > -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > > -fdata-sections -ffunction-sections -g1 > > > > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > > > -fvisibility=hidden -Xclang -load -Xclang > > > ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so > -Xclang > > > -add-plugin -Xclang find-bad-constructs -Xclang > -plugin-arg-find-bad-constructs > > > -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang > > > follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall > > > -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers > > > -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default > > > -Wno-deprecated-register -Wno-unneeded-internal-declaration > > > -Wno-inconsistent-missing-override -Wno-shift-negative-value > > > > cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden > > > -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare > -std=gnu++11 > > > -fno-rtti > > > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include > > > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include > > > -isystem../../third_party/android_tools/ndk/sources/android/support/include > > > -fno-exceptions -Wno-deprecated > > > > > > > > with gyp > > > > ======== > > > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread > > > -pedantic -Wmissing-field-initializers > > > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 > > > -fvisibility=hidden -fcolor-diagnostics > > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > > -Wno-undefined-var-template > > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 > > > > -fdata-sections -ffunction-sections -O2 > > > > cflags_c = > > > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > > > > > it looks like you're comparing x64 with arm64 flags? > > > > > > > No, it is for ARM 64, see the complete log from file > Release/obj/src/v8_base.ninja > > > > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > > -DENABLE_HANDLE_ZAPPING > > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > > -I../../third_party/icu/source/common > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread $ > > -pedantic -Wmissing-field-initializers $ > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 $ > > -fvisibility=hidden -fcolor-diagnostics $ > > > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > > -Wno-undefined-var-template $ > > > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 $ > > -fdata-sections -ffunction-sections -O2 > > cflags_c = > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > arflags = > > > > The gyp flags don't look anything like the gn flags... e.g. -m64 is the only cpu > flag in gyp, while in gn, you now have -target aarch64-linux-android > -mcpu=cortex-a57+simd+crypto+fp+crc > > also the missing -sysroot makes me suspect that you're not looking at the right > flags Here is what I have done, Downloaded the v8 separately https://developers.google.com/v8/build#download-the-source-code Followed the building steps from https://github.com/v8/v8/wiki/Building%20with%20Gyp export GYP_DEFINES="v8_target_arch=arm64" gypfiles/gyp_v8 ... export GYP_GENERATORS=ninja gypfiles/gyp_v8 ninja -C out/Debug d8 Then reading the flags from .ninja files. > > > > > > > > > > > But I see the code uses the definitions from this file, so I am not sure > if > > > these flags would affect directly in the case of v8 builds : > > > > > > > > File : src/arm/assembler-arm.cc > > > > > > > > #ifdef CAN_USE_ARMV8_INSTRUCTIONS > > > > > > for those, it's also important to compare the defines (-D...) flags > > > > defines (-D) for gn > > ================== > > > > defines = -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DV8_DEPRECATION_WARNINGS > -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 > -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 > -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 > -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 > -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 > -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG > -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DV8_SHARED > -DBUILDING_V8_SHARED -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING > -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_ARM64 -DENABLE_DISASSEMBLER > -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DOPTIMIZED_DEBUG > -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 > > include_dirs = -I../.. -Igen -I../../v8 -I../../third_party/icu/source/common > -I../../third_party/icu/source/i18n > > > VERIFY_HEAP, DEBUG, OBJECT_PRINT etc.. are all debug flags, but gyp appears to > be a release build? I will give a try with DEBUG build. > > > > > Defines -D for gyp > > ================== > > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > > -DENABLE_HANDLE_ZAPPING > > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > > -I../../third_party/icu/source/common > > > > > > > > > > > if (FLAG_enable_armv8) { > > > > answer |= 1u << ARMv8; > > > > // ARMv8 always features VFP and NEON. > > > > answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; > > > > answer |= 1u << SUDIV | 1u << MLS; > > > > } > > > > #endif // CAN_USE_ARMV8_INSTRUCTIONS > > > > > > > > Regards, > > > > Khasim > > > > > > > > > > > > > > > > Regards, > > > > > > Khasim > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > > > > > > > > > > > > > -- > > > > > > You received this message because you are subscribed to the Google > Groups > > > > > "Chromium-reviews" group. > > > > > > To unsubscribe from this group and stop receiving emails from it, send > an > > > > > email to mailto:chromium-reviews+unsubscribe@chromium.org. > > > > > >
> > > > VERIFY_HEAP, DEBUG, OBJECT_PRINT etc.. are all debug flags, but gyp appears to > > be a release build? > > I will give a try with DEBUG build. defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP $ -DDEBUG -DTRACE_MAPS -D_GLIBCXX_DEBUG=1 -DENABLE_HANDLE_ZAPPING $ -DENABLE_SLOW_DCHECKS includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ -I../../third_party/icu/source/common cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread $ -pedantic -Wmissing-field-initializers $ -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 $ -fvisibility=hidden -fcolor-diagnostics $ -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ -Wno-undefined-var-template $ -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ -Wno-format-pedantic -m64 -m64 -g -O0 -Woverloaded-virtual $ -Woverloaded-virtual -fdata-sections -ffunction-sections $ -fdata-sections -ffunction-sections cflags_c = cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 arflags =
On 2016/05/12 at 07:54:31, khasim.mohammed wrote: > On 2016/05/12 07:46:07, jochen (soon OOO) wrote: > > On 2016/05/12 at 07:41:41, khasim.mohammed wrote: > > > On 2016/05/12 07:29:47, jochen (soon OOO) wrote: > > > > On 2016/05/12 at 07:08:51, khasim.mohammed wrote: > > > > > On 2016/05/10 05:57:51, jochen (soon OOO) wrote: > > > > > > On 2016/05/10 at 05:45:01, khasim.mohammed wrote: > > > > > > > On 10 May 2016 at 10:48, <mailto:jochen@chromium.org> wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni > > > > > > > > File build/config/arm.gni (right): > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/diff/20001/build/config/arm.gni#ne... > > > > > > > > build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" > > > > > > > > Can you check that this results in the same flags for v8 as the gyp > > > > > > > > build would? > > > > > > > > > > > > > > > > I used gn for building these, do you want me to try gyp ? I thought > > it > > > > was > > > > > > > outdated so was avoiding gyp. > > > > > > > > > > > > V8 still uses gyp for the standalone build and has full arm64 support, > > and > > > > it's > > > > > > key that the gn configuration results in the exact same set of CPU > > specific > > > > > > flags and defines > > > > > > > > > > > > Building is not enough. You have to manually compare the flags. > > > > > > > > > > > > If you check out a version of chromium that still has gyp support, you > > can > > > > use > > > > > > the script in tools/gn/bin to compare the flags > > > > > > > > > > > > Otherwise, I'd recommend looking at the ninja files and compare the > > flags > > > > > > manually > > > > > > > > > > > > > > > > Didn't I reply to this ? Not sure why I don't see my message : > > > > > > > > > > My observations are captured below : > > > > > > > > > > with gn > > > > > ======= > > > > > > > > > > cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector > > > > -funwind-tables -fPIC -pipe -fcolor-diagnostics > > > > -fdebug-prefix-map=/home/chromium/src=. -ffunction-sections -fno-short-enums > > > > -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > > > -fdata-sections -ffunction-sections -g1 > > > > > > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > > > > -fvisibility=hidden -Xclang -load -Xclang > > > > ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so > > -Xclang > > > > -add-plugin -Xclang find-bad-constructs -Xclang > > -plugin-arg-find-bad-constructs > > > > -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang > > > > follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall > > > > -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers > > > > -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default > > > > -Wno-deprecated-register -Wno-unneeded-internal-declaration > > > > -Wno-inconsistent-missing-override -Wno-shift-negative-value > > > > > cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden > > > > -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare > > -std=gnu++11 > > > > -fno-rtti > > > > > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include > > > > > > -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include > > > > -isystem../../third_party/android_tools/ndk/sources/android/support/include > > > > -fno-exceptions -Wno-deprecated > > > > > > > > > > with gyp > > > > > ======== > > > > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread > > > > -pedantic -Wmissing-field-initializers > > > > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 > > > > -fvisibility=hidden -fcolor-diagnostics > > > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > > > -Wno-undefined-var-template > > > > > -B/home/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin > > > > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 > > > > > -fdata-sections -ffunction-sections -O2 > > > > > cflags_c = > > > > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > > > > > > > it looks like you're comparing x64 with arm64 flags? > > > > > > > > > > No, it is for ARM 64, see the complete log from file > > Release/obj/src/v8_base.ninja > > > > > > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > > > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > > > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > > > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > > > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > > > -DENABLE_HANDLE_ZAPPING > > > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > > > -I../../third_party/icu/source/common > > > cflags = -Wall -Werror -Wno-unused-parameter -Wno-long-long -pthread $ > > > -pedantic -Wmissing-field-initializers $ > > > -Wno-gnu-zero-variadic-macro-arguments -Wshorten-64-to-32 $ > > > -fvisibility=hidden -fcolor-diagnostics $ > > > > > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > > > -Wno-undefined-var-template $ > > > > > -B/home/khasim/projects/temp_v8/v8/third_party/binutils/Linux_x64/Release/bin $ > > > -Wno-format-pedantic -m64 -m64 -fdata-sections -ffunction-sections -O2 $ > > > -fdata-sections -ffunction-sections -O2 > > > cflags_c = > > > cflags_cc = -Wnon-virtual-dtor -fno-exceptions -fno-rtti -std=gnu++11 > > > arflags = > > > > > > > The gyp flags don't look anything like the gn flags... e.g. -m64 is the only cpu > > flag in gyp, while in gn, you now have -target aarch64-linux-android > > -mcpu=cortex-a57+simd+crypto+fp+crc > > > > also the missing -sysroot makes me suspect that you're not looking at the right > > flags > > Here is what I have done, > > Downloaded the v8 separately https://developers.google.com/v8/build#download-the-source-code > > Followed the building steps from https://github.com/v8/v8/wiki/Building%20with%20Gyp > > export GYP_DEFINES="v8_target_arch=arm64" > gypfiles/gyp_v8 ... > > export GYP_GENERATORS=ninja > gypfiles/gyp_v8 > ninja -C out/Debug d8 you also need target_arch=arm64 > > Then reading the flags from .ninja files. > > > > > > > > > > > > > > > > But I see the code uses the definitions from this file, so I am not sure > > if > > > > these flags would affect directly in the case of v8 builds : > > > > > > > > > > File : src/arm/assembler-arm.cc > > > > > > > > > > #ifdef CAN_USE_ARMV8_INSTRUCTIONS > > > > > > > > for those, it's also important to compare the defines (-D...) flags > > > > > > defines (-D) for gn > > > ================== > > > > > > defines = -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DV8_DEPRECATION_WARNINGS > > -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 > > -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 > > -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 > > -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 > > -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 > > -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG > > -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DV8_SHARED > > -DBUILDING_V8_SHARED -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING > > -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_ARM64 -DENABLE_DISASSEMBLER > > -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DOPTIMIZED_DEBUG > > -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 > > > include_dirs = -I../.. -Igen -I../../v8 -I../../third_party/icu/source/common > > -I../../third_party/icu/source/i18n > > > > > > VERIFY_HEAP, DEBUG, OBJECT_PRINT etc.. are all debug flags, but gyp appears to > > be a release build? > > I will give a try with DEBUG build. ideally, you'd compare the release builds for both. > > > > > > > > > > Defines -D for gyp > > > ================== > > > defines = -DCR_CLANG_REVISION=268813-1 -DV8_TARGET_ARCH_ARM64 $ > > > -DV8_DEPRECATION_WARNINGS -DV8_IMMINENT_DEPRECATION_WARNINGS $ > > > -DV8_I18N_SUPPORT -DV8_USE_EXTERNAL_STARTUP_DATA $ > > > -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC -DU_USING_ICU_NAMESPACE=0 $ > > > -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION $ > > > -DENABLE_HANDLE_ZAPPING > > > includes = -I../.. -I../../.. -I../../third_party/icu/source/i18n $ > > > -I../../third_party/icu/source/common > > > > > > > > > > > > > > > if (FLAG_enable_armv8) { > > > > > answer |= 1u << ARMv8; > > > > > // ARMv8 always features VFP and NEON. > > > > > answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS; > > > > > answer |= 1u << SUDIV | 1u << MLS; > > > > > } > > > > > #endif // CAN_USE_ARMV8_INSTRUCTIONS > > > > > > > > > > Regards, > > > > > Khasim > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > Khasim > > > > > > > > > > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > You received this message because you are subscribed to the Google > > Groups > > > > > > "Chromium-reviews" group. > > > > > > > To unsubscribe from this group and stop receiving emails from it, send > > an > > > > > > email to mailto:chromium-reviews+unsubscribe@chromium.org. > > > > > > >
Please ignore all the above discussions on gyp flags, I took a fresh look at these, gyp : ===== echo "{ 'GYP_DEFINES': 'OS=android target_arch=arm64 clang=1', }" > chromium.gyp_env File read : out/Release/obj/v8/tools/gyp/v8_base.ninja defines = -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -D_FILE_OFFSET_BITS=64 $ -DNO_TCMALLOC -DDISABLE_NACL -DCHROMIUM_BUILD $ -DCR_CLANG_REVISION=263324-1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_WEBRTC=1 $ -DENABLE_MEDIA_ROUTER=1 -DENABLE_BROWSER_CDMS $ -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS $ -DFIELDTRIAL_TESTING_ENABLED -DENABLE_AUTOFILL_DIALOG=1 $ -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 $ -DUSE_BROWSER_SPELLCHECKER=1 -DENABLE_SUPERVISED_USERS=1 -DVIDEO_HOLE=1 $ -DV8_USE_EXTERNAL_STARTUP_DATA -DENABLE_WEBVR -DSAFE_BROWSING_DB_REMOTE $ -DV8_TARGET_ARCH_ARM64 -DV8_I18N_SUPPORT $ -DV8_IMMINENT_DEPRECATION_WARNINGS $ -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DU_USING_ICU_NAMESPACE=0 $ -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DUSE_LIBPCI=1 $ -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DANDROID -D__GNU_SOURCE=1 $ '-DCHROME_BUILD_ID=""' -DHAVE_SYS_UIO_H -DNDEBUG -DNVALGRIND $ -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DENABLE_HANDLE_ZAPPING includes = -I../../v8 -I../.. -Igen -I../../third_party/icu/source/i18n $ -I../../third_party/icu/source/common cflags = --param=ssp-buffer-size=4 -Werror -fno-strict-aliasing -Wall $ -Wno-unused-parameter -Wno-missing-field-initializers $ -fvisibility=hidden -pipe -fPIC -Xclang -load -Xclang $ /home/khasim/chromium/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so $ -Xclang -add-plugin -Xclang find-bad-constructs -Xclang $ -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang $ -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion $ -fcolor-diagnostics -Wheader-hygiene -Wno-char-subscripts $ -Wno-unneeded-internal-declaration -Wno-covered-switch-default $ -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register $ -Wno-inconsistent-missing-override -Wno-shift-negative-value $ -Wno-unused-variable -ffunction-sections -funwind-tables -g $ -fno-short-enums $ --sysroot=../../third_party/android_tools/ndk//platforms/android-21/arch-arm64 $ -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -target $ aarch64-linux-androideabi -m64 -fno-ident -fdata-sections $ -ffunction-sections -funwind-tables -fdata-sections -ffunction-sections $ -O2 gn: === File read : out/Default/obj/v8/v8_base.ninja defines = -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DV8_SHARED -DBUILDING_V8_SHARED -DV8_I18N_SUPPORT -DENABLE_HANDLE_ZAPPING -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_TARGET_ARCH_ARM64 -DENABLE_DISASSEMBLER -DV8_ENABLE_CHECKS -DOBJECT_PRINT -DVERIFY_HEAP -DDEBUG -DOPTIMIZED_DEBUG -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 include_dirs = -I../.. -Igen -I../../v8 -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n cflags = -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections -fno-short-enums -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -Os -fdata-sections -ffunction-sections -g1 --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Wheader-hygiene -Wstring-conversion -Werror -Wall -Wno-unused-variable -Wno-asm-operand-widths -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value cflags_cc = -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fno-exceptions -Wno-deprecated Let me know if you see any major issues in these.
the gyp version runs with -m64 -O2 while the gn version specifies -mcpu=cortex-a57+simd+crypto+fp+crc -Os that looks undesirable
On 2016/05/12 11:03:14, jochen (soon OOO) wrote: > the gyp version runs with -m64 -O2 while the gn version specifies > -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > that looks undesirable Questions a) Shouldn't it be like fixing gyp instead of gn ? b_ -m64 is not a valid option any more, I don't know why gyp is using this still More details: a) Actually gn had no option for arm_fpu for 64bit ARM and I added that option in build/config/arm.gni without this the build for 64bit chromium fails for clang. b) The options introduced processor+simd+fp are all valid combinations for v8 as well. c) crypto and crc can be removed but it's better to look for errors and issues when we enable these compiler options. I suggest we introduce this flag in gyp instead of removing this from gn as they are valid flags for arm64. Let me know your thoughts.
On 2016/05/12 at 11:32:50, khasim.mohammed wrote: > On 2016/05/12 11:03:14, jochen (soon OOO) wrote: > > the gyp version runs with -m64 -O2 while the gn version specifies > > -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > > > that looks undesirable > > Questions > a) Shouldn't it be like fixing gyp instead of gn ? > b_ -m64 is not a valid option any more, I don't know why gyp is using this still > > More details: > > a) Actually gn had no option for arm_fpu for 64bit ARM and I added that option in build/config/arm.gni without this the build for 64bit chromium fails for clang. > > b) The options introduced processor+simd+fp are all valid combinations for v8 as well. > > c) crypto and crc can be removed but it's better to look for errors and issues when we enable these compiler options. > > I suggest we introduce this flag in gyp instead of removing this from gn as they are valid flags for arm64. > > Let me know your thoughts. can you file a bug for this on crbug.com/v8?
On 2016/05/12 11:38:14, jochen (soon OOO) wrote: > On 2016/05/12 at 11:32:50, khasim.mohammed wrote: > > On 2016/05/12 11:03:14, jochen (soon OOO) wrote: > > > the gyp version runs with -m64 -O2 while the gn version specifies > > > -mcpu=cortex-a57+simd+crypto+fp+crc -Os > > > > > > that looks undesirable > > > > Questions > > a) Shouldn't it be like fixing gyp instead of gn ? > > b_ -m64 is not a valid option any more, I don't know why gyp is using this > still > > > > More details: > > > > a) Actually gn had no option for arm_fpu for 64bit ARM and I added that option > in build/config/arm.gni without this the build for 64bit chromium fails for > clang. > > > > b) The options introduced processor+simd+fp are all valid combinations for v8 > as well. > > > > c) crypto and crc can be removed but it's better to look for errors and issues > when we enable these compiler options. > > > > I suggest we introduce this flag in gyp instead of removing this from gn as > they are valid flags for arm64. > > > > Let me know your thoughts. > > can you file a bug for this on crbug.com/v8? https://bugs.chromium.org/p/v8/issues/detail?id=5008 Done. Can you please give a +1 to this patch. It would be good if this patch gets merged as we want to look at other open items in ARM64 for chromium browser. Thanks for the support.
thanks for filing the bug. I cc'd Rodolph to verify the flags. We shouldn't land flag changes like this without fullu understanding them, as they impact our shipping product.
On 2016/05/12 12:55:40, jochen (soon OOO) wrote: > thanks for filing the bug. I cc'd Rodolph to verify the flags. > > We shouldn't land flag changes like this without fullu understanding them, as > they impact our shipping product. Agree, I did check with Rodolph and team separately, Rodolph is on vacation for next two weeks, Martyn Capewell's reply is pasted below : " On ARM64, I think V8 assumes that ARM64 => FP + NEON is available, and relies on the compiler assuming this too. Therefore, it doesn't set any special CFLAGS to enable them. " So he was fine with us setting the above flags for -mcpu, I can add you to that mail thread.
On 2016/05/12 at 13:23:05, khasim.mohammed wrote: > On 2016/05/12 12:55:40, jochen (soon OOO) wrote: > > thanks for filing the bug. I cc'd Rodolph to verify the flags. > > > > We shouldn't land flag changes like this without fullu understanding them, as > > they impact our shipping product. > > Agree, I did check with Rodolph and team separately, Rodolph is on vacation for next two weeks, Martyn Capewell's reply is pasted below : > > " > On ARM64, I think V8 assumes that ARM64 => FP + NEON is available, and > relies on the compiler assuming this too. Therefore, it doesn't set any > special CFLAGS to enable them. > " > > So he was fine with us setting the above flags for -mcpu, I can add you to that mail thread. ok, lgtm then
On 2016/05/12 13:44:28, jochen (soon OOO) wrote: > On 2016/05/12 at 13:23:05, khasim.mohammed wrote: > > On 2016/05/12 12:55:40, jochen (soon OOO) wrote: > > > thanks for filing the bug. I cc'd Rodolph to verify the flags. > > > > > > We shouldn't land flag changes like this without fullu understanding them, > as > > > they impact our shipping product. > > > > Agree, I did check with Rodolph and team separately, Rodolph is on vacation > for next two weeks, Martyn Capewell's reply is pasted below : > > > > " > > On ARM64, I think V8 assumes that ARM64 => FP + NEON is available, and > > relies on the compiler assuming this too. Therefore, it doesn't set any > > special CFLAGS to enable them. > > " > > > > So he was fine with us setting the above flags for -mcpu, I can add you to > that mail thread. > > ok, lgtm then Thankyou. Nico, can you please merge these ?
One last comment, else looks good. https://codereview.chromium.org/1888763002/diff/20001/build/config/compiler/B... File build/config/compiler/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/20001/build/config/compiler/B... build/config/compiler/BUILD.gn:921: cflags += [ "-Wno-error=implicit-exception-spec-mismatch" ] This is still no good. We don't want warnings. See the similar comment at https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... What fires without this flag? Can we fix these warnings? (If not, and if the warning isn't useful, we should disable the warning, instead of making it not an error.)
On 2016/05/12 14:09:04, Nico wrote: > One last comment, else looks good. > > https://codereview.chromium.org/1888763002/diff/20001/build/config/compiler/B... > File build/config/compiler/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/20001/build/config/compiler/B... > build/config/compiler/BUILD.gn:921: cflags += [ > "-Wno-error=implicit-exception-spec-mismatch" ] > This is still no good. We don't want warnings. See the similar comment at > https://codereview.chromium.org/1888763002/diff/1/build/config/compiler/BUILD... > > What fires without this flag? Can we fix these warnings? (If not, and if the > warning isn't useful, we should disable the warning, instead of making it not an > error.) Sorry, missed this comment in Patch Set 2, have corrected this in Patch set 3. Have tested building the sources and booting.
https://codereview.chromium.org/1888763002/diff/40001/build/config/compiler/B... File build/config/compiler/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/40001/build/config/compiler/B... build/config/compiler/BUILD.gn:981: "-Wno-asm-operand-widths", as requested above, can you say what warns without this? can we fix these warnings?
On 2016/05/12 18:43:04, Nico wrote: > https://codereview.chromium.org/1888763002/diff/40001/build/config/compiler/B... > File build/config/compiler/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/40001/build/config/compiler/B... > build/config/compiler/BUILD.gn:981: "-Wno-asm-operand-widths", > as requested above, can you say what warns without this? can we fix these > warnings? I was facing this issue due to ../../v8/src/arm64/cpu-arm64.cc:22:31: note: use constraint modifier "w" __asm__ __volatile__("mrs %[ctr], ctr_el0" // NOLINT ^~~~~~ %w[ctr] This was fixed on master, had to rebase. The -Wno-asm-operand is not needed anymore. Have removed the flag.
https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... File third_party/boringssl/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] ?
On 2016/05/12 20:46:43, Nico wrote: > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > File third_party/boringssl/BUILD.gn (right): > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] > ? I get these errors if I enable -fno-integrated-as, I am not sure if this is still needed for armv7 (32bit). [2987/8045] ASM obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o FAILED: obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/boringssl/src/include -I../.. -Igen -fno-integrated-as -B../../third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin -march=armv8-a+crypto -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections -fno-short-enums -target aarch64-linux-android -mcpu=cortex-a57+simd+crypto+fp+crc -g1 --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 -c ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S -o obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S: Assembler messages: ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:32: Error: selected processor does not support `pmull v0.1q,v20.1d,v20.1d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:34: Error: selected processor does not support `pmull2 v2.1q,v20.2d,v20.2d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:35: Error: selected processor does not support `pmull v1.1q,v16.1d,v16.1d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:41: Error: selected processor does not support `pmull v18.1q,v0.1d,v19.1d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:48: Error: selected processor does not support `pmull v0.1q,v0.1d,v19.1d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:73: Error: selected processor does not support `pmull v0.1q,v20.1d,v3.1d' ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:75: Error: selected processor does not support `pmull2 v2.1q,v20.2d,v3.2d'
The CQ bit was checked by thakis@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1888763002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1888763002/60001
Yes, but you probably don't want to check in a commented-out line? I know that this used to be needed for 32-bit arm for boringssl. If that's no longer the case, please remove this line in a separate CL. Or, you can change this CL to only pass -fno-integrated-as for 32-bit arm for now (and then possibly remove that later). But please don't check in commented-out code. On Thu, May 12, 2016 at 5:24 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 20:46:43, Nico wrote: > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > File third_party/boringssl/BUILD.gn (right): > > > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] > > ? > > I get these errors if I enable -fno-integrated-as, I am not sure if this is > still needed for armv7 (32bit). > > [2987/8045] ASM obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > FAILED: obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o.d > -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS > -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 > -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 > -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL > -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 > -D_FILE_OFFSET_BITS=64 > -DANDROID -DHAVE_SYS_UIO_H -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS > -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof > -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 > -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/boringssl/src/include > -I../.. -Igen -fno-integrated-as > > -B../../third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin > -march=armv8-a+crypto -fno-strict-aliasing --param=ssp-buffer-size=4 > -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics > -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections > -fno-short-enums -target aarch64-linux-android > -mcpu=cortex-a57+simd+crypto+fp+crc -g1 > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > -c > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S -o > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S: > Assembler messages: > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:32: > Error: selected processor does not support `pmull v0.1q,v20.1d,v20.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:34: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v20.2d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:35: > Error: selected processor does not support `pmull v1.1q,v16.1d,v16.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:41: > Error: selected processor does not support `pmull v18.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:48: > Error: selected processor does not support `pmull v0.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:73: > Error: selected processor does not support `pmull v0.1q,v20.1d,v3.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:75: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v3.2d' > > > > > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
Yes, but you probably don't want to check in a commented-out line? I know that this used to be needed for 32-bit arm for boringssl. If that's no longer the case, please remove this line in a separate CL. Or, you can change this CL to only pass -fno-integrated-as for 32-bit arm for now (and then possibly remove that later). But please don't check in commented-out code. On Thu, May 12, 2016 at 5:24 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 20:46:43, Nico wrote: > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > File third_party/boringssl/BUILD.gn (right): > > > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] > > ? > > I get these errors if I enable -fno-integrated-as, I am not sure if this is > still needed for armv7 (32bit). > > [2987/8045] ASM obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > FAILED: obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o.d > -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS > -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 > -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 > -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL > -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 > -D_FILE_OFFSET_BITS=64 > -DANDROID -DHAVE_SYS_UIO_H -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS > -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof > -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 > -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/boringssl/src/include > -I../.. -Igen -fno-integrated-as > > -B../../third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin > -march=armv8-a+crypto -fno-strict-aliasing --param=ssp-buffer-size=4 > -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics > -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections > -fno-short-enums -target aarch64-linux-android > -mcpu=cortex-a57+simd+crypto+fp+crc -g1 > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > -c > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S -o > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S: > Assembler messages: > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:32: > Error: selected processor does not support `pmull v0.1q,v20.1d,v20.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:34: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v20.2d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:35: > Error: selected processor does not support `pmull v1.1q,v16.1d,v16.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:41: > Error: selected processor does not support `pmull v18.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:48: > Error: selected processor does not support `pmull v0.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:73: > Error: selected processor does not support `pmull v0.1q,v20.1d,v3.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:75: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v3.2d' > > > > > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
I kicked off a try run, that should tell us if 32-bit arm builds fine with this. On Thu, May 12, 2016 at 5:24 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 20:46:43, Nico wrote: > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > File third_party/boringssl/BUILD.gn (right): > > > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] > > ? > > I get these errors if I enable -fno-integrated-as, I am not sure if this is > still needed for armv7 (32bit). > > [2987/8045] ASM obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > FAILED: obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o.d > -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS > -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 > -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 > -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL > -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 > -D_FILE_OFFSET_BITS=64 > -DANDROID -DHAVE_SYS_UIO_H -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS > -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof > -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 > -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/boringssl/src/include > -I../.. -Igen -fno-integrated-as > > -B../../third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin > -march=armv8-a+crypto -fno-strict-aliasing --param=ssp-buffer-size=4 > -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics > -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections > -fno-short-enums -target aarch64-linux-android > -mcpu=cortex-a57+simd+crypto+fp+crc -g1 > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > -c > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S -o > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S: > Assembler messages: > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:32: > Error: selected processor does not support `pmull v0.1q,v20.1d,v20.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:34: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v20.2d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:35: > Error: selected processor does not support `pmull v1.1q,v16.1d,v16.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:41: > Error: selected processor does not support `pmull v18.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:48: > Error: selected processor does not support `pmull v0.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:73: > Error: selected processor does not support `pmull v0.1q,v20.1d,v3.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:75: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v3.2d' > > > > > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
I kicked off a try run, that should tell us if 32-bit arm builds fine with this. On Thu, May 12, 2016 at 5:24 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 20:46:43, Nico wrote: > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > File third_party/boringssl/BUILD.gn (right): > > > > > > https://codereview.chromium.org/1888763002/diff/60001/third_party/boringssl/B... > > third_party/boringssl/BUILD.gn:72: # asmflags += [ "-fno-integrated-as" ] > > ? > > I get these errors if I enable -fno-integrated-as, I am not sure if this is > still needed for armv7 (32bit). > > [2987/8045] ASM obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > FAILED: obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o.d > -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_NOTIFICATIONS > -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 > -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DUSE_OPENSSL=1 > -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DENABLE_WEBRTC=1 -DDISABLE_NACL > -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 > -DENABLE_AUTOFILL_DIALOG=1 -DVIDEO_HOLE=1 -DSAFE_BROWSING_DB_REMOTE > -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DENABLE_WEBVR > -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=263324-1 > -D_FILE_OFFSET_BITS=64 > -DANDROID -DHAVE_SYS_UIO_H -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS > -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D__compiler_offsetof=__builtin_offsetof > -Dnan=__builtin_nan -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 > -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -I../../third_party/boringssl/src/include > -I../.. -Igen -fno-integrated-as > > -B../../third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin > -march=armv8-a+crypto -fno-strict-aliasing --param=ssp-buffer-size=4 > -fstack-protector -funwind-tables -fPIC -pipe -fcolor-diagnostics > -fdebug-prefix-map=/home/khasim/chromium/src=. -ffunction-sections > -fno-short-enums -target aarch64-linux-android > -mcpu=cortex-a57+simd+crypto+fp+crc -g1 > --sysroot=../../third_party/android_tools/ndk/platforms/android-21/arch-arm64 > -c > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S -o > obj/third_party/boringssl/boringssl_asm/ghashv8-armx64.o > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S: > Assembler messages: > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:32: > Error: selected processor does not support `pmull v0.1q,v20.1d,v20.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:34: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v20.2d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:35: > Error: selected processor does not support `pmull v1.1q,v16.1d,v16.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:41: > Error: selected processor does not support `pmull v18.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:48: > Error: selected processor does not support `pmull v0.1q,v0.1d,v19.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:73: > Error: selected processor does not support `pmull v0.1q,v20.1d,v3.1d' > ../../third_party/boringssl/linux-aarch64/crypto/modes/ghashv8-armx64.S:75: > Error: selected processor does not support `pmull2 v2.1q,v20.2d,v3.2d' > > > > > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: cast_shell_android on tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...)
On 2016/05/12 21:43:49, commit-bot: I haz the power wrote: > Dry run: Try jobs failed on following builders: > cast_shell_android on tryserver.chromium.android (JOB_FAILED, > https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...) diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn index 9b9bada..2f8ccc6 100644 --- a/third_party/boringssl/BUILD.gn +++ b/third_party/boringssl/BUILD.gn @@ -67,9 +67,11 @@ if (is_win && !is_msan) { asmflags = [] include_dirs = [ "src/include" ] - if (current_cpu == "arm" && is_clang) { - # TODO(hans) Enable integrated-as (crbug.com/124610). - asmflags += [ "-fno-integrated-as" ] + if ((current_cpu == "arm" || current_cpu == "arm64") && is_clang) { + if (current_cpu == "arm") { + # TODO(hans) Enable integrated-as (crbug.com/124610). + asmflags += [ "-fno-integrated-as" ] + } Is this fine ? I can post this for now.
That's ok. Do you understand why the external assembler doesn't work for processing assembly files with clang though? We do do arm64 builds with gcc which uses the same external assembler, and it works there. Why would this be different? On Thu, May 12, 2016 at 5:54 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 21:43:49, commit-bot: I haz the power wrote: > > Dry run: Try jobs failed on following builders: > > cast_shell_android on tryserver.chromium.android (JOB_FAILED, > > > > https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a... > ) > > diff --git a/third_party/boringssl/BUILD.gn > b/third_party/boringssl/BUILD.gn > index 9b9bada..2f8ccc6 100644 > --- a/third_party/boringssl/BUILD.gn > +++ b/third_party/boringssl/BUILD.gn > @@ -67,9 +67,11 @@ if (is_win && !is_msan) { > asmflags = [] > include_dirs = [ "src/include" ] > > - if (current_cpu == "arm" && is_clang) { > - # TODO(hans) Enable integrated-as (crbug.com/124610). > - asmflags += [ "-fno-integrated-as" ] > + if ((current_cpu == "arm" || current_cpu == "arm64") && is_clang) { > + if (current_cpu == "arm") { > + # TODO(hans) Enable integrated-as (crbug.com/124610). > + asmflags += [ "-fno-integrated-as" ] > + } > > Is this fine ? I can post this for now. > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
That's ok. Do you understand why the external assembler doesn't work for processing assembly files with clang though? We do do arm64 builds with gcc which uses the same external assembler, and it works there. Why would this be different? On Thu, May 12, 2016 at 5:54 PM, <khasim.mohammed@linaro.org> wrote: > On 2016/05/12 21:43:49, commit-bot: I haz the power wrote: > > Dry run: Try jobs failed on following builders: > > cast_shell_android on tryserver.chromium.android (JOB_FAILED, > > > > https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a... > ) > > diff --git a/third_party/boringssl/BUILD.gn > b/third_party/boringssl/BUILD.gn > index 9b9bada..2f8ccc6 100644 > --- a/third_party/boringssl/BUILD.gn > +++ b/third_party/boringssl/BUILD.gn > @@ -67,9 +67,11 @@ if (is_win && !is_msan) { > asmflags = [] > include_dirs = [ "src/include" ] > > - if (current_cpu == "arm" && is_clang) { > - # TODO(hans) Enable integrated-as (crbug.com/124610). > - asmflags += [ "-fno-integrated-as" ] > + if ((current_cpu == "arm" || current_cpu == "arm64") && is_clang) { > + if (current_cpu == "arm") { > + # TODO(hans) Enable integrated-as (crbug.com/124610). > + asmflags += [ "-fno-integrated-as" ] > + } > > Is this fine ? I can post this for now. > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2016/05/12 21:57:44, Nico wrote: > That's ok. > Thanks, posted now. > Do you understand why the external assembler doesn't work for processing > assembly files with clang though? We do do arm64 builds with gcc which uses > the same external assembler, and it works there. Why would this be > different? > Agree, I am not sure why this would be different, I will look into this next and update. > On Thu, May 12, 2016 at 5:54 PM, <mailto:khasim.mohammed@linaro.org> wrote: > > > On 2016/05/12 21:43:49, commit-bot: I haz the power wrote: > > > Dry run: Try jobs failed on following builders: > > > cast_shell_android on tryserver.chromium.android (JOB_FAILED, > > > > > > > > https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a... > > ) > > > > diff --git a/third_party/boringssl/BUILD.gn > > b/third_party/boringssl/BUILD.gn > > index 9b9bada..2f8ccc6 100644 > > --- a/third_party/boringssl/BUILD.gn > > +++ b/third_party/boringssl/BUILD.gn > > @@ -67,9 +67,11 @@ if (is_win && !is_msan) { > > asmflags = [] > > include_dirs = [ "src/include" ] > > > > - if (current_cpu == "arm" && is_clang) { > > - # TODO(hans) Enable integrated-as (crbug.com/124610). > > - asmflags += [ "-fno-integrated-as" ] > > + if ((current_cpu == "arm" || current_cpu == "arm64") && is_clang) { > > + if (current_cpu == "arm") { > > + # TODO(hans) Enable integrated-as (crbug.com/124610). > > + asmflags += [ "-fno-integrated-as" ] > > + } > > > > Is this fine ? I can post this for now. > > > > https://codereview.chromium.org/1888763002/ > > > > -- > You received this message because you are subscribed to the Google Groups > "Chromium-reviews" group. > To unsubscribe from this group and stop receiving emails from it, send an email > to mailto:chromium-reviews+unsubscribe@chromium.org.
On 2016/05/12 22:03:55, khasim.mohammed wrote: > On 2016/05/12 21:57:44, Nico wrote: > > That's ok. > > > Thanks, posted now. > > > Do you understand why the external assembler doesn't work for processing > > assembly files with clang though? We do do arm64 builds with gcc which uses > > the same external assembler, and it works there. Why would this be > > different? > > > Agree, I am not sure why this would be different, I will look into this next and > update. > Can you please consider the latest patch set for merge ? it might take some time for me to understand the external assembler dependency, will work on that later / separately. > > On Thu, May 12, 2016 at 5:54 PM, <mailto:khasim.mohammed@linaro.org> wrote: > > > > > On 2016/05/12 21:43:49, commit-bot: I haz the power wrote: > > > > Dry run: Try jobs failed on following builders: > > > > cast_shell_android on tryserver.chromium.android (JOB_FAILED, > > > > > > > > > > > > > https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a... > > > ) > > > > > > diff --git a/third_party/boringssl/BUILD.gn > > > b/third_party/boringssl/BUILD.gn > > > index 9b9bada..2f8ccc6 100644 > > > --- a/third_party/boringssl/BUILD.gn > > > +++ b/third_party/boringssl/BUILD.gn > > > @@ -67,9 +67,11 @@ if (is_win && !is_msan) { > > > asmflags = [] > > > include_dirs = [ "src/include" ] > > > > > > - if (current_cpu == "arm" && is_clang) { > > > - # TODO(hans) Enable integrated-as (crbug.com/124610). > > > - asmflags += [ "-fno-integrated-as" ] > > > + if ((current_cpu == "arm" || current_cpu == "arm64") && is_clang) { > > > + if (current_cpu == "arm") { > > > + # TODO(hans) Enable integrated-as (crbug.com/124610). > > > + asmflags += [ "-fno-integrated-as" ] > > > + } > > > > > > Is this fine ? I can post this for now. > > > > > > https://codereview.chromium.org/1888763002/ > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > > "Chromium-reviews" group. > > To unsubscribe from this group and stop receiving emails from it, send an > email > > to mailto:chromium-reviews+unsubscribe@chromium.org.
lgtm https://codereview.chromium.org/1888763002/diff/80001/third_party/boringssl/B... File third_party/boringssl/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/80001/third_party/boringssl/B... third_party/boringssl/BUILD.gn:80: asmflags += [ "-B${rebased_android_toolchain_root}/bin" ] The only other thing this if does is add the -B flag, which isn't used without -fno-integrated-as. Can you just revert the changes to this file completely? (but as-is is fine too if you'll follow up in this area anyhow)
The CQ bit was checked by thakis@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1888763002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1888763002/80001
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
On 2016/05/13 00:07:23, commit-bot: I haz the power wrote: > Dry run: This issue passed the CQ dry run. I will work on -fno-integrated-as and the -B flag in a separate CL as follow up on crbug.com/124610 Thanks.
On 2016/05/13 02:59:09, khasim.mohammed wrote: > On 2016/05/13 00:07:23, commit-bot: I haz the power wrote: > > Dry run: This issue passed the CQ dry run. > > I will work on -fno-integrated-as and the -B flag in a separate CL as follow up > on crbug.com/124610 > > Thanks. You can hit the "commit" checkbox to get this landed.
The CQ bit was checked by khasim.mohammed@linaro.org
The patchset sent to the CQ was uploaded after l-g-t-m from urvang@chromium.org, jochen@chromium.org, rtoy@chromium.org Link to the patchset: https://codereview.chromium.org/1888763002/#ps80001 (title: "Patch Set 5: Keep -fno-integrated-as as ARMv7 needs it")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1888763002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1888763002/80001
Message was sent while issue was closed.
Committed patchset #5 (id:80001)
Message was sent while issue was closed.
Description was changed from ========== Build 64bit browser for Android with clang for ARMv8 This series is to a) Add my name to AUTHORS I have few patches to submit to fix the chromium 64bit browser build for ARMv8 with clang. b) Fix FPCR access for 64bit clang compilation Compilation fails as the MSR and MRS instructions access the FPCR register in 32bit mode. c) Fix Build.gn and config files To build 64bit browser for Android with clang for ARMv8 BUG : http://crbug.com/539781 Signed-off-by: Bernhard Rosenkränzer <bero@linaro.org> Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@linaro.org> BUG=539781 R=thakis@chromium.org TEST=download apk to ARMv8 board and launch ========== to ========== Build 64bit browser for Android with clang for ARMv8 This series is to a) Add my name to AUTHORS I have few patches to submit to fix the chromium 64bit browser build for ARMv8 with clang. b) Fix FPCR access for 64bit clang compilation Compilation fails as the MSR and MRS instructions access the FPCR register in 32bit mode. c) Fix Build.gn and config files To build 64bit browser for Android with clang for ARMv8 BUG : http://crbug.com/539781 Signed-off-by: Bernhard Rosenkränzer <bero@linaro.org> Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@linaro.org> BUG=539781 R=thakis@chromium.org TEST=download apk to ARMv8 board and launch Committed: https://crrev.com/2c5ec51ea564705b02dcb6aeff6a56722cc3890f Cr-Commit-Position: refs/heads/master@{#393517} ==========
Message was sent while issue was closed.
Patchset 5 (id:??) landed as https://crrev.com/2c5ec51ea564705b02dcb6aeff6a56722cc3890f Cr-Commit-Position: refs/heads/master@{#393517}
Message was sent while issue was closed.
rmcilroy@chromium.org changed reviewers: + rmcilroy@chromium.org
Message was sent while issue was closed.
https://codereview.chromium.org/1888763002/diff/80001/build/config/android/BU... File build/config/android/BUILD.gn (right): https://codereview.chromium.org/1888763002/diff/80001/build/config/android/BU... build/config/android/BUILD.gn:93: # TODO: Enable clang support for Android Arm64. http://crbug.com/539781 You could remove the comment and TODO here if this has now been tested.
Message was sent while issue was closed.
primiano@chromium.org changed reviewers: + primiano@chromium.org
Message was sent while issue was closed.
https://codereview.chromium.org/1888763002/diff/80001/build/config/arm.gni File build/config/arm.gni (right): https://codereview.chromium.org/1888763002/diff/80001/build/config/arm.gni#ne... build/config/arm.gni:75: arm_fpu = "cortex-a57+simd+crypto+fp+crc" If I read this code correctly, these lines will also affect GCC builds, which is what we use to ship the official Chrome for Android for 64 bit. What gives us the guarantee that all arm64 devices will have these extensions? If I look to Cortex A53 docs [1] it says things like "The **optional** Cortex-A53 MPCore Cryptography Extension supports the ARMv8 Cryptography Extensions." Which seems to suggest that can be devices out there without this extension. Also, what is the consequence of setting arm_fpu=cortex-a57. What happens if we end up on a non-Cortex A57? By looking at the crash/ server (internal only sorry) I see what run on a bunch of 64-bit devices that are Cortex A53 (e..g the Lenovo A7000-a). What will happen there? unless I am missing something we didn't use to have these flags on gyp. [1] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500e/CJHDEBAF...
Message was sent while issue was closed.
rmcilroy@chromium.org changed reviewers: + rodolph.perfetta@arm.com
Message was sent while issue was closed.
Adding Rodolph - could you take a look at Primiano's last comment? Should we be setting these flags universally for Arm64 builds?
Message was sent while issue was closed.
Rodolph's away until next week, but I'll comment. Whilst all ARMv8 implementations should support SIMD and FP, crypto is indeed optional. We don't support crypto in V8's 64-bit simulator, either. Setting "cortex-a57" should only affect scheduling of static code; other ARMv8 cores, including Cortex-A53, will support all instructions that the compiler generates for A57. "big.LITTLE" systems wouldn't be feasible otherwise. In the past, we've relied on the default compiler flags for 64-bit builds. I presume Khasim has measured some performance improvement for Chrome that prompted this change?
Message was sent while issue was closed.
On 2016/05/16 15:01:48, martyn.capewell wrote: > Rodolph's away until next week, but I'll comment. > > Whilst all ARMv8 implementations should support SIMD and FP, crypto is indeed > optional. We don't support crypto in V8's 64-bit simulator, either. > > > In the past, we've relied on the default compiler flags for 64-bit builds. I > presume Khasim has measured some performance improvement for Chrome that > prompted this change? The thing that worries me realistically is that we ship this and it passes testing on the few devices we test on, and than it booms on some random cheap SoC out there who decided to not implement crypto or any other optional feature. > Setting "cortex-a57" should only affect scheduling of static code; other ARMv8 > cores, including Cortex-A53, will support all instructions that the compiler > generates for A57. "big.LITTLE" systems wouldn't be feasible otherwise. So are you saying that worst cast the generated code is going to be slower but still functional?
Message was sent while issue was closed.
On 2016/05/16 15:49:04, Primiano Tucci wrote: > So are you saying that worst cast the generated code is going to be slower but > still functional? Yes.
Message was sent while issue was closed.
Thanks for catching that. khasim, can you revert the arm_fpu bit of this CL please?
Message was sent while issue was closed.
On 16 May 2016 at 21:51, <thakis@chromium.org> wrote: > Thanks for catching that. khasim, can you revert the arm_fpu bit of this CL > please? > > Sure, will test and submit a separate patch. Meanwhile, can we introduce the cortex flags and other accelerator flags for ARM64 ? I feel we are not utilizing the hardware accelerators efficiently. Here are the options that we can support http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774b/chr13926... > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 16 May 2016 at 21:51, <thakis@chromium.org> wrote: > Thanks for catching that. khasim, can you revert the arm_fpu bit of this CL > please? > > Sure, will test and submit a separate patch. Meanwhile, can we introduce the cortex flags and other accelerator flags for ARM64 ? I feel we are not utilizing the hardware accelerators efficiently. Here are the options that we can support http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774b/chr13926... > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 2016/05/16 16:59:24, khasim.mohammed wrote: > On 16 May 2016 at 21:51, <mailto:thakis@chromium.org> wrote: > > > Thanks for catching that. khasim, can you revert the arm_fpu bit of this CL > > please? > > > > Sure, will test and submit a separate patch. > > Meanwhile, can we introduce the cortex flags and other accelerator flags > for ARM64 ? I feel we are not utilizing the hardware accelerators > efficiently. > > Here are the options that we can support > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0774b/chr13926... > > > > https://codereview.chromium.org/1888763002/ > > > > -- > You received this message because you are subscribed to the Google Groups > "Chromium-reviews" group. > To unsubscribe from this group and stop receiving emails from it, send an email > to mailto:chromium-reviews+unsubscribe@chromium.org. Have reverted this patch and the CL is : https://codereview.chromium.org/1987733002
Message was sent while issue was closed.
A general question: the title of this CL says "Build 64bit browser for Android with clang for ARMv8" suggesting that this switches the build of chrome for android on arm64 to clang. but this seems not to be the case here, right? Or am I missing something? (IIRC that is a matter of tweaking the recipe to say is_clang=1). Is it just a miswording of the CL? Or is there a plan (And some other cl) to switch to clang by default on arm64?
Message was sent while issue was closed.
On 19 May 2016 at 21:29, <primiano@chromium.org> wrote: > A general question: the title of this CL says "Build 64bit browser for > Android > with clang for ARMv8" > suggesting that this switches the build of chrome for android on arm64 to > clang. > but this seems not to be the case here, right? Or am I missing something? > (IIRC that is a matter of tweaking the recipe to say is_clang=1). > > You are correct, we are not making clang as default yet. But as you mentioned above one should set is_clang=1 and target_cpu=arm64. > Is it just a miswording of the CL? Or is there a plan (And some other cl) > to > switch to clang by default on arm64? > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 19 May 2016 at 21:29, <primiano@chromium.org> wrote: > A general question: the title of this CL says "Build 64bit browser for > Android > with clang for ARMv8" > suggesting that this switches the build of chrome for android on arm64 to > clang. > but this seems not to be the case here, right? Or am I missing something? > (IIRC that is a matter of tweaking the recipe to say is_clang=1). > > You are correct, we are not making clang as default yet. But as you mentioned above one should set is_clang=1 and target_cpu=arm64. > Is it just a miswording of the CL? Or is there a plan (And some other cl) > to > switch to clang by default on arm64? > > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 19 May 2016 at 22:40, Khasim Syed Mohammed <khasim.mohammed@linaro.org> wrote: > > > On 19 May 2016 at 21:29, <primiano@chromium.org> wrote: > >> A general question: the title of this CL says "Build 64bit browser for >> Android >> with clang for ARMv8" >> suggesting that this switches the build of chrome for android on arm64 to >> clang. >> but this seems not to be the case here, right? Or am I missing something? >> (IIRC that is a matter of tweaking the recipe to say is_clang=1). >> >> You are correct, we are not making clang as default yet. > Sorry, I think clang is already set as default. As I read from the instructions to build chromium for Android. > But as you mentioned above one should set is_clang=true and > target_cpu=arm64. > But target_cpu was arm, so it used to build chromium in 32bit. This patch changed it to support 64bit for ARM > >> Is it just a miswording of the CL? Or is there a plan (And some other cl) >> to >> switch to clang by default on arm64? >> >> https://codereview.chromium.org/1888763002/ >> > > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 19 May 2016 at 22:40, Khasim Syed Mohammed <khasim.mohammed@linaro.org> wrote: > > > On 19 May 2016 at 21:29, <primiano@chromium.org> wrote: > >> A general question: the title of this CL says "Build 64bit browser for >> Android >> with clang for ARMv8" >> suggesting that this switches the build of chrome for android on arm64 to >> clang. >> but this seems not to be the case here, right? Or am I missing something? >> (IIRC that is a matter of tweaking the recipe to say is_clang=1). >> >> You are correct, we are not making clang as default yet. > Sorry, I think clang is already set as default. As I read from the instructions to build chromium for Android. > But as you mentioned above one should set is_clang=true and > target_cpu=arm64. > But target_cpu was arm, so it used to build chromium in 32bit. This patch changed it to support 64bit for ARM > >> Is it just a miswording of the CL? Or is there a plan (And some other cl) >> to >> switch to clang by default on arm64? >> >> https://codereview.chromium.org/1888763002/ >> > > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 2016/05/19 at 17:14:01, khasim.mohammed wrote: > On 19 May 2016 at 22:40, Khasim Syed Mohammed <khasim.mohammed@linaro.org> > wrote: > > > > > > > On 19 May 2016 at 21:29, <primiano@chromium.org> wrote: > > > >> A general question: the title of this CL says "Build 64bit browser for > >> Android > >> with clang for ARMv8" > >> suggesting that this switches the build of chrome for android on arm64 to > >> clang. > >> but this seems not to be the case here, right? Or am I missing something? > >> (IIRC that is a matter of tweaking the recipe to say is_clang=1). > >> > >> You are correct, we are not making clang as default yet. > > > Sorry, I think clang is already set as default. As I read from the > instructions to build chromium for Android. > > > > But as you mentioned above one should set is_clang=true and > > target_cpu=arm64. > > > > But target_cpu was arm, so it used to build chromium in 32bit. This patch > changed it to support 64bit for ARM What? Chrome on Android originally ran in 64-bit mode on Arm64. I have heard (but did not check) that it might be 32-bit now. Are you forcing Chrome to run as 64-bit now by default? > > > > > >> Is it just a miswording of the CL? Or is there a plan (And some other cl) > >> to > >> switch to clang by default on arm64? > >> > >> https://codereview.chromium.org/1888763002/ > >> > > > > > > -- > You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. > To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org. >
Message was sent while issue was closed.
I am out of office until the 24th of May 2016 I will reply to your message on my return. Please contact Martyn Capewell (martyn.capewell@arm.com) for any urgent matter. Regards, Rodolph. IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
Message was sent while issue was closed.
> On 2016/05/19 at 17:14:01, khasim.mohammed wrote: > > But target_cpu was arm, so it used to build chromium in 32bit. This patch > > changed it to support 64bit for ARM Not sure I follow here, can you expand? > What? Chrome on Android originally ran in 64-bit mode on Arm64. I have heard > (but did not check) that it might be 32-bit now. > > Are you forcing Chrome to run as 64-bit now by default? Hmm I don't think so (but I'd like to understand what it really meant). The fact that we run 32 or 64 bit should depend only on what we build (whether target_cpu=arm or arm64) and ultimately which apk we ship, which shouldn't be anything that you can control in the chromium tree (unless we do some dirty hackery) I think/hope that what he means here that so far ony is_clang=true and target_cpu=arm was supported. After this patch also is_clang=true and target_cpu=arm64
Message was sent while issue was closed.
On 19 May 2016 at 22:56, <primiano@chromium.org> wrote: > > On 2016/05/19 at 17:14:01, khasim.mohammed wrote: > > > But target_cpu was arm, so it used to build chromium in 32bit. This > patch > > > changed it to support 64bit for ARM > Not sure I follow here, can you expand? > > > What? Chrome on Android originally ran in 64-bit mode on Arm64. I have > heard > > (but did not check) that it might be 32-bit now. > > > > Are you forcing Chrome to run as 64-bit now by default? > Hmm I don't think so (but I'd like to understand what it really meant). > The fact that we run 32 or 64 bit should depend only on what we build > (whether > target_cpu=arm or arm64) and ultimately which apk we ship, which shouldn't > be > anything that you can control in the chromium tree (unless we do some dirty > hackery) > > I think/hope that what he means here that so far ony is_clang=true and > target_cpu=arm was supported. > After this patch also is_clang=true and target_cpu=arm64 > > Correct, and we are not forcing anything, it's all controlled by gn args it can be arm or arm64. > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Blink Reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 19 May 2016 at 22:56, <primiano@chromium.org> wrote: > > On 2016/05/19 at 17:14:01, khasim.mohammed wrote: > > > But target_cpu was arm, so it used to build chromium in 32bit. This > patch > > > changed it to support 64bit for ARM > Not sure I follow here, can you expand? > > > What? Chrome on Android originally ran in 64-bit mode on Arm64. I have > heard > > (but did not check) that it might be 32-bit now. > > > > Are you forcing Chrome to run as 64-bit now by default? > Hmm I don't think so (but I'd like to understand what it really meant). > The fact that we run 32 or 64 bit should depend only on what we build > (whether > target_cpu=arm or arm64) and ultimately which apk we ship, which shouldn't > be > anything that you can control in the chromium tree (unless we do some dirty > hackery) > > I think/hope that what he means here that so far ony is_clang=true and > target_cpu=arm was supported. > After this patch also is_clang=true and target_cpu=arm64 > > Correct, and we are not forcing anything, it's all controlled by gn args it can be arm or arm64. > https://codereview.chromium.org/1888763002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
Message was sent while issue was closed.
On 2016/05/19 17:29:03, khasim.mohammed wrote: > > Correct, and we are not forcing anything, it's all controlled by gn args > it can be arm or arm64. SG it's all great. Thanks for the clarification. |