doc(README): document requirements for cross-compiling with OpenSSL support
fixes #6736
Steven Allen committed
Oct 29, 2019 at 17:52 UTC
55ea6ad6e94cfd44f828ee65f621eecb46298797
1 file changed
+17
README.md
+17
@@ -183,6 +183,23 @@ Alternatively, you can run `make build` to build the go-ipfs binary (storing it
183
184
**NOTE:** If you get an error along the lines of "fatal error: stdlib.h: No such file or directory", you're missing a C compiler. Either re-run `make` with `CGO_ENABLED=0` or install GCC.
185
186
+##### Cross Compiling
187
+
188
+Compiling for a different platform is as simple as running:
189
+
190
+```
191
+make build GOOS=myTargetOS GOARCH=myTargetArchitecture
192
+```
193
+
194
+##### OpenSSL
195
+
196
+To build go-ipfs with OpenSSL support, append `GOFLAGS=-tags=openssl` to your `make` invocation. Building with OpenSSL should significantly reduce the background CPU usage on nodes that frequently make or receive new connections.
197
+
198
+Note: OpenSSL requires CGO support and, by default, CGO is disabled when cross compiling. To cross compile with OpenSSL support, you must:
199
+
200
+1. Install a compiler toolchain for the target platform.
201
+2. Set the `CGO_ENABLED=1` environment variable.
202
+
203
#### Troubleshooting
204
205
- Separate [instructions are available for building on Windows](docs/windows.md).