Hello again,

Today I decided to spin up a virtual machine and give it a try on a linux
environment (instead of OS X),

On a fresh install of Ubuntu 20.04 + build tools (make, clang, etc...), I
fetch the latest v8 with depot_tools/git and try to compile v8,

I have found the exact same issues as my OS X system:

* Same symbols missing on libv8_libbase and libv8_libplatform
* When I do a monolithic release and link against libv8_monolith, the
symbols are there and I can compile, but when I run the program it gets
stuck (forever?) on `v8::V8::Initialize()`.

Any comments?

Anybody has compiled v8 from source (and from scratch) recently?

Alex.

On Tue, Jun 2, 2020 at 3:30 PM Al Mo <almos...@gmail.com> wrote:

> The mystery deepens,
>
> I can compile/link against the monolith library,
>
> I am trying to run the hello-world.cc sample, only change I made is I
> added `#define V8_COMPRESS_POINTERS` (but also tried without it and using a
> v8 compiled w/o pointer compression),
>
> The program gets stuck when I call `v8::V8::Initialize();`,
>
> I plug Instruments into and I see this:
>
> [image: image.png]
>
> I tried compiling a debug version to get more info but it fails very bad
> if I try the monolith thing, w/o monolith I run into the same issue of
> missing symbols,
>
> Any idea on what could be going on? Or how to debug it further? Willing to
> put time into this :)
>
> Alex.
>
> On Tue, Jun 2, 2020 at 1:58 PM Al Mo <almos...@gmail.com> wrote:
>
>> Update,
>>
>> Just finished a monolithic build and got a 'libv8_monolith.a', when I
>> link against it everything works, that will do for me,
>>
>> If you wish me to continue doing some research on to why it wasn't
>> working the other way, let me know what to do,
>>
>> Thanks all,
>> Alex.
>>
>> On Tue, Jun 2, 2020 at 12:49 PM Al Mo <almos...@gmail.com> wrote:
>>
>>> Update:
>>>
>>> Full output of clean build:
>>>
>>> # mkdir -p out/x64.release
>>>
>>> # echo > out/x64.release/args.gn << EOF
>>>
>>> is_component_build = false
>>>
>>> is_debug = false
>>>
>>> target_cpu = "x64"
>>>
>>> use_goma = false
>>>
>>> goma_dir = "None"
>>>
>>> v8_enable_backtrace = true
>>>
>>> v8_enable_disassembler = true
>>>
>>> v8_enable_object_print = true
>>>
>>> v8_enable_verify_heap = true
>>>
>>> EOF
>>>
>>> # gn gen out/x64.release
>>>
>>> Done. Made 148 targets from 86 files in 751ms
>>>
>>> # autoninja -C out/x64.release d8
>>>
>>> ninja: Entering directory `out/x64.release'
>>>
>>> [1450/1450] LINK ./d8
>>>
>>> Done! - V8 compilation finished successfully.
>>>
>>>
>>> On Tue, Jun 2, 2020 at 12:01 PM Al Mo <almos...@gmail.com> wrote:
>>>
>>>> Thank you both for your replies,
>>>>
>>>> After a clean build, here's the output of `ls -l ...`:
>>>>
>>>> total 137768
>>>>
>>>> -rw-r--r--    1 krrrunch  staff       214 Jun  1 12:29 args.gn
>>>>
>>>> -rw-r--r--    1 krrrunch  staff     23922 Jun  1 20:17 build.ninja
>>>>
>>>> -rw-r--r--    1 krrrunch  staff      3183 Jun  1 20:17 build.ninja.d
>>>>
>>>> -rwxr-xr-x    1 krrrunch  staff    431628 Jun  1 20:21
>>>> bytecode_builtins_list_generator
>>>>
>>>> -rwxr-xr-x    1 krrrunch  staff  26017224 Jun  1 20:54 d8
>>>>
>>>> drwxr-xr-x    7 krrrunch  staff       224 Jun  1 20:54 gen
>>>>
>>>> -rwxr-xr-x    1 krrrunch  staff   1318244 Jun  1 20:36
>>>> gen-regexp-special-case
>>>>
>>>> -rw-r--r--    3 krrrunch  staff  10507280 Jun  1 10:31 icudtl.dat
>>>>
>>>> -rwxr-xr-x    1 krrrunch  staff  29522824 Jun  1 20:54 mksnapshot
>>>>
>>>> drwx------  105 krrrunch  staff      3360 Jun  1 20:54 obj
>>>>
>>>> -rw-r--r--    1 krrrunch  staff     51188 Jun  1 20:54
>>>> snapshot_blob.bin
>>>>
>>>> -rw-r--r--    1 krrrunch  staff     80153 Jun  1 20:17 toolchain.ninja
>>>>
>>>> -rwxr-xr-x    1 krrrunch  staff   2557812 Jun  1 20:21 torque
>>>>
>>>> -rw-r--r--    1 krrrunch  staff       523 Jun  1 20:20
>>>> v8_build_config.json
>>>>
>>>> args.gn is:
>>>>
>>>> is_component_build = false
>>>>
>>>> is_debug = false
>>>>
>>>> target_cpu = "x64"
>>>>
>>>> use_goma = false
>>>>
>>>> goma_dir = "None"
>>>>
>>>> v8_enable_backtrace = true
>>>>
>>>> v8_enable_disassembler = true
>>>>
>>>> v8_enable_object_print = true
>>>>
>>>> v8_enable_verify_heap = true
>>>>
>>>> I have found no out.gn dir anywhere,
>>>>
>>>> I lost the output of the last build but will do it again and post it as
>>>> soon as I have it,
>>>>
>>>> Also, will try the monolithic build and see if that helps,
>>>>
>>>> Alex.
>>>>
>>>> On Tue, Jun 2, 2020 at 11:02 AM 'Seth Brenith' via v8-dev <
>>>> v8-dev@googlegroups.com> wrote:
>>>>
>>>>> As well as those static libraries, the x64.release build creates a
>>>>> whole bunch of object files due to the "v8_source_set" declarations in
>>>>> BUILD.gn. Any gn build target defined as depending on the "v8" target will
>>>>> include not only those libs but also all of the objects from the source
>>>>> sets. The easiest way to get a linkable library is to add "v8_monolithic =
>>>>> true" to out/x64.release/args.gn and then build with "autoninja
>>>>> v8_monolith". This will create a single lib, libv8_monolith.a, which 
>>>>> should
>>>>> have all of the relevant stuff included.
>>>>>
>>>>> On Tuesday, June 2, 2020 at 4:14:08 AM UTC-7, Al Mo wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I'm trying to build v8 from source in order to test/submit a cl later
>>>>>> on,
>>>>>>
>>>>>> I followed this: https://v8.dev/docs/build
>>>>>>
>>>>>> It builds fine and in the end I have an 'out/x64.release' directory,
>>>>>> which in turn has the 'libv8_libbase.a' and 'libv8_libplatform.a' static
>>>>>> libraries.
>>>>>>
>>>>>> When trying to link against these libraries, I get undefined symbol
>>>>>> errors, like:
>>>>>>
>>>>>>   "v8::V8::Initialize(int)", referenced from:
>>>>>>
>>>>>>       _main in main-df02fe.o
>>>>>>
>>>>>>   "v8::V8::InitializePlatform(v8::Platform*)", referenced from:
>>>>>>
>>>>>>       _main in main-df02fe.o
>>>>>>
>>>>>>   "v8::V8::InitializeICUDefaultLocation(char const*, char const*)",
>>>>>> referenced from:
>>>>>>
>>>>>>       _main in main-df02fe.o
>>>>>>
>>>>>>   "v8::V8::InitializeExternalStartupData(char const*)", referenced
>>>>>> from:
>>>>>>
>>>>>>       _main in main-df02fe.o
>>>>>>
>>>>>> Checking the libraries with 'nm -gAC lib...' shows me that the
>>>>>> symbols are not there at all,
>>>>>>
>>>>>> I am not familiar with gn and the configuration options of v8, hence
>>>>>> why I'm asking about it,
>>>>>>
>>>>>> Any idea what could be going on?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>> --
>>>>> --
>>>>> v8-dev mailing list
>>>>> v8-dev@googlegroups.com
>>>>> http://groups.google.com/group/v8-dev
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "v8-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to v8-dev+unsubscr...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/v8-dev/4111796a-c053-4f16-9bf5-a1af0b99fc14%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/v8-dev/4111796a-c053-4f16-9bf5-a1af0b99fc14%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CABK7q5fTiX_6PYQ_v1zhUerxVpW9QVqcWdfkQk3TOVhO4M5Ksw%40mail.gmail.com.

Reply via email to