UDP then doesn't have the same sort of "socket death" as TCP. But even when using Cronet, some devices will be on a network where QUIC is broken and have to fall-back to HTTP/2 over TCP.
ejona has quit
ejona joined the channel
JakeSays
any ideas on how i might be able to get grpc to pick up a specific install of protobuf?
ejona
JakeSays: What language?
JakeSays
c++
ejona
For use when compiling?
Or for when running protoc?
Or linking :)
JakeSays
i'm cross compiling grpc. it fails building protobuf
./configuring
ejona
Ah.
JakeSays
grpc doesnt pass on the required flags
so i built protobuf separately and installed it in my sysroot
but grpc still tries to build protobuf
ejona
I'm pretty sure if you trash the protobuf submodule, grpc will try to use the system protobuf. But I think there is a flag as well. Looking...
kurushiyama has quit
I can't find the flag. Simply doing `mv third_party/protobuf third_party/protobuf.disabled' would be my hack :)
But I mainly work on Java.
JakeSays: ^^
JakeSays
i'll give it a try. thanks
ejona
I was actually told the flag on Thursday or Friday, but I didn't really need to remember it so I forgot it.
JakeSays
i wish grpc would switch to gn from a 15k make file.
er, 15k line
ejona
JakeSays: The gRPC build system is a semi-clone of GYP. Because it is 2016 and build systems aren't a solved problem.
I think at this point "it works, so don't spend a ton of time re-inventing it" is the feeling.
We're waiting some for Bazel to mature enough where we can swap to it, although I think we will then be using it as the source-of-truth instead of build.yaml (still supporting the huge makefile)
That's a ways out, and is sort of pie-in-the-sky for the moment.
JakeSays
ejona: actually it only works if you're either doing the defaults or are intimately familiar with it.
ejona
(And I don't truly know what I'm talking about, since I work on grpc-java where Gradle is working and we're just happy not to be using Maven or Ant)
JakeSays
otherwise its a total time sink
the only way i'll be able to keep using it is if i rewrite the build system.
ejona
I don't completely disagree with you. It seems that would be the case with almost every build system.
JakeSays
thats not true
systems like gn, while they do require some effort to understand, they're easy to pick up.
ejona
The Makefile is not the build system. That is just one supported output of the system. msbuild is another, for example.
In the same way that gn produces Ninja
JakeSays
well, i'm on linux - it comes with that makefile, and no instructions to use anything but.
ejona
But yes, it is unweildy. But it is also hard to support all the platforms _and_ languages.
Yes, and you are cross-compiling, which is always fun.
JakeSays
i was able to cross compile chromium using the same toolchain in less time than i've spent just understanding this makefile.
ejona
GN is _very new_. We are reasonably aware of what's happening elsewhere, but at the time we started GYP was the closest that would serve our needs.
It does help that GN has some bits of documentation for cross-compiling.
JakeSays
well shit - i got it picking up the sysroot, but now it won't build the cpp generator: /usr/include/c++/5/memory:117:58: error: cast from ‘void*’ to ‘uintptr_t {aka unsigned int}’
ejona
But really, we don't want to be build system developers. So we're certainly wanting to ditch what we have as soon as we can .