Thanks Jakob, filed a bug: 
https://bugs.chromium.org/p/v8/issues/detail?id=8795

On Wednesday, February 6, 2019 at 5:57:00 PM UTC+2, Jakob Gruber wrote:
>
> This 
> <https://cs.chromium.org/chromium/src/v8/src/snapshot/embedded-file-writer.cc?l=135&rcl=07a4ab041b9731c3feb6c247f74f0920863b28be>
>  is 
> where the _ prefixes are generated. Specifically, mksnapshot generates an 
> embedded.S file based on the host OS, which is incorrect for 
> cross-compilation. A similar issue came up for OSX-to-Fuchsia 
> cross-compiles, see https://crrev.com/c/1377230 for the fix. Something 
> similar should also work for you. 
>
> As a more general solution we should dispatch based on the target (instead 
> of host) OS / architecture in this entire file. Could you file a bug? I'm 
> also happy to accept patches for this.
>
> On Wed, Feb 6, 2019 at 4:35 PM Darin Dimitrov <darin.d...@gmail.com 
> <javascript:>> wrote:
>
>> I am trying to cross-compile V8 for ARM on MacOS. At some point of the 
>> compilation process, mksnapshot is used to create the snapshot_blob.bin 
>> file:
>>
>> python ../../tools/run.py ./clang_x86_v8_arm/mksnapshot 
>> --turbo_instruction_scheduling 
>> --embedded_src gen/embedded.S --embedded_variant Default --random-seed 
>> 314159265 --startup_blob snapshot_blob.bin
>>
>> The resulting embedded.S seems invalid because all label names are 
>> prefixed with _
>>
>> .text
>> .balign 32
>> _v8_Default_embedded_blob_data_:
>>   .octa 0x3200000030c0000000000d96c5c,0x3a0000000380000036000000038
>>   ....
>> _Builtins_AdaptorWithExitFrame:
>>   .octa 0xe24dd004e1a04080e2800005e591700f,
>> 0xee0eca10e51acfc3e52d3004e92d0012
>>   ...
>> _Builtins_AdaptorWithBuiltinExitFrame:
>>   .octa 0xe24dd004e1a04080e2800005e591700f,
>> 0xee0eca10e51acfc3e52d3004e92d0012
>>   ...
>> _Builtins_ArgumentsAdaptorTrampoline:
>>   .octa 0xe15000020a000034e152000ce30fcfff,
>> 0xe92d4813e3a04024e0800000ba000012
>>   ...
>>
>>
>>
>> As a result, a compilation error is emitted:
>>
>> FAILED: obj/v8_external_snapshot/embedded.o
>>
>> ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD -MF obj/
>> v8_external_snapshot/embedded.o.d -DV8_DEPRECATION_WARNINGS -DNO_TCMALLOC 
>> -DSAFE_BROWSING_DB_REMOTE -DOFFICIAL_BUILD -DCHROMIUM_BUILD 
>> -DFIELDTRIAL_TESTING_ENABLED 
>> -D_GNU_SOURCE -DANDROID -DHAVE_SYS_UIO_H -DANDROID_NDK_VERSION_ROLL=r16_1 
>> -DCR_CLANG_REVISION=\"346388-5\" -D__STDC_CONSTANT_MACROS 
>> -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D__GNU_SOURCE=1 
>> -DCHROMIUM_CXX_TWEAK_INLINES -DNDEBUG -DNVALGRIND 
>> -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 
>> -DENABLE_MINOR_MC -DV8_DEPRECATION_WARNINGS 
>> -DV8_IMMINENT_DEPRECATION_WARNINGS -DV8_USE_SNAPSHOT 
>> -DV8_USE_EXTERNAL_STARTUP_DATA -DV8_CONCURRENT_MARKING 
>> -DV8_EMBEDDED_BUILTINS -DV8_TARGET_ARCH_ARM -DCAN_USE_ARMV7_INSTRUCTIONS 
>> -DCAN_USE_VFP3_INSTRUCTIONS -DCAN_USE_VFP32DREGS -DCAN_USE_NEON -I../.. 
>> -Igen -I../.. -Igen -fPIC -fno-strict-aliasing --param=ssp-buffer-size=4 
>> -fstack-protector -funwind-tables -fPIC -fcolor-diagnostics 
>> -fmerge-all-constants -Xclang -mllvm -Xclang 
>> -instcombine-lower-dbg-declare=0 -no-canonical-prefixes -std=c11 
>> -ffunction-sections -fno-short-enums --target=arm-linux-androideabi 
>> -isystem../../third_party/android_ndk/sysroot/usr/include/arm-linux-androideabi
>>  
>> -D__ANDROID_API__=16 -DHAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC=1 
>> -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -mfpu=neon -g0 
>> --sysroot=../../third_party/android_ndk/sysroot -c gen/embedded.S -o 
>> obj/v8_external_snapshot/embedded.o
>> gen/embedded.S:41481:17: error: unable to emit symbol attribute in 
>> directive
>> .private_extern _v8_Default_embedded_blob_
>>                 ^
>> gen/embedded.S:41486:1: error: unknown directive
>> .const_data
>> ^
>> gen/embedded.S:41487:17: error: unable to emit symbol attribute in 
>> directive
>> .private_extern _v8_Default_embedded_blob_size_
>>                 ^
>> ninja: build stopped: subcommand failed.
>>
>>
>>
>> The same process works fine on Ubuntu where the embedded.S labels are not 
>> prefixed with underscores.
>>
>> Do you have any idea where this difference in the generated embedded.S 
>> might come from?
>>
>> NOTE: I am building from the 7.2.502.24 tag.
>>
>>
>>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to