buildroot/package/libaio/libaio.mk
Alexey Brodkin 9cf2457878 libaio: link against libgcc and libc to avoid unresolved symbols
For some weird reason, the libaio build system passes -nostdlib
-nostartfiles, which causes libgcc to not be linked in, even if it's
needed. Due to this, on some architectures, with specific optimization
features, the build fails with unresolved symbols, as gcc emits code
that uses functions implemented in libgcc.

The fix proposed by Debian developers is to simply drop -nostdlib
-nostartfiles.

Fixes build failures of blktrace, lvm2 and the like users of libaio.

A couple of examples below:
blktrace: http://autobuild.buildroot.net/results/5528ab59f1939a7eff7e85318f3b36283019cc50/
lvm2:     http://autobuild.buildroot.net/results/a5dfc87f94b97135e5cc84f6a876114891ed9dd9/

And since we solve the problem in libaio sources there's no need to
mess with compilation flags in Buildroot, thus partially revert
commit ce6536ae50 ("libaio: work-around for PowerPC issue").

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-10-08 21:29:35 +02:00

41 lines
1.1 KiB
Makefile

################################################################################
#
# libaio
#
################################################################################
LIBAIO_VERSION = 0.3.111
LIBAIO_SITE = https://releases.pagure.org/libaio
LIBAIO_INSTALL_STAGING = YES
LIBAIO_LICENSE = LGPL-2.1+
LIBAIO_LICENSE_FILES = COPYING
LIBAIO_CONFIGURE_OPTS = $(TARGET_CONFIGURE_OPTS)
ifeq ($(BR2_STATIC_LIBS),y)
LIBAIO_CONFIGURE_OPTS += ENABLE_SHARED=0
endif
define LIBAIO_BUILD_CMDS
$(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define LIBAIO_INSTALL_STAGING_CMDS
$(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install
endef
define LIBAIO_INSTALL_TARGET_CMDS
$(LIBAIO_CONFIGURE_OPTS) $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install
endef
define HOST_LIBAIO_BUILD_CMDS
$(HOST_CONFIGURE_OPTS) $(HOST_MAKE_ENV) $(MAKE) -C $(@D)
endef
define HOST_LIBAIO_INSTALL_CMDS
$(HOST_CONFIGURE_OPTS) $(HOST_MAKE_ENV) $(MAKE) -C $(@D) prefix=$(HOST_DIR) install
endef
$(eval $(generic-package))
$(eval $(host-generic-package))