unknown type issue with library files

42 views
Skip to first unread message

TK Lee

unread,
May 27, 2025, 1:49:45 PMMay 27
to v8-users
I built v8 with the following args.gn options and when I ran 'objdump -f' for output library files, I am seeing 'unknown type' and 'architecture: unknowm' issues with them(They should be x64). So, I could not use them to link to my application due to link error. My application was built with gcc-toolset-12. Anyone knows how to fix this issue? I guess these library files are 'thin archive' and if that's the issue, how can I build for 'thick archive' ? Any advice would be appreciated.

Thanks,
TK


------- args.gn ------
v8_static_library = true
is_component_build = false
is_debug = false
target_cpu = "x64"
use_custom_libcxx = false
v8_monolithic = true
v8_monolithic_for_shared_library = true
v8_use_external_startup_data = false
is_clang = true
clang_use_chrome_plugins = false
treat_warnings_as_errors = false
v8_enable_fast_torque = false
v8_enable_sandbox = false
v8_enable_backtrace = false
v8_enable_disassembler = false
v8_enable_object_print = false
v8_enable_verify_heap = false
dcheck_always_on = false
use_sysroot = false
v8_enable_webassembly = false
v8_enable_i18n_support = true
icu_use_data_file = false

-------------- unknow type issues -------------------
objdump -f out/release/obj/libv8_libbase.a | more
objdump: out/release/obj/v8_libbase/bits.o: unknown type [0x40000014] section `.crel.eh_frame'
In archive out/release/obj/libv8_libbase.a:

out/release/obj/v8_libbase/abort-mode.o:     file format elf64-x86-64
architecture: i386:x86-64, flags 0x00000010:
HAS_SYMS
start address 0x0000000000000000

objdump: out/release/obj/v8_libbase/bounded-page-allocator.o
: unknown type [0x40000014] section `out/release/obj/v8_libbase/bits.o:     file format elf64-little
.crel.text'architecture: UNKNOWN!, flags 0x00000010:

HAS_SYMS
start address 0x0000000000000000

objdump:
out/release/obj/v8_libbase/cpu.o: unknown type [out/release/obj/v8_libbase/bounded-page-allocator.o:     file format elf64-little
0x40000014] section `architecture: UNKNOWN!, flags 0x00000010:
.crel.textHAS_SYMS
'
start address 0x0000000000000000

objdump: out/release/obj/v8_libbase/stack_trace.o: unknown type [
0x40000014] section `.crel.textout/release/obj/v8_libbase/cpu.o:     file format elf64-little
'architecture: UNKNOWN!, flags 0x00000010:

HAS_SYMS
start address 0x0000000000000000

objdump:
out/release/obj/v8_libbase/division-by-constant.o: unknown type [out/release/obj/v8_libbase/stack_trace.o:     file format elf64-little
0x40000014] section `architecture: UNKNOWN!, flags 0x00000010:
.crel.text'HAS_SYMS

Juan dos Santos

unread,
Aug 26, 2025, 7:56:18 AMAug 26
to v8-users
Same problem here. I build v8_monolith.a but inside for example api.o : 

objdump -f api.o
objdump: api.o: unknown type [0x40000014] section `.crel.text'

api.o:     file format elf64-little

architecture: UNKNOWN!, flags 0x00000010:
HAS_SYMS
start address 0x0000000000000000

Juan dos Santos

unread,
Aug 26, 2025, 5:01:47 PMAug 26
to v8-users
I found a solution, de args.gn parameters for x64 compatible with g++ o gcc are:

target_os="linux"
target_cpu="x64"
v8_target_cpu="x64"
is_debug=false
dcheck_always_on=false
is_clang=false
is_component_build=false
strip_debug_info=true
symbol_level=0
treat_warnings_as_errors=false
use_custom_libcxx=false
v8_enable_gdbjit=false
v8_enable_i18n_support=false
v8_enable_pointer_compression=false
v8_enable_test_features=false
v8_monolithic=true
v8_use_external_startup_data=false
clang_use_chrome_plugins=false
enable_rust=false
target_sysroot_dir=""
use_rtti=false
use_sysroot=false
v8_deprecation_warnings=false
v8_enable_builtins_optimization=true
v8_enable_sandbox=false
v8_enable_snapshot_compression=false
v8_enable_temporal_support=false
v8_imminent_deprecation_warnings=false

I think these parameters make the magic "is_clang=false enable_rust=false use_sysroot=false target_sysroot_dir="" "  but use all of them.

I found this great page with the solution here: https://github.com/just-js/v8/blob/main/args.linux.x64.gn

There are all the "args.gn" configuration for different platforms. 

When I did the compilation only found one warning, nothing important.

Juan dos Santos 
Reply all
Reply to author
Forward
0 new messages