By default, the build (at least on Linux) uses its own bundled sysroot for system libraries (glibc etc). The idea is to have a "hermetic build" that works the same on all host machines, regardless of what's installed there. use_sysroot=false turns that off and is, I think, required to make is_clang=false work correctly. (I think our documentation mentions both flags.)
On Wed, Sep 19, 2018 at 9:30 AM Graham Reeves <gra...@grahamreeves.com> wrote: > Aha! Exactly the bits of information I need. :) > > I'll give it a go shortly. If it doesn't go smoothly, I'll switch to > docker and try the same for cross compiling on Linux. > > Does use_sysroot=false mean it's explicitly looking for CC/CXX instead of > whatever is on the PATH, or is it for something different? > > I assumed the thing about gclient, but just wanted to be sure, given docs > are explicit about "don't just clone" :) > > On Wed, 19 Sep 2018 at 5:19 pm, Jakob Kummerow <jkumme...@chromium.org> > wrote: > >> I'm afraid we don't officially support cross-compiling on OSX, which >> means it might work, but you're on your own. We'd be happy to accept >> patches or documentation improvements, with community-maintained status. >> >> That said: >> >> I'd set is_clang=false and use_sysroot=false in args.gn, and set >> CC/CXX/LINK via the environment. How far does that get you? >> >> target_os=["android"] in .gclient should not be necessary. I believe that >> only controls the downloading of the Android NDK, which you're not >> interested in using. >> >> GN ("generate ninja") and Ninja work together to provide Make-like >> functionality. Ninja is designed to be simple but fast, GN does all the >> evaluation of flags and conditions. By inspecting the generated *.ninja >> files, you can check what GN did with the args you provided. >> gclient is a dependency management tool (similar to git submodules); it >> is not involved in the build process itself. >> >> On Wed, Sep 19, 2018 at 4:00 AM <gra...@grahamreeves.com> wrote: >> >>> I'm trying to build v8 for an arm cpu, and I have gcc/++/etc for that >>> architecture built on osx (so I can cross compile), which currently builds >>> my executable, all working fine. >>> >>> Now I'm hoping to build v8. Whatever OS side changes I might need to >>> make, (this is not for linux) I can do. >>> >>> What I haven't managed to do yet, is get v8 compiling. >>> Is this possible with depot_tools/ninja ? >>> >>> I've not been able to find any guides so far that aren't android >>> focussed, eg. >>> >>> https://stackoverflow.com/questions/43490689/cross-compiling-v8-build-for-android-on-mac >>> https://github.com/v8/v8/wiki/Cross-compiling-for-ARM >>> >>> From what I can tell, the gclient setup has some specific setup for when >>> the target_os is "android". >>> Maybe it's using some explicit NDK based paths to find GCC executables? >>> (This is a little hidden) >>> I looked at the gn --args all and couldn't really see anything about >>> explicitly setting toolchain paths >>> >>> Is convention to build as if it's android, and maybe swap out all of >>> NDK's gcc with my own? >>> or set the target_os to unix, and then... where would I put the >>> toolchain? >>> >>> I've set *is_clang = false* >>> >>> Unless I'm overthinking it? This is my error when I try to build >>> arm.release. I have been assuming there are no rules setup to build .cc >>> with a particular gcc executable >>> >>> ninja: error: '../../src/base/bits.cc', needed by >>> 'clang_x86_v8_arm/obj/v8_libbase/bits.o', missing and no known rule to make >>> it >>> >>> >>> toolchain.ninja (which I assume is like a makefile, I'm very new to >>> ninja/gclient) has entries for cc >>> >>> rule cc >>> >>> command = ../../third_party/llvm-build/Release+Asserts/bin/clang -MMD >>> -MF ${out}.d ${defines} ${include_dirs} ${cflags} ${cflags_c} -c ${in} -o >>> ${out} >>> >>> description = CC ${out} >>> >>> depfile = ${out}.d >>> >>> deps = gcc >>> But I guess they're inheritly wrong? >>> >>> I feel like I've just missed an obvious step with setting up the target, >>> but the android setup is obfuscated so I'm blindly hunting around trying to >>> see if export CC= is set somewhere :) >>> >>> >>> -- >>> -- >>> 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. >> >> >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> -- >> v8-dev mailing list >> v8-dev@googlegroups.com >> http://groups.google.com/group/v8-dev >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "v8-dev" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/v8-dev/chLVN40jXnI/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> v8-dev+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > > - Graham Reeves > - http://www.grahamreeves.com/ > > -- > -- > 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. > For more options, visit https://groups.google.com/d/optout. > -- -- 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. For more options, visit https://groups.google.com/d/optout.