diff mbox series

[1/1] package/libevent: add -fPIC to CFLAGS when BR2_PIC_PIE is set

Message ID 20210928213650.912-1-ankur.tyagi@gallagher.com
State Rejected
Headers show
Series [1/1] package/libevent: add -fPIC to CFLAGS when BR2_PIC_PIE is set | expand

Commit Message

Ankur Tyagi Sept. 28, 2021, 9:36 p.m. UTC
Otherwise build fails with following error:
Toolchain wrapper executing: '/tools/aarch64-linux-gnu/bin//aarch64-linux-gnu-gcc' '--sysroot' '/home/user/work/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot' '-mabi=lp64' '-fstack-protector-strong' '-fstack-clash-protection' '-mcpu=cortex-a35' '-fPIE' '-Wl,-z,now' '-Wl,-z,relro' '-shared' '.libs/buffer.o' '.libs/bufferevent.o' '.libs/bufferevent_filter.o' '.libs/bufferevent_pair.o' '.libs/bufferevent_ratelim.o' '.libs/bufferevent_sock.o' '.libs/event.o' '.libs/evmap.o' '.libs/evthread.o' '.libs/evutil.o' '.libs/evutil_rand.o' '.libs/evutil_time.o' '.libs/listener.o' '.libs/log.o' '.libs/strlcpy.o' '.libs/select.o' '.libs/poll.o' '.libs/epoll.o' '.libs/signal.o' '-Os' '-g2' '-pthread' '-pthread' '-Wl,-soname' '-Wl,libevent_core-2.1.so.7' '-o' '.libs/libevent_core-2.1.so.7.0.1'
/tools/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/8.3.0/../../../../aarch64-linux-gnu/bin/ld: .libs/evmap.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `event_changelist_add_' which may bind externally can not be used when making a shared object; recompile with -fPIC
.libs/evmap.o: in function `evmap_check_integrity_':
/home/user/work/cxos-buildroot/output/build/libevent-2.1.12/evmap.c:1007:(.text+0x13ac): dangerous relocation: unsupported relocation
collect2: error: ld returned 1 exit status
Makefile:1516: recipe for target 'libevent_core.la' failed
make[3]: *** [libevent_core.la] Error 1

Signed-off-by: Ankur Tyagi <ankur.tyagi@gallagher.com>
---
 package/libevent/libevent.mk | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Thomas Petazzoni Dec. 28, 2021, 9:45 p.m. UTC | #1
Hello Ankur,

On Wed, 29 Sep 2021 10:36:50 +1300
Ankur Tyagi <ankur.tyagi@gallagher.com> wrote:

> Otherwise build fails with following error:
> Toolchain wrapper executing: '/tools/aarch64-linux-gnu/bin//aarch64-linux-gnu-gcc' '--sysroot' '/home/user/work/buildroot/output/host/aarch64-buildroot-linux-gnu/sysroot' '-mabi=lp64' '-fstack-protector-strong' '-fstack-clash-protection' '-mcpu=cortex-a35' '-fPIE' '-Wl,-z,now' '-Wl,-z,relro' '-shared' '.libs/buffer.o' '.libs/bufferevent.o' '.libs/bufferevent_filter.o' '.libs/bufferevent_pair.o' '.libs/bufferevent_ratelim.o' '.libs/bufferevent_sock.o' '.libs/event.o' '.libs/evmap.o' '.libs/evthread.o' '.libs/evutil.o' '.libs/evutil_rand.o' '.libs/evutil_time.o' '.libs/listener.o' '.libs/log.o' '.libs/strlcpy.o' '.libs/select.o' '.libs/poll.o' '.libs/epoll.o' '.libs/signal.o' '-Os' '-g2' '-pthread' '-pthread' '-Wl,-soname' '-Wl,libevent_core-2.1.so.7' '-o' '.libs/libevent_core-2.1.so.7.0.1'
> /tools/aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/8.3.0/../../../../aarch64-linux-gnu/bin/ld: .libs/evmap.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `event_changelist_add_' which may bind externally can not be used when making a shared object; recompile with -fPIC
> .libs/evmap.o: in function `evmap_check_integrity_':
> /home/user/work/cxos-buildroot/output/build/libevent-2.1.12/evmap.c:1007:(.text+0x13ac): dangerous relocation: unsupported relocation
> collect2: error: ld returned 1 exit status
> Makefile:1516: recipe for target 'libevent_core.la' failed
> make[3]: *** [libevent_core.la] Error 1
> 
> Signed-off-by: Ankur Tyagi <ankur.tyagi@gallagher.com>
> ---
>  package/libevent/libevent.mk | 5 +++++
>  1 file changed, 5 insertions(+)

I have looked at all the patches you have sent to add -fPIC flags in
various packages. However, I don't understand why this would be needed.
I've just tried building libevent on aarch64, and it builds fine, with
BR2_PIC_PIE=y. Also, our autobuilders have not detected anything.

So I'm afraid, you will have to provide more details: which toolchain
is used, which Buildroot configuration, so that we can reproduce the
problem.

I'm for now marking the patches as "Rejected" in our patch tracking
system, but please provide more details so that we can see how to
address it.

Thanks a lot,

Thomas
diff mbox series

Patch

diff --git a/package/libevent/libevent.mk b/package/libevent/libevent.mk
index 93ba88ca88..dac3b589c0 100644
--- a/package/libevent/libevent.mk
+++ b/package/libevent/libevent.mk
@@ -36,5 +36,10 @@  else
 LIBEVENT_CONF_OPTS += --disable-openssl
 endif
 
+ifeq ($(BR2_PIC_PIE),y)
+LIBEVENT_CFLAGS += -fPIC
+LIBEVENT_CONF_OPTS += CFLAGS="$(LIBEVENT_CFLAGS)"
+endif
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))