mysql: remove $(FPIC), fix AARCH64 builds 5812/head
authorSebastian Kemper <sebastian_ml@gmx.net>
Sat, 24 Mar 2018 12:15:27 +0000 (13:15 +0100)
committerSebastian Kemper <sebastian_ml@gmx.net>
Sat, 24 Mar 2018 12:15:29 +0000 (13:15 +0100)
commit6a90253c80fe1edd5995634b0dd6f01d503e6163
treea607160fd9d172b86d4bb5cd6cc0734ab67ef88b
parent655b02a54fda5e7407f3f18c99085427aeae50ff
mysql: remove $(FPIC), fix AARCH64 builds

mysql already makes sure that the compiler emits position-independent code when
appropriate, namely when compiling shared objects. The mysql build system puts
its own flag behind the CFLAGS, overriding whatever was set before.

Additionally, forcing applications into PIC mode will just slow them
down (mysql not only provides shared objects but also applications).

Last but not least OpenWrt's $(FPIC) can cause build failures. This is
the case currently for AARCH64:

  net_serv.o: In function `my_net_init':
  net_serv.cc:(.text+0x28): relocation truncated to fit: R_AARCH64_LD64_GOTPAGE_LO15 against symbol `my_malloc' defined in .text section in ../mysys/libmysys.a(my_malloc.o)
  net_serv.cc:(.text+0x28): warning: Too many GOT entries for -fpic, please recompile with -fPIC
  /data/bowl-builder/aarch64_cortex-a53/build/sdk/staging_dir/toolchain-aarch64_cortex-a53_gcc-7.3.0_musl/bin/../lib/gcc/aarch64-openwrt-linux-musl/7.3.0/../../../../aarch64-openwrt-linux-musl/bin/ld: final link failed: Symbol needs debug section which does not exist
  collect2: error: ld returned 1 exit status
  Makefile:955: recipe for target 'mysqld' failed
  make[7]: *** [mysqld] Error 1

Remove $(FPIC) from TARGET_CFLAGS to address all of the above.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
utils/mysql/Makefile