> 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