On Fri, Nov 1, 2024 at 8:58 PM Justin Ferguson <[email protected]> wrote:
>
> > That error (non-fatal warning actually) suggests it was built for a
> > different architecture. Does it work when you pass -m32 or -m64 to
> > g++?
>
> Yeah I tried that, (on the original linux box) -m32 gave errors
> relating to like crt.o or whatever and so forth. -m64 yields the error
> listed in the prior email. Here's both on the new Linux installation:
>
> $ g++ -m32 -I. -Iinclude samples/hello-world.cc -o hello_world
> -fno-rtti -lv8_monolith -lv8_libbase -lv8_libplatform -ldl
> -Lout.gn/x64.release.sample/obj/ -pthread -std=c++20
> -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX
> In file included from samples/hello-world.cc:5:
> /usr/include/stdio.h:28:10: fatal error: bits/libc-header-start.h: No
> such file or directory
>    28 | #include <bits/libc-header-start.h>
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
> compilation terminated.
> $ g++ -m64 -I. -Iinclude samples/hello-world.cc -o hello_world
> -fno-rtti -lv8_monolith -lv8_libbase -lv8_libplatform -ldl
> -Lout.gn/x64.release.sample/obj/ -pthread -std=c++20
> -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX
> /usr/bin/ld: skipping incompatible
> out.gn/x64.release.sample/obj//libv8_libplatform.a when searching for
> -lv8_libplatform
> /usr/bin/ld: cannot find -lv8_libplatform: No such file or directory
> collect2: error: ld returned 1 exit status
>
> Interestingly, if I omit the link directive on the command line to
> link in libv8_libplatform I get the following:
> $ g++ -m64 -I. -Iinclude samples/hello-world.cc -o hello_world
> -fno-rtti -lv8_monolith -lv8_libbase -ldl
> -Lout.gn/x64.release.sample/obj/ -pthread -std=c++20
> -DV8_COMPRESS_POINTERS -DV8_ENABLE_SANDBOX
> /usr/bin/ld: unknown architecture of input file
> `out.gn/x64.release.sample/obj//libv8_monolith.a(default-platform.o)'
> is incompatible with i386:x86-64 output
> /usr/bin/ld: unknown architecture of input file
> `out.gn/x64.release.sample/obj//libv8_monolith.a(default-thread-isolated-allocator.o)'
> is incompatible with i386:x86-64 output
> /usr/bin/ld: unknown architecture of input file
> `out.gn/x64.release.sample/obj//libv8_monolith.a(default-worker-threads-task-runner.o)'
> is incompatible with i386:x86-64 output
> /usr/bin/ld: unknown architecture of input file
> `out.gn/x64.release.sample/obj//libv8_monolith.a(delayed-task-queue.o)'
> is incompatible with i386:x86-64 output
> /usr/bin/ld: unknown architecture of input file
> `out.gn/x64.release.sample/obj//libv8_monolith.a(tracing-controller.o)'
> is incompatible with i386:x86-64 output
> [ repeated across 3 or 4 screens ]
>
> When I run file over the object (.o) files used to build
> libv8_monolith.a and libv8_libplatform.a I get that they're all
> 64-bit, so while this issue is usually relating to x86/x64 it isn't in
> this case:
> $ mkdir junk
> $ cd junk
> $ ar x ../libv8_monolith.a
> $ file *.o
> abort-mode.o:                                ELF 64-bit LSB
> relocatable, x86-64, version 1 (SYSV), not stripped
> abstract-code.o:                             ELF 64-bit LSB
> relocatable, x86-64, version 1 (SYSV), not stripped
> access-builder.o:                            ELF 64-bit LSB
> relocatable, x86-64, version 1 (SYSV), not stripped
> access-info.o:                               ELF 64-bit LSB
> relocatable, x86-64, version 1 (SYSV), not stripped
> accessors.o:                                 ELF 64-bit LSB
> relocatable, x86-64, version 1 (SYSV), not stripped
> [...]
> $ cd v8_libplatform/
> $ file *.o
> default-foreground-task-runner.o:     ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> default-job.o:                        ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> default-platform.o:                   ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> default-thread-isolated-allocator.o:  ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> default-worker-threads-task-runner.o: ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> delayed-task-queue.o:                 ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> task-queue.o:                         ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> trace-buffer.o:                       ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> trace-config.o:                       ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> trace-object.o:                       ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> trace-writer.o:                       ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> tracing-controller.o:                 ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
> worker-thread.o:                      ELF 64-bit LSB relocatable,
> x86-64, version 1 (SYSV), not stripped
>
>
> I should also note the test suite completes successfully, so it builds
> and tests properly.
>
> Justin

Long shot but, since you're linking to libv8_monolith.a anyway, why
not drop libv8_libbase from the arguments?

-- 
-- 
v8-dev mailing list
[email protected]
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 [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/v8-dev/CAHQurc9Bu0pOL2ZM370joLwY8Jh0_mfF3-v-bGdL-0gLr84gFw%40mail.gmail.com.

Reply via email to