On Thu, Jan 24, 2019 at 4:40 AM Sebastian Gottschall <[email protected]> wrote: > > the kernel makefiles used for building on different architectures can be > very different. (see kernel sourcdir/arch/arm/Makefile or arch/x86/Makefile) > so some of them might also overwrite existing flags. what makes me wonder
The Makefile you mentioned for this system would seem to be /usr/lib/modules/3.16.62-1-ARCH/build/arch/arm64/Makefile % grep FLAG /usr/lib/modules/3.16.62-1-ARCH/build/arch/arm64/Makefile LDFLAGS_vmlinux :=-p --no-undefined -X CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S GZFLAGS :=-9 LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) KBUILD_CFLAGS += -mgeneral-regs-only KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) KBUILD_CPPFLAGS += -mbig-endian KBUILD_CPPFLAGS += -mlittle-endian CHECKFLAGS += -D__aarch64__ KBUILD_CFLAGS_MODULE += -mcmodel=large KBUILD_CFLAGS_MODULE += $(call cc-option, -mpc-relative-literal-loads) export TEXT_OFFSET GZFLAGS I actually don't see a plain LDFLAGS in it... just LDFLAGS_vmlinux. > according to your build log you're setting various flags before > entering the wireguard dir and compiling. > why? The packager on Arch (makepkg) has a config file (/etc/makepkg.conf) that is read when a package is built by it which sets the build flags. I just exported the flags therein on the shell then built manually to keep it simple (ie without explaining about the packager). I can tell you that I get the identical error when I build manually as shown or with the packager. Curiously, I only get this error when I build Wireguard on this platform (again reading from /etc/makepkg.conf which sets those flags). I can build anything else without the error (linux kernel, ffmpeg, owncloud, nginx, etc.) > Am 24.01.2019 um 09:57 schrieb John: > > Thank you for the reply. What is odd is that I can build just fine on > > Arch x86_64 which uses the identical LDFLAGS. In any case, is your > > recommendation to drop the -Wl portion of the LDFLAGS or so unset all > > ie: > > > > unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS DEBUG_CFLAGS DEBUG_CXXFLAGS > > > > On Wed, Jan 23, 2019 at 11:02 PM Sebastian Gottschall > > <[email protected]> wrote: > >> -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 [email protected] https://lists.zx2c4.com/mailman/listinfo/wireguard
