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 |
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 --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))
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(+)