iOS ARM64 only: undefined symbol: v8_Default_embedded_blob_code_

84 views
Skip to first unread message

Benoit Blanchon

unread,
Dec 7, 2022, 4:08:52 AM12/7/22
to v8-users
Hi,

I successfully build PDFium with V8 on most platforms, but I'm having the following linker errors when target_os=ios and target_cpu=arm64:

ld64.lld: error: undefined symbol: v8_Default_embedded_blob_code_
>>> referenced by isolate.cc:0 (../v8/src/execution/isolate.cc:0)
>>>               obj/v8/v8_base_without_compiler/isolate.o:(symbol v8::internal::Isolate::InitializeDefaultEmbeddedBlob()+0x104)
>>> referenced by isolate.cc:0 (../v8/src/execution/isolate.cc:0)
>>>               obj/v8/v8_base_without_compiler/isolate.o:(symbol v8::internal::Isolate::InitializeDefaultEmbeddedBlob()+0x100)
>>> referenced by deoptimizer-cfi-builtins.cc:52 (../v8/src/deoptimizer/deoptimizer-cfi-builtins.cc:52)
>>>               obj/v8/v8_snapshot/deoptimizer-cfi-builtins.o:(symbol v8::internal::Deoptimizer::IsValidReturnAddress(unsigned long, v8::internal::Isolate*)+0x44)
>>> referenced 1 more times

ld64.lld: error: undefined symbol: v8_Default_embedded_blob_data_
...
ld64.lld: error: undefined symbol: v8_Default_embedded_blob_data_size_
...
ld64.lld: error: undefined symbol: v8_Default_embedded_blob_code_size_
...
ld64.lld: error: undefined symbol: Builtins_RestartFrameTrampoline
...
ld64.lld: error: undefined symbol: Builtins_BaselineOrInterpreterEnterAtNextBytecode
...
ld64.lld: error: undefined symbol: Builtins_BaselineOrInterpreterEnterAtBytecode
...
ld64.lld: error: undefined symbol: construct_stub_invoke_deopt_addr
...
ld64.lld: error: undefined symbol: construct_stub_create_deopt_addr
...
ld64.lld: error: undefined symbol: Builtins_ContinueToJavaScriptBuiltin
...
ld64.lld: error: undefined symbol: Builtins_ContinueToJavaScriptBuiltinWithResult
...
ld64.lld: error: undefined symbol: Builtins_ContinueToCodeStubBuiltin
...
ld64.lld: error: undefined symbol: Builtins_ContinueToCodeStubBuiltinWithResult
...
ld64.lld: error: undefined symbol: Builtins_InterpreterEnterAtNextBytecode
...
ld64.lld: error: undefined symbol: Builtins_InterpreterEnterAtBytecode

As far as I can tell, v8_Default_embedded_blob_data_ is defined in v8/src/builtins/arm64/builtins-arm64.cc, which seems to build fine (see log).

I originally asked this question on the PDFium list but was told to ask it here instead.

Any idea how I could fix this?

Best regards,
Benoit

Jakob Gruber

unread,
Dec 14, 2022, 1:45:14 AM12/14/22
to v8-u...@googlegroups.com
Hey Benoit,

the v8_Default_embedded_blob_code_ symbol is created by the embedded file writer and ends up in out/foo/gen/embedded.S in your build directory. I'd make sure that file exists (or the .cc equivalent), has expected contents, and is included in the build.

--
--
v8-users mailing list
v8-u...@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+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/fedd3b80-41e9-4118-bccd-f0e0a6d6d569n%40googlegroups.com.

Georgia Kouveli

unread,
Dec 14, 2022, 8:46:45 AM12/14/22
to v8-users
Hey Benoit,

It looks like CFI is incorrectly being enabled for your build, although this is not supported for this platform at the moment. Until we fix this in the Chromium build system, can you try adding:
      arm_control_flow_integrity = "none"
explicitly to your config for now?

Benoit Blanchon

unread,
Dec 14, 2022, 11:25:42 AM12/14/22
to v8-users
Hi Georgia,

Adding  arm_control_flow_integrity = "none" in the configuration did fix the issue.
Thanks !

Best regards,
Benoit
Reply all
Reply to author
Forward
0 new messages