12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- From 672eaebd131c789a528e3a9cd089b4b69a82012b Mon Sep 17 00:00:00 2001
- From: Guillem Jover <guillem@debian.org>
- Date: Fri, 28 Sep 2018 13:15:54 +0300
- Subject: [PATCH libaio] Link against libgcc to avoid unresolved symbols
- We need to link agaisnt -lgcc, on at least hppa, PPC and ARC.
- That's because in some corner-cases like compilation with -Os
- on ARC and PPC so-called millicode (basically function prologue and
- epilogue) implemented in libgcc.a is used. So we end up with
- GLOBAL UNDEFINED symbol in libaio.so and then on linkage of the final
- applicaiton LD fails to proceed saying:
- --------------------------->8----------------------
- hidden symbol '__ld_r13_to_r15_ret' in .../libgcc.a(_millicodethunk_ret.o) is referenced by DSO
- --------------------------->8----------------------
- Also it looks like in general it is not the best idea to use either
- "-nostartfiles" or "-nostdlib" when linking shared libs because
- default construtor/destructor functions won't be executed, see
- "5.2. Library constructor and destructor functions" in [1]
- So let's stop passing "-nostdlib" and "-nostartfiles" and get required
- stuff built-in libaio.
- Initial patch taken from Debian [2].
- Fixes build failures in Buildroot like blktrace [3], lvm2 [4].
- [1] http://tldp.org/HOWTO/Program-Library-HOWTO/miscellaneous.html
- [2] https://sources.debian.org/patches/libaio/0.3.111-1/01_link_libs.patch/
- [3] http://autobuild.buildroot.net/results/17461209755038a30118d76acb4f43469a22a139/
- [4] http://autobuild.buildroot.net/results/a5dfc87f94b97135e5cc84f6a876114891ed9dd9/
- Signed-off-by: Guillem Jover <guillem@debian.org>
- Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
- ---
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
- diff --git a/src/Makefile b/src/Makefile
- index eadb336..5911c81 100644
- --- a/src/Makefile
- +++ b/src/Makefile
- @@ -3,7 +3,7 @@ includedir=$(prefix)/include
- libdir=$(prefix)/lib
-
- CFLAGS ?= -g -fomit-frame-pointer -O2
- -CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
- +CFLAGS += -Wall -I. -fPIC
- SO_CFLAGS=-shared $(CFLAGS)
- L_CFLAGS=$(CFLAGS)
- LINK_FLAGS=
- --
- 2.23.0.rc1.170.gbd704faa3e
|