Skip to content

Few small fixes to allow envoy to compile on ARM32#1781

Closed
costinm wants to merge 31 commits intoenvoyproxy:masterfrom
costinm:istio32
Closed

Few small fixes to allow envoy to compile on ARM32#1781
costinm wants to merge 31 commits intoenvoyproxy:masterfrom
costinm:istio32

Conversation

@costinm
Copy link
Copy Markdown
Contributor

@costinm costinm commented Sep 29, 2017

Tested compilation for rasbperry pi and android (the 'endian' change is
required for android NDK - recent androids can compile with 64 bit).

Signed-off-by: Costin Manolache costin@gmail.com

@costinm
Copy link
Copy Markdown
Contributor Author

costinm commented Sep 29, 2017

Note that I compiled/tested using a custom cmake, not bazel.

Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks alright to me.


TCLAP::CmdLine cmd("envoy", ' ', VersionInfo::version());
TCLAP::ValueArg<uint64_t> base_id(
TCLAP::ValueArg<uint32_t> base_id(
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are these necessary?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get this error with the pi cross-compiler. Not sure if there is some other fix, not an expert in c++...

In file included from /ws/istio-master/src/tclap/include/tclap/Arg.h:54:0,
from /ws/istio-master/src/tclap/include/tclap/SwitchArg.h:30,
from /ws/istio-master/src/tclap/include/tclap/CmdLine.h:27,
from /ws/istio-master/envoy/source/server/options_impl.cc:13:
/ws/istio-master/src/tclap/include/tclap/ArgTraits.h: In instantiation of 'struct TCLAP::ArgTraits':
/ws/istio-master/src/tclap/include/tclap/ValueArg.h:403:66: required from 'void TCLAP::ValueArg::_extractValue(const string&) [with T = long long unsigned int; std::string = std::basic_string]'
/ws/istio-master/src/tclap/include/tclap/ValueArg.h:363:29: required from 'bool TCLAP::ValueArg::processArg(int*, std::vector<std::basic_string >&) [with T = long long unsigned int]'
/ws/istio-master/envoy/source/server/options_impl.cc:120:1: required from here
/ws/istio-master/src/tclap/include/tclap/ArgTraits.h:80:39: error: 'long long unsigned int' is not a class, struct, or union type
typedef typename T::ValueCategory ValueCategory;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also - I don't think any of the options would need 64 bit parameters.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's with arm-rpi-4.9.3-linux-gnueabihf

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be an issue in converting from the literal to the type. I think in general, for clean 32/64-bit support, we should have some macros for writing fixed width literals, e.g. CONST64(0), since we're going to hit this elswhere. I do agree that these are fine as uint32_t though.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems specific to tclap macros - so far everything else seems to work on 32 bit arm, I'll do more testing and try to get it into a continuous build.

@mattklein123
Copy link
Copy Markdown
Member

In general this seems fine to me but please fix DCO and format.

static const uint32_t DEFAULT_HPACK_TABLE_SIZE = (1 << 12);
// no maximum from HTTP/2 spec, use unsigned 32-bit maximum
static const uint32_t MAX_HPACK_TABLE_SIZE = (1UL << 32) - 1;
static const uint32_t MAX_HPACK_TABLE_SIZE = 0xFFFFFFFF;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to use the C++ numeric_limits for this:

#include <limits>
static const uint32_t MAX_HPACK_TABLE_SIZE = std::numeric_limits<uint32_t>::max();

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

mattklein123 and others added 26 commits October 2, 2017 15:11
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
)

The v2 API supports using the downstream (source) IP address to route HTTP requests to
upstream hosts. This PR implements that functionality, as specified in envoyproxy#1296.

Signed-off-by: Alex Konradi <akonradi@google.com>
…1753)

Generalizes existing zone support.

Fixes envoyproxy#1750.

Signed-off-by: Harvey Tuch htuch@google.com
Signed-off-by: Daniel Hochman <dhochman@lyft.com>
Fixes envoyproxy#1422

Signed-off-by: Alex Konradi <akonradi@google.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: Gabriel Rosenhouse <grosenhouse@pivotal.io>
Signed-off-by: Gabriel Rosenhouse <grosenhouse@pivotal.io>
Signed-off-by: Matt Rice <mattrice@google.com>
Signed-off-by: Matt Rice <mattrice@google.com>
There is no minimal language and due to travis-ci/travis-ci#4895, it will fallback to ruby. shell should serve our usecase

Signed-off-by: bndw <benjamindwoodward@gmail.com>
Signed-off-by: bndw <benjamindwoodward@gmail.com>
Signed-off-by: Daniel Hochman <dhochman@lyft.com>
Signed-off-by: Matt Klein <mklein@lyft.com>
Signed-off-by: bndw <benjamindwoodward@gmail.com>
Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
Tested compilation for rasbperry pi and android (the 'endian' change is
required for android NDK - recent androids can compile with 64 bit).
Signed-off-by: Costin Manolache <costin@google.com>
This PR adds per-host counters to support UpstreamLocalityStats. At load report time, these will be
aggregated on a per-locality basis.

Signed-off-by: Harvey Tuch htuch@google.com
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
Signed-off-by: Stephan Zuercher <stephan@turbinelabs.io>
…yproxy#1786)

This is helpful for Google import and shouldn't affect anybody else.

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
tdmackey and others added 4 commits October 2, 2017 15:11
See ci/README.md for instructions.

Signed-off-by: David Mackey tdmackey@booleanhaiku.com
This makes it appopriate to use the OsSysCalls abstraction
in other areas of the code-base, such as hot-restart.

Signed-off-by: Greg Greenway <ggreenway@apple.com>
Tested compilation for rasbperry pi and android (the 'endian' change is
required for android NDK - recent androids can compile with 64 bit).

Signed-off-by: Costin Manolache <costin@google.com>
@costinm
Copy link
Copy Markdown
Contributor Author

costinm commented Oct 2, 2017

Git mixups attempting to edit commits to add DCO - will upload a clean PR

@costinm costinm closed this Oct 2, 2017
jpsim pushed a commit that referenced this pull request Nov 28, 2022
Description: Move tsan workflow to Engflow's remote execution

Same as envoyproxy/envoy-mobile#1745 but using a couple of tsan flags instead of asan. Using a separate config for modularity.

Risk Level: Low
Testing: See tsan workflow
Docs Changes: N/A
Release Notes: N/A

Signed-off-by: Luis Fernando Pino Duque <luis@engflow.com>
Signed-off-by: JP Simard <jp@jpsim.com>
jpsim pushed a commit that referenced this pull request Nov 29, 2022
Description: Move tsan workflow to Engflow's remote execution

Same as envoyproxy/envoy-mobile#1745 but using a couple of tsan flags instead of asan. Using a separate config for modularity.

Risk Level: Low
Testing: See tsan workflow
Docs Changes: N/A
Release Notes: N/A

Signed-off-by: Luis Fernando Pino Duque <luis@engflow.com>
Signed-off-by: JP Simard <jp@jpsim.com>
mathetake pushed a commit that referenced this pull request Mar 3, 2026
Signed-off-by: fbalicchia <fbalicchia@cuebiq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.