Build error on ARM device due to ld flags

Sebastian Gottschall s.gottschall at newmedia-net.de
Thu Jan 24 04:14:07 CET 2019


-Wl etc is not a valid linker flag, its a flag for gcc which passes the 
following flags to the linker. so basicly the LDFLAGS are just wrong.
in general no CFLAGS or LDFLAGS should be overriden, since wireguard 
uses exact he same flags which is used for compiling the kernel. so setting
custom flags should be avoided

Am 23.01.2019 um 22:07 schrieb John:
> I am running Arch ARM (aarch64) on an ODROID-C2 using gcc v8.2.1.
> Arch ARM which ships with the following LDFLAGS as defaults,
> "-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
>
> When I build wireguard on this device as shown below, I get this error
> but am unsure why:
>
> ld: unrecognized option '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
> ld: use the --help option for usage information
> make[2]: *** [scripts/Makefile.build:393:
> /scratch/WireGuard-0.0.20190123/src/wireguard.o] Error 1
> make[1]: *** [Makefile:1358:
> _module_/scratch/WireGuard-0.0.20190123/src] Error 2
> make: *** [Makefile:36: module] Error 2
>
> If I remove the '-Wl' switch from the distro default, it builds
> without error.  Any advice is appreciated.
>
> Complete build log and my FLAGS:
>
> % export CPPFLAGS="-D_FORTIFY_SOURCE=2"
> % export CFLAGS="-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt"
> % export CXXFLAGS="-march=armv8-a -O2 -pipe -fstack-protector-strong -fno-plt"
> % export LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
> % export DEBUG_CFLAGS="-g -fvar-tracking-assignments"
> % export DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
>
> % cd WireGuard-0.0.20190123
> % make -j5 -C src
> make: Entering directory '/scratch/WireGuard-0.0.20190123/src'
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/wg.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/config.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/show.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/terminal.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/ipc.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/mnlg.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/encoding.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/curve25519.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/setconf.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/genkey.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/showconf.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/pubkey.o
>    CC      /scratch/WireGuard-0.0.20190123/src/tools/set.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/main.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/device.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/noise.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/peer.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/timers.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/queueing.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/send.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/receive.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/socket.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/hashtables.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/allowedips.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/ratelimiter.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/cookie.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/netlink.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/chacha20/chacha20.o
>    PERLASM /scratch/WireGuard-0.0.20190123/src/crypto/zinc/chacha20/chacha20-arm64.S
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/poly1305/poly1305.o
>    PERLASM /scratch/WireGuard-0.0.20190123/src/crypto/zinc/poly1305/poly1305-arm64.S
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/chacha20poly1305.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/blake2s/blake2s.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/curve25519/curve25519.o
>    LD      /scratch/WireGuard-0.0.20190123/src/tools/wg
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/compat/siphash/siphash.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/compat/dst_cache/dst_cache.o
>    CC [M]  /scratch/WireGuard-0.0.20190123/src/compat/udp_tunnel/udp_tunnel.o
>    AS [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/chacha20/chacha20-arm64.o
>    AS [M]  /scratch/WireGuard-0.0.20190123/src/crypto/zinc/poly1305/poly1305-arm64.o
>    LD [M]  /scratch/WireGuard-0.0.20190123/src/wireguard.o
> ld: unrecognized option '-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'
> ld: use the --help option for usage information
> make[2]: *** [scripts/Makefile.build:393:
> /scratch/WireGuard-0.0.20190123/src/wireguard.o] Error 1
> make[1]: *** [Makefile:1358:
> _module_/scratch/WireGuard-0.0.20190123/src] Error 2
> make: *** [Makefile:36: module] Error 2
> make: Leaving directory '/scratch/WireGuard-0.0.20190123/src'
> _______________________________________________
> WireGuard mailing list
> WireGuard at lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/wireguard
>


More information about the WireGuard mailing list